original latest khronos developers opengl-es-2.0 shader

opengl-es-2.0 - latest - opengl android developers



¿Por qué no vec3 para OpenGL ES 2.0 gl_Position? (2)

La w en vec4 (x, y, z, w) se usa para recortar, y desempeña su parte mientras se aplican transformaciones de álgebra lineal a la posición.

De forma predeterminada, esto debe establecerse en 1.0.

Consulte aquí para obtener más información: http://web.archive.org/web/20160408103910/http://iphonedevelopment.blogspot.com/2010/11/opengl-es-20-for-iOS-chapter-4.html

Soy nuevo en OpenGL ES 2.0 y no puedo entender el siguiente sombreador más simple:

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

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


Si proporciona sus vértices al sombreador directamente en el espacio de recorte, podría simplemente pasar x, y, z y agregar 1 como el componente w en ese sombreador.

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