2012-03-30 13 views
25

Soy nuevo en OpenGL ES 2.0, y no puedo entender lo siguiente shader simple:¿Por qué no vec3 para OpenGL ES 2.0 gl_Position?

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

Mi pregunta es, desde una posición sería un vector de (x, y, z), ¿por qué es un gl_Position vec4 en lugar de vec3?

+0

Algunas buenas explicaciones en este hilo: http://www.gamedev.net/topic/506162-3d-math-4-component-vectors/ – Tim

Respuesta

3

Si usted proporciona a sus vértices para el shader directamente en el espacio de clip, sólo podía pasar x, y, z y añadir 1 como el componente W en dicho sombreado .

attribute vec3 vPosition; // vec3 instead of vec4 
void main() 
{ 
    gl_Position = vec4 (vPosition, 1.0); 
} 
Cuestiones relacionadas