【发布时间】:2013-09-30 17:56:38
【问题描述】:
我正在尝试绘制 2 个简单的三角形,没什么特别的,这是着色器代码:
#version 430 core
layout(location=0) in vec4 vPosition;
void
main()
{
gl_position=vPosition;
}
正如您所见,着色器代码非常小,并没有什么特别之处。 当我尝试编译这段代码时,我得到一个
未定义的变量“gl_position”
我不明白为什么,因为我认为所有 gl_... 变量都是全局变量。
我能做什么?
【问题讨论】:
-
根据我使用带有语法高亮器的程序编写着色器的经验,这样的事情不会发生。如果您使用的是 VS,则适用于 Visual Studio 的 NShader 很好,如果没有,Notepad++ 或 Sublime Text 都有可用于 GLSL 突出显示的插件。
-
gl_...变量是根据您的 GLSL 版本和上下文配置文件提供的预先声明的变量。他们总是以大写字母开头任何单词(例如gl_FragData、gl_FrontSecondaryColor,当然还有gl_Position)