Shader在opengl中不适合我

时间:2015-08-23 08:10:35

标签: java opengl libgdx

我正在关注着色器上的dermetfan教程,虽然我的代码看起来非常相似,但它并没有达到预期的效果。不会发生编译错误,也不会写入日志。

    ShaderProgram.pedantic = false;
    shader = new ShaderProgram(Gdx.files.internal("shaders/red.vsh"), Gdx.files.internal("shaders/red.fsh"));
    System.out.println(shader.isCompiled() ? "Compiled shader!" : shader.getLog());
    batch.setShader(shader);

并且此代码是vsh

    attribute vec4 a_color;
    attribute vec3 a_position;
    attribute vec2 a_texCoord0;

    uniform mat4 u_projTrans;

    varying vec4 v_color;
    varying vec2 v_texCoord0;

    void main(void) {
        v_color = a_color;
        v_texCoord0 = a_texCoord0;
        gl_Position = u_projTrans * vec4(a_position, 1.);
    }

并且继承人.fsh

 varying vec4 v_color;
 varying vec2 v_texCoord0;

 uniform sampler2D u_sampler2D;

 void main() {

     gl_FragColor = texture2D(u_sampler2D, v_texCoord0) * v_color;
     gl_FragColor = vec4(1.,0.,0.,1.);

 }

如果我摆脱了着色器,我的纹理加载得很好,但是当我使用着色器运行时,我的纹理似乎消失了。

EDIT 请尽量避免在代码中查找错误,ShaderProgram.pedantic = false,我知道我的代码与我正在观看的教程相同,但他的作品和我的作品却没有。谢谢你的帮助!

0 个答案:

没有答案