[英]Terrain Deformation as per road profile in OpenGL/DirectX
我计划根据道路轮廓使用OSG(Openscenegraph)进行地形变形。 道路网格是单独生成的,我将其放置在地形上。 OSG生成的地形必须根据道路轮廓自行变形。 此外,还必须将其他几何图形添加到靠近道路边界的地形几何图形中,以实现平滑处理,因为地形四格单元格可能太大。
我尝试将这种情况可视化,如以下两个图片所示。 现在,我看到的最好的方法是让OSG将地形图块生成为OSGB文件。 我知道道路边界点。 我可以弄清楚那条路的哪一块地砖会掉落。 假设我知道根据该图的特定地形四边形的道路边界点:
现在,我需要细分或细分掉在道路上的“地形”图块单元。
因此,我需要变形并增加道路边界处的地形网格。 问题:实现此目标的最佳方法是什么?
OpenGl / DirectX中的任何帮助/建议也应确实有帮助。 谢谢!
我认为解决方案是为道路创建一个单独的网格,并在每侧连接一个“ verge”网格,其形状可根据需要模拟切割或路堤。 道路贴合网格的外边缘应具有符合与它们相连的高度图的顶点。 高度图应在道路防撞条下方适当变形,以确保没有地形元素可以在其上方泄漏。 由于无论如何都不应该看到它们,因此可以指定一个特殊的负极高,这意味着“不要打扰”,这将节省一些GPU周期。 所有这些准备工作都可以离线完成。
进行渲染时,为避免撕裂,重要的是沿道路和地形之间的任何重合边缘匹配镶嵌因子。 可以以牺牲一些执行时间为代价,而将边缘细分因子设置为最大,而不考虑其他地方的详细程度。 我还没有研究如何对其进行编码,但是由于可以应用的每个边缘都属于一个具有一个极端负顶点和两个普通顶点的三角形,因此有可能在着色器中检测到它。
边缘还可以具有替代纹理,这对于河岸和池塘边缘等可能需要更多细节的东西可能很有用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.