LibGDX-ShaderProgram赢得';不编译
LibGDX-ShaderProgram赢得';不编译,libgdx,glsl,shader,Libgdx,Glsl,Shader,我试图在libgdx1.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 = ve
我试图在libgdx1.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。这里有什么问题?我使用的是
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());
}
谢谢,
shaderProgram.pedantic=false
有效:)