【问题标题】:GLSL: "Invalid call of undeclared identifier 'texture2D'"GLSL:“未声明的标识符‘texture2D’的无效调用”
【发布时间】:2014-12-03 15:53:38
【问题描述】:

我在 Mac 上,使用 Swift,并使用 OpenGL 3.2。我也在使用 XCode 6.1 Beta,所以我认为这是最有可能的解释,因为在我看来这似乎没有意义。

我找不到任何不应该支持的证据,但是这个片段着色器在编译期间导致错误Invalid call of undeclared identifier 'texture2D'

#version 150

uniform sampler2D usTexture;

in vec2 vTextureCoord;

out vec4 FragColor;

void main() {
  vec4 color = texture2D(usTexture, vTextureCoord);
  FragColor = color;
}

【问题讨论】:

    标签: macos opengl glsl opengl-3


    【解决方案1】:

    绉纱。在我发布问题后终于找到了答案。 texture2D 已替换为 texture

    【讨论】:

    • 是的,请注意在 OS X 上 #version 150 只能表示 #version 150 core。在实现了兼容性配置文件的其他平台上,如果您编写 #version 150 compatibility,您可以继续使用从 GLSL 1.30 开始不推荐使用的东西,例如 texture2D。你真的不想这样,但值得一提;)
    • 很高兴知道!谢谢。
    • 使用#version 330 的人怎么样。我正在使用它并用'texture'替换'texture2D'并不能解决问题。我该怎么办?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-30
    • 1970-01-01
    相关资源
    最近更新 更多