我正在尝试在LibGDX 1.6.1中设置SpriteBatch
的着色器。
问题是着色器无法编译。
顶点着色器:
attribute vec3 a_position;
uniform mat4 u_projTrans;
void main() {
gl_Position = u_projTrans * vec4(a_position, 1.0);
}
片段着色器:
uniform sampler2D u_texture;
void main() {
gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
}
我认为这段代码没问题,但是日志说:“错误C1066:类型构造函数中的类型无效”和“错误C1035:不兼容类型的分配”。编译状态为false。这有什么问题?
答案 0 :(得分:0)
我正在使用1.9.6
而未在1.6.1
顶点着色器:
attribute vec3 a_position;
uniform mat4 u_projTrans;
void main()
{
gl_Position = u_projTrans * vec4(a_position,1.0);
}
片段着色器:
#ifdef GL_ES
precision mediump float;
#endif
void main() {
gl_FragColor = vec4(0.0,1.0,0.0,1.0);
}
然后在代码中:
ShaderProgram shaderProgram=new ShaderProgram(Gdx.files.internal("test.vert.glsl"),Gdx.files.internal("test.frag.glsl"));
shaderProgram.pedantic=false;
if(shaderProgram.isCompiled()){
batch.setShader(shaderProgram);
}else {
Gdx.app.log("ShaderTest", shaderProgram.getLog());
}