【问题标题】:undefined variable "gl_position"未定义的变量“gl_position”
【发布时间】: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_FragDatagl_FrontSecondaryColor,当然还有gl_Position

标签: opengl glsl shader


【解决方案1】:

GLSL 区分大小写(与大多数编程语言一样),因此它是 gl_Position,而不是 gl_position

【讨论】:

    【解决方案2】:

    它是gl_PositionP 是大写的。

    【讨论】:

      猜你喜欢
      • 2011-06-11
      • 2021-02-27
      • 2015-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-07
      • 2012-09-24
      相关资源
      最近更新 更多