改善2D平铺地形的渲染性能

时间:2018-11-03 16:26:46

标签: java lwjgl

大家好,我一直在为2D游戏优化我的渲染技术。现在,我以最现代的方式渲染四边形,可以使用VAO绘制顶点,然后为渲染索引,如下所示:

public void render(Map<TexturedModel,List<Entity>> entities)
{
    for(TexturedModel model : entities.keySet())
    {
        if(model!= null)
        {
            prepareTexturedModel(model);
            List<Entity> batch = entities.get(model);
            for(Entity entity : batch)
            {
                prepareInstance(entity);
                GL11.glDrawElements(GL11.GL_TRIANGLES,model.getRawModel().getVertexCount(), GL11.GL_UNSIGNED_INT,0);
            }
            unbindTexturedModel();
        }
    }
}

PrepareTexturedModel(model)仅将纹理绑定到四边形,prepareInstance(entity)仅设置变换矩阵和要绘制的实体的其他属性。目前,Im制作的游戏使用“单纯形噪声”创建2D地形,并创建了一个新的宽度为16,高度为16的四边形,并且仅渲染了屏幕上的四边形,因此根据屏幕的大小,将渲染或多或少的四边形,其大小会增加或减少性能分别。

Tile Border Image

上面的图像应该显示瓷砖是如何分离的,水不显示边框,因为它是32x32四边形而不是16x16的集合,只是使纹理看起来更大。

我的主要问题是,我该如何优化这些图块的渲染,也不仅仅是不必使它们单独可编辑,所以我正在考虑的一个想法是将相似的图块组合在一起,然后制作一个更大的图块,然后对其进行纹理处理,这将减少顶点的数量,但是我很困惑如何进行此操作。

预先感谢您的帮助!

0 个答案:

没有答案