2017-07-17 3 views
0


Ich versuche, den Shader der SpriteBatch in LibGDX 1.6.1 zu setzen. Das Problem ist, dass der Shader nicht kompiliert.

Vertex-Shader:LibGDX - ShaderProgram wird nicht kompiliert

attribute vec3 a_position; 

uniform mat4 u_projTrans; 

void main() { 
    gl_Position = u_projTrans * vec4(a_position, 1.0); 
} 


Fragment-Shader:

uniform sampler2D u_texture; 
void main() { 
    gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); 
} 

Ich denke, dieser Code ist in Ordnung, aber das Protokoll sagt: "Fehler C1066: ungültiger Typ in Typkonstruktor" und „Fehler C1035 : Zuordnung von inkompatiblen Typen ". Und der Kompilierungsstatus ist falsch. Was ist das Problem hier?

Antwort

0

ich 1.9.6 verwende und nicht getestet auf 1.6.1

Vertex-Shader:

attribute vec3 a_position; 
uniform mat4 u_projTrans; 

void main() 
{ 
    gl_Position = u_projTrans * vec4(a_position,1.0); 
} 

Fragment-Shader:

#ifdef GL_ES 
precision mediump float; 
#endif 

void main() { 

    gl_FragColor = vec4(0.0,1.0,0.0,1.0); 
} 

dann Code:

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()); 
} 
+1

dank der ' shaderProgram.pedantic = false' hat funktioniert :) – mrdlink