渲染三维地形的道路

我有一个由许多基于高度图的瓦片组成的三维地形。 我需要在瓦片上渲染多条道路。 现在我简单地把道路细分成瓦片,然后每个瓦片产生一个贴花。 但是贴花在内存上相当昂贵。 有没有更好的解决scheme比使用贴花或烘烤道路瓦片纹理? (目标应用程序应该在支持OpenGL ES 2.0的移动设备上工作)

将道路结合到地形纹理中的另一种方法是将它们建模为单独的几何体,例如三角形条。 与此相关的问题是,您希望道路几何graphics与地形几何graphics非常接近,这会导致深度模糊。 有时地形会出现在道路的前方,并且随着摄像机移动,地形可能会改变(闪烁)。 在一些OpenGL应用程序中,可以通过两次连续的绘制来强制一个“层”在前面,closures第二层的深度testing:

// Draw terrain. [...] // Draw roads. glDisable(GL_DEPTH_TEST); [...] glEnable(GL_DEPTH_TEST); 

然而,这可能不适合你,因为你可能有地形后面的道路,你想被封锁。 如果是这样,烘烤你的道路到地形纹理可能是最好的办法。 但是,路面总是有平行于地形的坡度。 或者可能的话,将道路模型化为单独的几何graphics,并将其提升到地形上方的深度不确定性消失。