2012-03-30 7 views
25

私は、OpenGL ES 2.0に新しいですし、次の最も簡単なシェーダを理解することはできません。OpenGL ES 2.0用のvec3はなぜgl_Positionですか?

attribute vec4 vPosition; 
void main() 
{ 
    gl_Position = vPosition; 
} 

私の質問は、位置が(x, y, z)のベクトルになりますので、なぜgl_Positionではなくvec3のvec4ですか?

+0

このスレッドでは、いくつかの良い説明があります。http://www.gamedev.net/topic/506162-3d-math-4-component-vectors/ – Tim

答えて

3

あなたがクリップ空間に直接シェーダにあなたの頂点を提供する場合、あなただけのX、Y、Zを渡すと、そのシェーダでワットコンポーネントとして1を追加することができます。

attribute vec3 vPosition; // vec3 instead of vec4 
void main() 
{ 
    gl_Position = vec4 (vPosition, 1.0); 
} 
関連する問題