TiledMap图层导致许多额外的纹理绑定

时间:2017-12-11 07:39:02

标签: libgdx tiled

我正在使用Tiled Map Editor在libgdx中为我的游戏生成一个平铺地图。我注意到在创建一个有两个图块层的简单地图时会产生许多额外的纹理绑定。我正在使用2个打包的tilesets而不是使用单独的png。

例如,这里是带有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();
    }
}

排序似乎是渲染每个瓷砖,逐个瓷砖。当减少纹理绑定的更好方法是通过tileset渲染每个tile。

1 个答案:

答案 0 :(得分:1)

创建平铺地图时,请为每个tileset中的切片创建单独的图层。这样,每个tileset只有一个额外的绑定。