3

WebGL に関する情報と、レンダリングに割り当てることができるテクスチャの最大数/メモリの量を探しています。これは明らかにハードウェア/デバイス固有であるため、テクスチャをインテリジェントに処理する方法を探しています。

現在、512x512 RGBA8 形式のテクスチャがあります。ユーザーは 270 個のテクスチャをメモリにロードできる可能性があります。ミップマップの 4/3 を掛けたピクセルあたり 4 バイトでうまくいくことを理解しています。したがって、単一のテクスチャとミップ マップは、4 * 512 * 512 * 1.33 = 1.33MB の領域になります。その結果、テクスチャをメモリにロードするために合計 359.1MB が必要になります。

これは最悪のケースであり、ミッド/ハイエンドのマシンでは問題ありませんが、Android や低スペックのマシンで WebGL が広く利用できるようになったら、モバイル向けにも最適化したいと考えています。

テクスチャを 256x256 に縮小すると、品質が低下することに気付きますが、これはローエンド デバイスのオプションになる可能性があります。これにより、テクスチャごとに合計 4 * 256 * 256 * 1.33 = 0.33MB、全体で 89.1MB になります。

テクスチャを WebGL コンテキストにロードする前に、使用可能なテクスチャ メモリの合計を決定する API はありますか?

また、一度にメモリにロードできるテクスチャの総数にも上限はありますか?

上記の 2 つのパラメーターを使用して、ユーザーがページを読み込んだときに適切なデフォルトを設定したいと考えています。

4

1 に答える 1