2016-08-31 7 views
0

シンプルなテクスチャ付き台形(視点の道路)を表示しようとしています。このために、頂点配列をパラメータとしてSpriteBatch.drawを使用しています。しかし、結果は予想外です。私が期待したものLibgdx:SpriteVatch.draw spriteVertecies wierd UV coordsの動作

enter image description here

私が得たもの: enter image description here

正確に間違って何?または、私は間違った方法を使用していますか?

@Override 
public void create() { 
    texture = new Texture("road.jpg"); 

    spriteBatch = new SpriteBatch(); 

    float color = Color.toFloatBits(255, 255, 255, 255); 

    verts = new float[]{ 
      0,        0,  color, 0, 0, 
      Gdx.graphics.getWidth()/2-100, 300, color, 0, 1, 
      Gdx.graphics.getWidth()/2+100, 300, color, 1, 1, 
      Gdx.graphics.getWidth(),  0,  color, 1, 0, 
    }; 

    shapeRenderer = new ShapeRenderer(); 
} 

@Override 
public void render() { 
    Gdx.gl.glClearColor(0, 0.5f, 1f, 1); 
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); 

    shapeRenderer.begin(ShapeRenderer.ShapeType.Filled); 
    shapeRenderer.rect(0, 0, 640, 300); 
    shapeRenderer.end(); 

    spriteBatch.begin(); 
    spriteBatch.draw(texture, verts, 0, verts.length); 
    spriteBatch.end(); 
} 

答えて

0

draw(Texture texture, float[] spriteVertices, int offset, int count)

documentationから与えられた頂点を使用して矩形を描画し:ここ

コードです。

LibGDXは、これらの長方形を2つの三角形として描画するため、テクスチャを分割します。問題は、長方形のこれらの三角形は同じサイズですが、台形ではないので歪んでしまいます。

解決方法は、投影またはメッシュを使用することです。

Image showing real UV mapping Texture UV mapping

関連する問題