基于高度图的道路地形


12

在基于高度图的地形上实现细节功能(如道路)的最佳方法是什么?

在此处输入图片说明

更新:在图像中很难看到它,但是道路从采石场的顶部向下延伸到底部。

Answers:


14

图像的优点在于它们通常最多嵌入4个通道(红色,绿色,蓝色和Alpha)。由于高度图只需要一维,因此您可以只使用红色通道来存储高度信息(您仍然需要256级高度),然后将其他通道用于其他目的(例如使用绿色通道来绘制道路) ,用于水/湿气的蓝色通道)等...

这样,您可以确保在构建地形时,应构建道路的区域将显示为平坦状态,而不是遵循高度梯度。


1
是否可以使用HDRI图像,所以可以使用浮点数来存储更精确的高度信息?
Quazi Irfan

1
HDRI图像不是文件格式而是概念,但是可以,您可以使用特定的文件格式来提高准确性。这主要取决于您的硬件/软件,但是有一个浮动的RG映像可以存储在32位或64位上。但是无论采用哪种格式,如果每个通道使用更多位,则始终可以将int值转换为浮点数,如下所示:f =(v / 256.0)其中f是浮点数,v是当前int值
XGouchet 2011年

将地图的所有静态对象存储在(高度)地图上是个好主意吗?像植被,树叶,房屋?或其他对象将放置在其上的指针?还是存在其他方式?
Quazi Irfan

我不会存储确切的位置,但可能只存储密度信息,然后根据密度信息生成数据(植被,房屋等...)。但是最好的方法是手动放置这些对象,并使用二进制数据文件或xml描述文件保存它们
XGouchet11年

1
@iamcreasy当然,您可以使用高度图使房屋接触地板,但是您需要描述房屋模型的外观(墙壁,门,内部的任何家具),无法用像素来描述。另外,jsut像素信息不会为您提供准确的方向,因此您的房屋将全部对齐(看起来不自然或“漂亮”)。
XGouchet 2011年

1

我这样做的方法是将高度图(例如,我使用浮点数,例如513 * 513)和通常需要更大分辨率(我使用32位bmp,512x512)的splatmap(“控件纹理”)分开。

高度图将创建网格(地形,三角形)。

控制图跨越整个地形,其每个图层(RGBA)表示您应该在地形上看到的石头,污垢,道路等内容。

这样,您可以使用编辑器来a)创建地形并b)绘制地形(使用Rock,Dirt,Road等)

快速浏览'painting heightmap','heightmap splatmap'等内容,以获得更详尽的解释,或下载说Unity3D的内容,以检查它在“现实”中如何工作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.