0

次のコード行を追加すると、プログラムがクラッシュします。

uniform short colors[262144][3];

ここで私が間違っていることはいくつありますか?

  1. シェーダーでショーツを使用できますか?
  2. シェーダーで 2D 配列を使用できますか?
  3. 配列が大きすぎませんか?
  4. 宣言の構文が間違っていますか?

このような配列をピクセル単位のフラグメント シェーダーに渡そうとしていますが、今のところ、この行が機能してプログラムがクラッシュするかどうかを確認しています。

4

1 に答える 1

2

GLSL では多次元配列を使用できず、short も使用できません。

ただし、次のような多次元配列の機能を模倣できます。

uniform float colors[50*3];

// Then access it like this

float t = colors[row * 50 + column];

あまりにも多くのデータを送信しようとしていると思いますが、代わりにテクスチャまたはバッファを使用して個人的に多くのデータを渡します。

これは、これらの方法を説明する素晴らしい答えですhttps://stackoverflow.com/a/7958008/139927

于 2013-01-10T01:10:53.217 に答える