如何在地形中表示悬崖面?


12

我正在尝试找出在游戏中以编程方式表示地形的最佳方法。我一直在考虑使用高度图(或等距顶点的网格)来表示地形的表面,并使用Splatmap来实现平滑的纹理化。这对于完全平滑的地形是可行的,但是问题是如何表示悬崖和陡峭的悬崖面。

悬崖本身的呈现方式必须与其余地形不同。例如,他们将需要在悬崖的前面看到不同的(未拉伸的)纹理,但是如果我为此使用splatmap,就不可能在悬崖的纹理上拥有足够多的悬崖面与地面完全分开。

图片说了一千个字,所以...

在此处输入图片说明

有什么一般的方法可以存储和/或渲染悬崖以及其他地形高度差异?


4
您会注意到,很少有游戏真正具有真正的垂直悬崖,它们都至少从顶部到底部以一个网格的单位倾斜。可以使用splat贴图着色器完成渲染,该贴图贴图着色器考虑了该斜率并从侧墙纹理中拉出。将图片中的块作为几何体放在高度图的顶部,以赋予局部风味。
Patrick Hughes

Answers:


7

那张照片看起来像他们在使用额外的道具来创造悬崖。如果要使用普通的高度图来表示地形,这几乎是唯一的解决方案。好消息是它是常用的并且效果很好。最简单的解决方案(从编程的角度来看)是根据需要在关卡编辑器中放置额外的道具。如果想花哨的话,可以使用一个工具,该工具会自动从一组道具中进行选择并调整地形以进行匹配。

您可以提供一种在高度图上拉伸面孔的功能,这将使您拥有完美的垂直面孔,但又有点复杂,但这看起来不太好,并且可能仍需要放置一些额外的装饰,掩盖坚硬的边缘。

最后一个选择是放弃所有的高度图,只将地形变成完整的几何图形,但是这样就失去了高度图的简洁性。

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.