opengl-es - OpenGL ES 2.0 中的 GLSL 是否支持 gl_Normal gl_Vertex 等内置变量?

标签 opengl-es glsl shader

刚接触OpenGL ES2.0和GLSL,想用shaders来处理Images。我在Xcode中编码时,直接使用gl_Normalgl_Vertex等内置变量,并没有在着色器的开头声明它们。最后,我收到一条错误消息:

Use of undeclared identifier gl_Normal. why?

最佳答案

Use of undeclared identifier gl_Normal. why?

在 OpenGL-ES 2 中,并跟随其 OpenGL-3 核心的脚步,不再有预定义的着色器输入变量。 OpenGL-4 甚至取消了预定义的着色器输出。

相反,您需要定义自己的输入和输出。每个输入或输出变量都分配了一个所谓的位置。由 OpenGL 隐式地由 glGetAttribLocation 检索,或者由程序员使用 location 存储限定符属性或 glBindAttribLocation 函数显式地检索。输出类似地由片段数据位置分配。

关于opengl-es - OpenGL ES 2.0 中的 GLSL 是否支持 gl_Normal gl_Vertex 等内置变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9326631/

相关文章:

ios - 片段着色器的输入纹理会随着着色器的运行而变化吗?

c++ - opengl - 三角形邻接三角形带

Three.js InstancedMesh : Shader is NOT changed after updating instance matrix

unity3d - 在unity3d中创建清洁效果

android - 基本的 Android 应用问题

opengl - 是否有用于OpenGL阴影语言的 Lint 工具?

android - OpenGLRenderer : Path Too Large To Be Rendered To a Texture 问题

Android 二维图形编程

c++ - OpenGL 旋转在 90 到 270 度之间表现怪异

javascript - WebGL着色器变量列表?