LoginSignup
2
0

More than 3 years have passed since last update.

なんでUnityWebGLを無理矢理モバイルで動かすとメモリ効率が悪いのかの考察

Last updated at Posted at 2021-03-27

UnityWebGLでテクスチャを扱うとメモリ消費がえぐいことで知られているがモバイル向けに無理矢理表示すると
普通のPC以上に消費する傾向があるように見えたので文献をいくつか見て考察したい、
ちゃんとパフォーマンストレースできる手法を確立できてないので辛いところ・・・

UnityWebGLのテクスチャ圧縮

高速テクスチャサンプリングに最適化された専用の形式でテクスチャを圧縮する必要があります。異なるプラットフォームとデバイスにはそれぞれ独自のフォーマットがあります。

Unity側でテクスチャを圧縮してくれる機能があってWebGLはWebGLで専用の圧縮形式があるんですね

ノート: sRGB DXT をサポートしないウェブブラウザーの リニアレンダリング では、テクスチャはランタイムに RGBA32 に解凍されます。

RGBA Compressed DXT・RGB Compressed DXTでWebGLの場合圧縮してくれてるんですがこれがブラウザー依存の挙動になります

ブラウザー側の対応状況

WebGL APIでDXT形式は定義されているんですが WEBGL_compressed_texture_s3tc
の実装がブラウザーによって違うみたいです

WEBGL_compressed_texture_s3tc

https://developer.mozilla.org/en-US/docs/Web/API/WEBGL_compressed_texture_s3tc
MozillaのWebGLリファレンスで対応状況が書かれていますが
2021/03/27現在 現状ではFirefoxだけ言及がないですが(Mozillaさん・・・自分のですよね・・・)
モバイル版ブラウザでは対応がない状況です
image.png

所感

DXTアルゴリズムの圧縮率は6/1:8/1と結構高いのでただでさえメモリ消費にギャアギャアうるさいモバイルブラウザでは致命傷になる気がします ※圧縮率に関してはWikipedia引用

今後やってみたいこと

ブラウザごとの挙動をトレースして実際にどのようなパフォーマンスなのか把握してみたい

参考文献

https://ics.media/entry/17863/
https://ja.wikipedia.org/wiki/DXTC

本当のところはよくわからないから変なこと言ってたら指摘お願いします

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0