我正在尝试在 Libgdx 中与舞台一起渲染纹理网格。当我把它stage.draw
放在mesh.render()
.
情况1:
public void render(float delta) {
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
Gdx.gl.glViewport(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
Gdx.gl.glEnable(GL10.GL_TEXTURE_2D);
stage.act(delta);
stage.draw();
texture.bind();
mesh.render(GL10.GL_TRIANGLES, 0, 3);
}
// -- This is in my create method:
mesh = new Mesh(true, 3, 3,
new VertexAttribute(Usage.Position, 3, "a_position"),
new VertexAttribute(Usage.ColorPacked, 4, "a_color"),
new VertexAttribute(Usage.TextureCoordinates, 2, "a_texCoords"));
mesh.setVertices(new float[] { 50, 50, 0,Color.toFloatBits(255, 0, 0, 255),0,1,
50, 500, 0,Color.toFloatBits(0, 255, 0, 255),0,0,
500, 50, 0, Color.toFloatBits(0, 0, 255, 255),1,1 });
mesh.setIndices(new short[] { 0, 1, 2 });
在上述情况下,我无法渲染纹理,但能够渲染渐变三角形。
案例二:
public void render(float delta) {
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
Gdx.gl.glViewport(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
Gdx.gl.glEnable(GL10.GL_TEXTURE_2D);
texture.bind();
mesh.render(GL10.GL_TRIANGLES, 0, 3);
stage.act(delta);
stage.draw();
}
在这种情况下,我能够在三角形上正确渲染纹理。
我的问题:
- 尽管我可以绘制三角形,但为什么顺序
stage.draw()
和影响纹理。mesh.render()
- 如何在演员的
draw
方法中绘制带有纹理的网格?