C++ 着色器编译错误

C++ 着色器编译错误,c++,opengl,shader,C++,Opengl,Shader,我正在从事一个在源代码中隐藏着色器的项目。我(在运行时)收到此错误: 编译顶点着色器时出错: 完整VS着色器源: //高精度浮点; 统一的vec2 UEYETOSURCEUVSCALE; 均匀矢量2 uEyeToSourceUVOffset; 属性vec4位置;//

我正在从事一个在源代码中隐藏着色器的项目。我(在运行时)收到此错误:

编译顶点着色器时出错: 完整VS着色器源: //高精度浮点; 统一的vec2 UEYETOSURCEUVSCALE; 均匀矢量2 uEyeToSourceUVOffset; 属性vec4位置;//<[-1,+1],-1,+1]在整个帧缓冲区上。位置z中的Lerp系数。渐晕淡入因子位置w。 属性vec2 aTanEyeAnglesR;//<红色通道的水平和垂直眼角的切线。 属性vec2 aTanEyeAnglesG;//<绿色通道的水平和垂直眼角的切线。 属性vec2 aTanEyeAnglesB;//<蓝色通道的水平和垂直眼角的切线。 可变的vec4位置; 可变vec2 vTexCoordR; 可变vec2-vtexcoodg; 可变vec2-vTexCoordB; 真空总管(真空) { 位置=位置; vTexCoordR=一个角度*UEYETOSURCEUVSCALE+UEYETOSURCEUVOFFSET; vTexCoordG=aTanEyeAnglesG*uEyeToSourceUVScale+uEyeToSourceUVOffset; vTexCoordB=AtaneyangleSB*uEyeToSourceUVScale+uEyeToSourceUVOffset; vTexCoordR.y=1.0-vTexCoordR.y; vTexCoordG.y=1.0-vTexCoordG.y; vTexCoordB.y=1.0-vTexCoordB.y; gl_位置=vec4(位置xy,0,1); } 着色器编译失败。 我不知道如何解决这个问题(没有着色器经验);但是,我知道着色器代码与C++代码类似,在这个意义上,这看起来非常简单,对我来说是正确的(除非我丢失了什么东西)。p> 此着色器代码是否存在明显错误?

缺少
#version
指令意味着

#版本110
不支持自动
int
->
float
转换。改用
float
文字:

gl_Position = vec4(aPosition.xy, 0.0, 1.0);
                                 ^^^  ^^^ float literals

您在日志中看到的错误消息是什么?@Nicol:如何检查日志?。谢谢你的提示。我尝试相应地修改,但错误仍然存在。
gl_Position = vec4(aPosition.xy, 0, 1);
                                 ^  ^ int literals
gl_Position = vec4(aPosition.xy, 0.0, 1.0);
                                 ^^^  ^^^ float literals