我是OpenGL ES 2.0的新手,无法理解以下最简单的着色器:
attribute vec4 vPosition;
void main()
{
gl_Position = vPosition;
}
我的问题是,由于位置将是
(x, y, z)
的 vector ,为什么gl_Position是vec4而不是vec3?
最佳答案
vec4(x,y,z,w)中的w用于裁剪,并在将线性代数变换应用于该位置时发挥作用。
默认情况下,应将其设置为1.0。
有关更多信息,请参见此处: http://web.archive.org/web/20160408103910/http://iphonedevelopment.blogspot.com/2010/11/opengl-es-20-for-iOS-chapter-4.html
关于opengl-es-2.0 - 为什么不为OpenGL ES 2.0 gl_Position使用vec3?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9943636/