【发布时间】:2019-11-05 09:03:28
【问题描述】:
我正在使用在地形表面上构建模型的 3D 地理渲染器。这些建筑模型是通过摄影测量捕获的,我们遇到的一个问题是,由于地表数据和建筑模型不完全匹配,有时地形表面会戳穿建筑模型。
我们想要掩盖建筑模型足迹所覆盖区域的地形表面。我一直在考虑使用模板缓冲区,可能会从模型中挤出某种阴影体积,并在渲染模型之前在建筑模型的足迹覆盖的区域中用高值填充 z 缓冲区。不过,这需要相当多的处理,我希望有更聪明、更有效的做事方式。另一个想法是制作从上方渲染的模型的正交 2d 纹理,并使用着色器以某种创造性的方式填充 z 缓冲区。
因此,如果有人以前做过类似的事情或有任何想法,我会很高兴听到他们的消息 :-)
我仅限于 OpenGL ES 3.0,所以我不能使用几何着色器或其他花哨的功能。
干杯, 托马斯
【问题讨论】:
-
是否可以选择先绘制建筑物再绘制地形?或者,你能用
glDepthFunc(GL_ALWAYS)画出建筑物吗? -
我仍然需要建筑模型进行深度测试,包括内部和周围地形,所以我不认为这会很不幸