簡體   English   中英

在 OpenGL 中掩蓋地形表面區域

[英]Masking away an area of a terrain surface in OpenGL

我正在使用 3D 地理渲染器,在地形表面上構建模型。 這些建築模型是通過攝影測量捕獲的,我們遇到的一個問題是地形表面有時會穿過建築 model,因為表面數據和建築 model 不完全匹配。

我們想要掩蓋建築物 model 足跡所覆蓋區域中的地形表面。 我一直在考慮使用模板緩沖區,可能會從 model 中擠出某種陰影體積,並在渲染 model 之前在建築模型的足跡覆蓋的區域中用高值填充 z 緩沖區。 不過,這需要相當多的處理,我希望有更聰明、更有效的做事方式。 另一個想法是制作從上方渲染的 model 的正交 2d 紋理,並使用着色器以某種創造性的方式填充 z 緩沖區。

因此,如果有人以前做過類似的事情或有任何想法,我會很高興聽到他們:-)

我僅限於 OpenGL ES 3.0,所以我不能使用幾何着色器或其他花哨的功能。

干杯,托馬斯

您必須了解地形網格以及建築物在地形上的實際位置。 最明顯的解決方法是對地形網格進行預處理,以“壓平”每座建築物地基周圍的區域。 這只需要做一次,所以它只是一次性成本而不是每幀成本。

想不出任何立即明顯的更簡潔的方法——深度測試的需要,除非你不想要它,並不能很好地轉化為算法;)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM