2017-12-11 16 views
0

私はTiled Map Editorを使用して、私のゲームのためのタイルマップをlibgdxで生成しています。 2つのタイルレイヤーを持つシンプルなマップを作成している間に、多くの余分なテクスチャバインディングが発生することに気づいた私は2パックのタイルセットを使用していて、個々のpngを使用していません。TiledMapたくさんの余分なテクスチャバインディングを引き起こすレイヤー

たとえば、2つのタイルセットを持つ2つのタイルレイヤーのマップがあります。土は1タイルセットから、岩、木、およびその他のオブジェクトは異なるタイルセット上にあります。 2 layers

これにより、25個のテクスチャバインディングが発生します。

しかし、岩や樹木などのレイヤーを削除して汚れを残すと、1つのテクスチャバインディングが得られます。

1 layer

これを達成するためのより良い方法はありますか?再び、私はタイルのための個々のPNGを使用していない、彼らは2つのタイルセットに詰め込まれています。このための回避策は何ですか? 1タイルセットにすべてをパックするには?私は80以上のテクスチャ結合を引き起こすいくつかのマップを持っています。

は本当にいずれかのマップを描画するために奇妙な何もしていない:それは各タイル、タイルによってタイルをレンダリングしているよう

class MapRenderer { 

    private TiledMapRenderer tiledMapRenderer; 

    public MapRenderer(TiledMap tiledMap, float tiledMapScale, Camera camera) { 

     tiledMapRenderer = new OrthogonalTiledMapRenderer(tiledMap, tiledMapScale); 
     tiledMapRenderer.setView((OrthographicCamera) camera); 
    } 

    public void update() { 

     tiledMapRenderer.render(); 
    } 
} 

は、ソートのようです。テクスチャバインディングを減らすより良い方法は、各タイルをタイルセットでレンダリングすることです。

+0

"テクスチャバインディングを減らすより良い方法は、タイルセットで各タイルをレンダリングすることです。"だから、一番簡単な方法 - 「すべてを1タイルセットにパックする」または、何らかの形でタイルを並べ替えることができます。最初にタイルセットのタイルを1つ、次にタイルセットを1つ、次に別のタイルセットから描画します。 – Arctic45

+0

明確な質問はありません:1)「レイヤーを削除するとどうすればいいですか?スクリーンショットは削除された汚れレイヤーですか? 2)いずれかのレイヤーを削除すると、1つのテクスチャバインディングが得られますか? – Arctic45

答えて

1

タイルマップを作成するときは、各タイルセットからタイル用に別のレイヤーを作成します。この方法では、各タイルセットに対して1つの余分なバインディングしか持たないでしょう。

+0

わかりません。あなたは各レイヤーが1つのタイルセットのタイルだけを持つべきだと言っていますか?もしそうなら、それでもテクスチャバインディングがたくさんあります。 –

+0

それは奇妙です。 OrthogonalTiledMapRenderer.render()の実装を見ると、レイヤーが順番に描画されていることがわかります。したがって、各レイヤーが1つのタイルセット(1つのテクスチャから正確に)からのタイルを含む場合、テクスチャバインディングの数はタイルセットの数に等しい。さて、タイルマップエディタがマップを生成する方法を詳しく見て、その理由を見つけたら教えてください。 – Arctic45

+1

申し訳ありませんが、もう一度試してみると間違っていました。レイヤー内のすべてのテクスチャが1タイルセットのものである場合、1つのバインディングのみが得られます。しかし、私はそれを扱わなければならないと思う。 –

関連する問題