从TextureRegion渲染网格渲染整个TextureAtlas

时间:2014-11-15 12:23:31

标签: opengl-es libgdx

我有一个简单的渲染方法,我想用它来绘制一个简单的网格物体。下面的代码,使用TextureRegion类而不是Texture呈现脏的和破碎的网格。它似乎渲染了从中提取区域的整个纹理图集而不是纹理区域:

public void (SpriteBatch batch, OrthographicCamera camera){
            mesh.setVertices(vert);
            mesh.setIndices(indi);
            Gdx.gl20.glEnable(GL20.GL_BLEND);
            Gdx.graphics.getGL20().glEnable(GL20.GL_TEXTURE_2D);
            shader.begin();
            shader.setUniformMatrix("u_worldView", camera.combined);
            shader.setUniformi("u_texture", 0);       
            textureRegion_laser.getTexture().bind(0);    
            mesh.render(shader, GL20.GL_TRIANGLES);
            shader.end();       
            Gdx.gl20.glDisable(GL20.GL_BLEND);  
            Gdx.graphics.getGL20().glDisable(GL20.GL_TEXTURE_2D);
}

下面的代码使用Texture而不是TextureRegion正确绘制网格。什么是pb?

public void (SpriteBatch batch, OrthographicCamera camera){
            mesh.setVertices(vert);
            mesh.setIndices(indi);
            Gdx.gl20.glEnable(GL20.GL_BLEND);
            Gdx.graphics.getGL20().glEnable(GL20.GL_TEXTURE_2D);
            shader.begin();
            shader.setUniformMatrix("u_worldView", camera.combined);
            shader.setUniformi("u_texture", 0);       
            texture.bind(0);            
            mesh.render(shader, GL20.GL_TRIANGLES);
            shader.end();       
            Gdx.gl20.glDisable(GL20.GL_BLEND);  
            Gdx.graphics.getGL20().glDisable(GL20.GL_TEXTURE_2D);
}

0 个答案:

没有答案