我正在查看http://www.swiftless.com/tutorials/glsl/3_glcolor.html,其中包含以下代码段:
void main() {
// Set the output color of our current pixel
gl_FragColor = gl_Color;}
我试图在我的WebGL上使用gl_Color。我收到一个错误,gl_Color是未声明的标识符。
我做错了什么?
提前感谢您的帮助。
答案 0 :(得分:9)
WebGL使用Open GL ES 2.0作为基础,因此您应该使用GLSL ES 1.0作为着色器。 GLSL ES没有gl_Color,因此您必须重写此着色器。
答案 1 :(得分:-3)
我的猜测是你正在尝试使用常规C编译器编译GLSL代码。
它看起来应该是C代码,但它实际上是GLSL源代码 - 由OpenGL GLSL编译器编译而不是你的机器C编译器。
片段着色器有一个预定义的变量'gl_Color',它是顶点着色器的输出。
您引用的示例包含shader.frag文件中的代码,该文件由shader.init()引用。 OpenGL库本身将处理将其编译为机器的GPU指令。将代码放在该文件中,希望该示例能够正常工作:)