Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ VertexShader编译在windows上失败,相同的代码在linux上工作_C++_Opengl_Glsl - Fatal编程技术网

C++ VertexShader编译在windows上失败,相同的代码在linux上工作

C++ VertexShader编译在windows上失败,相同的代码在linux上工作,c++,opengl,glsl,C++,Opengl,Glsl,我正在学习OpenGL教程。它在我的Arch Linux系统上运行得很好,但在Windows上却不行 我的顶点和片段着色器代码与示例中的代码完全相同: 片段着色器代码: #version 330 core in vec2 UV; out vec3 color; uniform sampler2D myTextureSampler; void main(){ color = texture2D( myTextureSampler, UV ).rgb; } #version 330 cor

我正在学习OpenGL教程。它在我的Arch Linux系统上运行得很好,但在Windows上却不行

我的顶点和片段着色器代码与示例中的代码完全相同:

片段着色器代码:

#version 330 core

in vec2 UV;
out vec3 color;
uniform sampler2D myTextureSampler;

void main(){
  color = texture2D( myTextureSampler, UV ).rgb;
}
#version 330 core

layout(location = 0) in vec3 vertexPosition_modelspace;
layout(location = 1) in vec2 vertexUV;
out vec2 UV;
uniform mat4 MVP;

void main(){
  gl_Position =  MVP * vec4(vertexPosition_modelspace,1);
  UV = vertexUV;
}
顶点着色器代码:

#version 330 core

in vec2 UV;
out vec3 color;
uniform sampler2D myTextureSampler;

void main(){
  color = texture2D( myTextureSampler, UV ).rgb;
}
#version 330 core

layout(location = 0) in vec3 vertexPosition_modelspace;
layout(location = 1) in vec2 vertexUV;
out vec2 UV;
uniform mat4 MVP;

void main(){
  gl_Position =  MVP * vec4(vertexPosition_modelspace,1);
  UV = vertexUV;
}
我在Windows上遇到以下错误:

ERROR: 0:16: 'texture2D' : no matching overloaded function found (using implicit conversion)
ERROR: 0:16: 'rgb' :  field selection requires structure, vector, or matrix on left hand side
ERROR: 0:16: 'assign' :  cannot convert from 'const float' to 'FragUserData 3-component vector of float'

您知道问题可能是什么吗?

这在v330规范中列出,如@mrVoid所述。现在不推荐使用所有旧的纹理采样函数(1D/2D/3D),而应使用重载的:

纹理(…)函数
此函数将根据您提供的采样器类型而变化,因此不再需要在函数名称中明确定义您使用的类型。我在前往GL330的途中犯了这个错误。

这在v330规范中被列为@mrVoid。现在不推荐使用所有旧的纹理采样函数(1D/2D/3D),而应使用重载的:

纹理(…)函数
此函数将根据您提供的采样器类型而变化,因此不再需要在函数名称中明确定义您使用的类型。我在前往GL330的途中犯了这个错误。

这在v330规范中被列为@mrVoid。现在不推荐使用所有旧的纹理采样函数(1D/2D/3D),而应使用重载的:

纹理(…)函数
此函数将根据您提供的采样器类型而变化,因此不再需要在函数名称中明确定义您使用的类型。我在前往GL330的途中犯了这个错误。

这在v330规范中被列为@mrVoid。现在不推荐使用所有旧的纹理采样函数(1D/2D/3D),而应使用重载的:

纹理(…)函数
此函数将根据您提供的采样器类型而变化,因此不再需要在函数名称中明确定义您使用的类型。我在前往GL330的途中犯了这个错误。

对于
v330
,您可以在规范中看到。已弃用。见上文相应签名,名称中无“2D”。。因此,请尝试使用
texture
。对于
v330
,您可以在规范中看到。已弃用。见上文相应签名,名称中无“2D”。。因此,请尝试使用
texture
。对于
v330
,您可以在规范中看到。已弃用。见上文相应签名,名称中无“2D”。。因此,请尝试使用
texture
。对于
v330
,您可以在规范中看到。已弃用。见上文相应签名,名称中无“2D”。。因此,尝试使用
纹理