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 });
上記の場合、テクスチャをレンダリングすることはできませんが、グラデーション三角形をレンダリングすることはできます。
ケース 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
アクターのメソッドでテクスチャを使用してメッシュを描画するにはどうすればよいですか?