2017-03-25 12 views
1

私は現在、多数のテクスチャファイルを使用して複数のマテリアルを重ねてレイヤーごとにアルファブレンドイメージでマスクされたGLSLシェーダを作成しています。この効果は、バッカー、中間メッシュ、および第3メッシュが上にあるファブリックを模倣すると考えられています。これに取り組む際に、私はすぐにシェーダのテクスチャユニットの限界に遭遇しました。解決策として、テクスチャをRGBチャンネルに結合して、シェーダが使用できるテクスチャをもう少し取得し、複数の拡散画像などを1つの画像に結合する方法を検討します。しかし、その間に私の質問は次のようになります。WebGL 2.0最大イメージテクスチャユニットと最大複合テクスチャユニットの違いは何ですか?

WebGL 2.0はテクスチャユニットを増やすのでしょうか、それともグラフィックスカード自体によって制限されるのでしょうか?一般的な知識の質問と同様に、Max Combined Texture Unit NumberはWebGLのコンテキストで持つことができるテクスチャユニットの総数ですか? Max Texture Unitsとはどのように違いますか?私はここの限界を理解しようとしています。以下は私のMacbook ProのWebGL用Browserleaksの結果です。

WebGL Browserleaks Report

答えて

3

ウィルWebGLの2.0のオファーよりテクスチャユニット、またはグラフィックカード自体によって制限され、この何かですか?

ハードウェアの制限です。

は、最大合成テクスチャユニット数です.WebGLコンテキストに含めることができるテクスチャユニットの総数ですか?

はい。

マックステクスチャユニットとはどのように違いますか?

GL_MAX_TEXTURE_IMAGE_UNITSは、フラグメントシェーダによってアクセステクスチャにのみを適用します。 GL_MAX_COMBINED_TEXTURE_IMAGE_UNITSは、すべてシェーダステージでアクセス可能なテクスチャの総数を指定します。

WebGL 1.0では、非FSステージでテクスチャにアクセスすることができませんでした。 WebGL 2.0では、複数のステージでテクスチャにアクセスできます。

+0

完璧、ありがとうございます。 – AlexB

+2

WebGL 1.0 ** did ** non-FSステージがテクスチャにアクセスできるようにしました。 [weblstats.comによると、WebGL1デバイスの98.3%は頂点シェーダで少なくとも4つのテクスチャをサポートしています](http://webglstats.com/webgl/parameter/MAX_VERTEX_TEXTURE_IMAGE_UNITS)。 – gman

+0

MAX_COMBINED_TEXTURE_IMAGE_UNITS = 35661 MAX_TEXTURE_IMAGE_UNITS = 34930 MAX_VERTEX_TEXTURE_IMAGE_UNITS = 35660フラグメントシェーダテクスチャサンプルなどの最大数を検索しています。8,16,32 ....大きな数字のみを取得しています。 –

関連する問題