2017-02-23 81 views
0

我使用的着色器,其在另一个程序中工作(在相同的环境据我所知),其现在不能编译某些原因:错误C1105:不能调用非功能

// Vertex Shader 
#version 330 core 
layout(location = 0) in vec3 vertexPosition_modelspace; 
layout(location = 1) in vec2 vertexUV; 
out vec2 fragmentUV; 
uniform mat4 ortho_matrix; 
void main() 
{ 
    gl_Position = ortho_matrix * vec4(vertexPosition_modelspace, 1); 
    fragmentUV = vertexUV; 
} 

// Fragment Shader 
#version 330 core 
in vec2 fragmentUV; 
uniform sampler2D texture; 
out vec4 color; 
void main() 
{ 
    color.rgba = texture(texture, fragmentUV).rgba; 
} 

这是一个超级基本着色器现在它开始突然抛出错误。

的Windows 8.1 的Nvidia GeForce 1080(这个是新的,也许这就是问题所在?)

这是什么由Visual Studio为输出:

回答

4
uniform sampler2D texture; 
out vec4 color; 
void main() 
{ 
    color.rgba = texture(texture, fragmentUV).rgba; 
} 

我很惊讶这完全在不同的环境中编译。您已将纹理命名为用于进行纹理查找的函数。您需要将uniform sampler2D texture;重命名为其他内容。

+0

现在我想起它很明显,但我仍然是GLSL的新手。谢谢,我会尽我所能检查你的答案。 –