我正在深入研究3d编程,目前正在学习编写基于高度图生成地形的程序地形生成器。我还想实现一些物理学,我第一次尝试地形碰撞只需检查当前位置与高度图。然而,这对小物体不起作用,因为你必须通过获取物体的最近顶点的高度差来计算高度,并且每次进行整理检查都非常慢。
相信我,我试着谷歌搜索它,但是有很多废话和数以百万计的博客发布了新的教程,基本上没有关于这个主题的真实信息,我找不到任何解释它甚至任何一般的名字使用过的技术。
我不是要求代码或完整的解决方案,但是如果有人知道一种特殊的技术可以用于计算已经生成和平滑的地形中的高分辨率高度图,我将非常高兴,因为我可以进一步研究它当我知道我在找什么。
由于
答案 0 :(得分:3)
如果您根据高度位置和x / y位置组合将地形设为一组四边形,该怎么办?现在,存储这些四边形的法线。现在,你做的很简单,这个点在多边形检查的这一侧是非常快速的计算 - 表面法线和你要检查的点之间的点积的符号。这就像背面剔除一样,大多数3D系统都会有例程来处理这个问题。
答案 1 :(得分:0)
我强烈建议您首先在2d世界高度图中开始,然后一旦掌握了高度图的工作原理,然后在3D世界中对其进行编程。
本教程最能说明我的意思。 http://www.riemers.net/eng/Tutorials/XNA/Csharp/Series1/Terrain_from_file.php
同时了解Unity: http://vimeo.com/73273585