我是着色器新手,我昨天開始玩弄其中的一些。他們蒐集罰款我的Windows PC上,但是當他們在Mac上跑,有兩個錯誤:Mac上的GLSL着色器錯誤,但不是Windows:無法從'const int'轉換爲'4分量浮點矢量'
ERROR: 0:14: '=' : cannot convert from 'const int' to '4-component vector of float'
在Android上只有第二着色器給我一個錯誤。它有上面的錯誤提到沒有匹配的函數點被重載。
它們使用相同的頂點着色器:
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上的錯誤):
#ifdef GL_ES
#define LOWP lowp
precision mediump float;
#else
#define LOWP
#endif
varying LOWP vec4 vColor;
varying vec2 vTexCoord;
uniform sampler2D u_texture;
void main() {
vec4 texColor = texture2D(u_texture, vTexCoord);
texColor.rgb = 1.0 - texColor.rgb;
gl_FragColor = texColor * vColor;
}
另一個片段着色器(在Mac和Android錯誤):
#ifdef GL_ES
#define LOWP lowp
precision mediump float;
#else
#define LOWP
#endif
varying LOWP vec4 vColor;
varying vec2 vTexCoord;
uniform sampler2D u_texture;
void main() {
vec4 texColor = texture2D(u_texture, vTexCoord);
vec3 gray = vec3(0.2125, 0.7154, 0.0721);
vec4 color = dot(gray, texColor);
color.a = texColor.a;
gl_FragColor = color * vColor;
}
什麼行什麼文件會導致這個錯誤? – Aaron