2010-04-26 47 views
2

我正在潜入3D编程中,目前正在学习编写一个基于高度图生成地形的程序地形生成器。我也想实现一些物理和我的第一次尝试在地形碰撞是通过简单地检查当前位置与高度图。然而,这对于小物体无法很好地工作,因为您必须通过获取物体的最近顶点的高度差来计算高度,并且这样做每次检查都很慢。计算三维空间中的地形高度

Beleive me我试着用google搜索它,但这里有太多垃圾和数百万博客张贴破解新手教程到处,基本上没有关于这个主题的真实信息,我找不到任何解释它甚至命名任何通常使用的技术。

我并不是要求代码或完整的解决方案,但如果有人知道一种特别的技术,可以在已经生成和平滑的地形上计算高分辨率高度图,我会很高兴,因为我可以研究它进一步当我知道我在找什么。

感谢

回答

3

如果有什么你做了地形基于这些高度位置与它们的x/y位置合并一组四边形。现在,存储这些四边形的法线。现在,您正在做一个简单的工作,就是这个点在多边形检查的这一侧,它非常快速地计算 - 表面法线和检查点之间点积的符号。这就像背面剔除,大多数3D系统都会有例程来处理这个问题。

+0

不是一个坏主意,我要去寻找到它,给了我一些想法,谢谢:)我会回到它的明天,当我测试过它。 – 2010-04-26 02:43:58

+0

你的suggetions肯定会让我朝着正确的方向发展,谢谢你:) – 2010-04-26 18:34:52

0

我强烈建议您首先在2D世界高度图内开始,然后一旦掌握了高度图的工作方式,然后在3D世界中进行编程。

本教程最好地描述了我的意思。 http://www.riemers.net/eng/Tutorials/XNA/Csharp/Series1/Terrain_from_file.php

查找到Unity也: http://vimeo.com/73273585

+0

4年前,这个问题没有问题,但它已经回答了一个完美的答案。从2D世界开始并不会有什么帮助,因为这个问题是关于灵活和快速的方法来高精度地计算地图中一点的高度而不会减慢程序的速度。不是关于从高度图渲染地形。 – 2014-02-10 02:43:15