我正在查看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未声明”的错误。
我做错了什么?
感谢您的帮助。
我正在查看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未声明”的错误。
我做错了什么?
感谢您的帮助。
WebGL使用OpenGL ES 2.0作为其基础,因此您应该使用GLSL ES 1.0来编写着色器。GLSL ES没有gl_Color,因此您需要重写这个着色器。
我猜你正在尝试使用普通的C编译器编译GLSL代码。
看起来它应该是C代码,但实际上它是GLSL源码 - 旨在由OpenGL GLSL编译器编译,而不是您的机器C编译器。
片段着色器有一个预定义变量'gl_Color',它是顶点着色器的输出。
你提到的示例将代码放在shader.frag文件中,并通过shader.init()引用。OpenGL库本身将处理将其编译为GPU指令以供您的机器使用。将代码放入该文件中,希望示例能够正常工作 :)