我想绘制一个地图(ANSI C,C99不能用于由于Windows兼容性)游戏,使用GL加速图形,虽然游戏是一个顶级的游戏,使用纹理四边形下载2D透视图。 处理时间图的流行观点似乎使用了一个GL顶点缓冲对象,我正要写这个对象。然而,我意识到我想要一些瓷砖超出垂直边界,伪造一个倾斜的鸟瞰图。这将使任何正上方的区块被部分覆盖。 如果我在这里使用VBO,我需要一次绘制整个tilemap。这意味着我后来绘制的任何对象都将直接位于tilemap之上。VBO的地图(绘制顺序和倾斜的空中2D)
对这个问题最热门的方法是什么?我应该首先绘制地图,然后是实体(玩家/敌人),然后是多余的垂直空间,以便覆盖实体,最后在两者上显示效果? (如拍摄,爆炸等)。但是这会给我不被地形覆盖的镜头问题,并且如果我改变了顺序,笨拙地覆盖大型爆炸的地形。 或者,我可以对所有可视对象进行排序,并以自顶向下的方式绘制它们,但这意味着我需要经常更换纹理,因为在此特定情况下,按纹理进行排序不会有太大帮助。
同样,我希望能够动态地修改网格中每个顶点的颜色,以便实体可以将颜色投射到地图中。根据我的理解,实现这个目标的方法是使用顶点着色器。它是否正确?
编辑:最后一件事。如果我绘制一个比屏幕大的瓦片地图的VBO,通过翻译,GL会自动剔除超出视野的面孔,或者每次移动“相机”时都需要重新构建VBO吗?