0

Open GL ES 2.0 (RenderMonkey) で次のコードをコンパイルしようとしました。

const mat2 ma[2] =  mat2[2](
                     mat2( vec2(0.0, -1.0), vec2(1.0, 0.0) ),
                     mat2( vec2(0.0, -1.0), vec2(1.0, 0.0) )
                    );

しかし、コンパイラは言う:

OpenGL ES Preview Window: Compiling vertex shader API(OpenGL ES) /Effect Group 1/Effect1/Pass 0/Vertex Program/ ... failure
   COMPILE ERROR: API(OpenGL ES) /Effect Group 1/Effect1/Pass 0/Vertex Program/ (13): ERROR: 0:13: 'constructor' : if a matrix argument is given to a matrix constructor, it is an error to have any other arguments. 
   COMPILE ERROR: API(OpenGL ES) /Effect Group 1/Effect1/Pass 0/Vertex Program/ (10): ERROR: 0:10: '=' :  cannot assign to 'const array of 2X2 matrix of float'

私が間違っていることは何ですか?

4

1 に答える 1

0

[編集]

webgl/chrome では、次のようになります。

ERROR: 0:4: 'ma' : arrays may not be declared constant since they cannot be initialized 
ERROR: 0:4: '=' : syntax error 

見栄えがよくありません。

関連する可能性があります: GLSL (OpenGL ES 2.0) で定数配列を定義する方法は?


デスクトップGL...

あなたのコードは私にとってはうまくいきますが、バージョンを設定せずにこれを取得します:

warning C7551: OpenGL first class arrays require #version 120

#versionRenderMonkeyで文字列を提供できますか?

これが事実であるとは思えませが、非常に古いカードまたはドライバーが要因である可能性があります.

2番目も必要ないと思います2const mat2 ma[2] = mat2[](...大丈夫です

于 2014-02-20T14:50:57.160 に答える