opengl-es-2.0 - 为什么不为OpenGL ES 2.0 gl_Position使用vec3?

标签 opengl-es-2.0 shader

我是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/

相关文章:

javascript - webgl 着色器 - 划分 channel rgba

c# - 使用 WinRT 的 Windows.Graphics.Capture 应用像素着色器

ios - GLSL:更改两个以上的顶点尺寸会使着色器崩溃

ios - 如何为单个 3D 立方体着色

iphone - 从 OpenGL ES 1.1 过渡到 OpenGL ES 2.0

android - 如何在 OpenGL ES 2.0 Android 中绘制基本圆

ios - 在 OpenGLES 中组合多个着色器

java - OpenGL ES 2.0 Android - 立方体旋转错误

webgl - 如果片段着色器不支持高精度,带有 `varying` 限定符的顶点着色器 `highp` 变量会发生什么情况?

java - OpenGL ES : updating uniform