/ / OpenGL ES 2.0でGLSLでサポートされているgl_Normal gl_Vertexのような組み込み変数ですか? - opengl-es、glsl、shader

OpenGL ES 2.0でGLSLでサポートされているgl_Normal gl_Vertexなどの組み込み変数ですか? - opengl-es、glsl、shader

私はOpenGL ES2.0とGLSLがより新しく、シェーダを使ってイメージを処理したいと考えています。私がXcodeでコーディングしたとき、私は組み込みの変数を使用しました。 gl_Normal, gl_Vertex シェーダーの冒頭で直接宣言していませんでした。最後に、エラーメッセージが表示されます。

宣言されていない識別子の使用 gl_Normal。どうして?

回答:

回答№1は5

宣言されていない識別子gl_Normalの使用。どうして?

OpenGL-ES 2では、OpenGL-3コアの後に続いて、定義済みのシェーダ入力変数はなくなりました。 OpenGL-4はあらかじめ定義されたシェーダ出力を使用していました。

代わりに、あなた自身の入力と出力を定義することが期待されます。各入力変数または出力変数は、いわゆる場所に割り当てられています。OpenGLによって暗黙のうちに、 glGetAttribLocation、またはプログラマが明示的に location ストレージ修飾子属性または glBindAttribLocation 関数。アウトプットは 断片データの場所.