2

OpenGL ES 2.0 では、明らかにできない

    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();

モデル マトリックスを設定する必要はもうありませんが、 GLSL 仕様では頂点シェーダーでそれらにアクセスする方法が示されているため、これらのマトリックスはまだ何らかの形で組み込まれていると思います。

// 
// Matrix state. p. 31, 32, 37, 39, 40. 
// 
uniform mat4  gl_ModelViewMatrix; 
uniform mat4  gl_ProjectionMatrix; 
uniform mat4  gl_ModelViewProjectionMatrix; 

では、これらの値をシェーダーに渡すにはどうすればよいでしょうか? 私はglUniformMatrix4fv何とか使用しますか?

OpenGL ES 2.0 プログラミング ガイドのソース コードは、シェーダー部分に役立ちましたが、すべての例は、マトリックス変換をそのままにして、頂点が -1.0 と 1.0 の間にあることを確認しているように見えます。

更新:明らかに、OpenGL ES シェーダー言語はのような事前定義されたエントリをサポートしていないため、唯一の答えは、以下にリンクされているコードで行われているように、 と を使用しgl_ModelViewMatrixて独自のカスタム モデル/ビュー/投影行列を定義することです。OpenGL Shader Builderそれらをサポートしているので混乱しましたが、それは OpenGL ES ではなくプレーンな OpenGL です。glGetUniformLocationglUniformMatrix4fv

4

1 に答える 1

0

gl_ModelViewProjectionMatrix は、「 OpenGL ES シェーディング言語バージョン 1.00」仕様に含まれていないようです。Shading Language の仕様が多いようで、それが混乱の原因だったようです。私が理解しているように、マトリックスストレージ用に独自のユニフォームを定義します。

于 2010-12-19T23:13:37.463 に答える