Java Mac(而非Windows)上的GLSL着色器错误:无法从';常量int';至';浮点的四分量向量';
我是个新手,昨天就开始和他们一起玩了。它们在我的Windows PC上可以正常编译,但在Mac上运行时,两者都会出现错误: 错误:0:14:“=”:无法从“常量int”转换为“4分量” 浮点数向量 在Android上,只有第二个着色器给了我一个错误。上面的错误提到没有重载的匹配函数点 它们使用相同的顶点着色器:Java Mac(而非Windows)上的GLSL着色器错误:无法从';常量int';至';浮点的四分量向量';,java,opengl,glsl,libgdx,glsles,Java,Opengl,Glsl,Libgdx,Glsles,我是个新手,昨天就开始和他们一起玩了。它们在我的Windows PC上可以正常编译,但在Mac上运行时,两者都会出现错误: 错误:0:14:“=”:无法从“常量int”转换为“4分量” 浮点数向量 在Android上,只有第二个着色器给了我一个错误。上面的错误提到没有重载的匹配函数点 它们使用相同的顶点着色器: attribute vec4 a_position; attribute vec4 a_color; attribute vec2 a_texCoord0; uniform mat4
attribute vec4 a_position;
attribute vec4 a_color;
attribute vec2 a_texCoord0;
uniform mat4 u_projTrans;
varying vec4 vColor;
varying vec2 vTexCoord;
void main() {
vColor = a_color;
vTexCoord = a_texCoord0;
gl_Position = u_projTrans * a_position;
}
一个片段着色器(Mac上的错误):
另一个片段着色器(mac和android上的错误):
在第一个着色器中,这一行有错误-
texColor.rgb=1.0-texColor.rgb代码>您需要编写:
texColor.rgb = vec3(1.0) - texColor.rgb;
在第二个着色器中,这一行有错误-vec4 color=dot(灰色,texColor)代码>灰色为vec3,texcolor为vec4。vec3和vec4之间的点积是什么?没有这样的dot
函数可以做到这一点。您可以调用浮点点(vec3,vec3)
或浮点点(vec4,vec4)
。因此,将该行更改为:
vec4 color = vec4(dot(gray, texColor.rgb));
或
(下次请告诉我们错误发生在哪一行)哪个文件中的哪一行导致了此错误?非常感谢。我很乐意分享行号,但那是唯一的错误。我不知道我是否需要某种剖析器或其他东西来从中获得更多信息。对不起,我不能提供更多。
texColor.rgb = vec3(1.0) - texColor.rgb;
vec4 color = vec4(dot(gray, texColor.rgb));
vec4 color = vec4(dot(vec4(gray, ???), texColor)); // put in ??? float number you want