我看着 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使用开放式GLES 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指令中。将代码放入该文件中,希望该示例能起作用:)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top