1. ホーム
  2. iphone

[解決済み] GLSL(OpenGL ES 2.0)で定数配列を定義する方法を教えてください。

2022-02-10 21:24:15

質問事項

フラグメントの計算に必要な重みの配列を保存したいだけです。

これです。

float weights[5] = float[5](3.4, 4.2, 5.0, 5.2, 1.1);

これを投げるだけです。

ERROR: 0:30: ']' : syntax error syntax error
ERROR: 0:30: ';' : syntax error syntax error

解決方法は?

からの OpenGL ES SL 1.0仕様 段落 4.1.9 Arrays (p. 24):

シェーダ内部から宣言時に配列を初期化する仕組みがない。

なお、これまでは 意図的に省かれている . によると この記事 をベースに、OpenGL ES 2用のOpenGL ES SLバージョンを作成しました。 OpenGL SL 1.2 . 同段落(P.20)には

配列は、配列コンストラクタから形成されるイニシャライザを持つことができます。

      float a[5] = float[5](3.4, 4.2, 5.0, 5.2, 1.1);
      float a[5] = float[](3.4, 4.2, 5.0, 5.2, 1.1);  // same thing