梯田山特征


10

我希望复制几天前在投资组合/博客网站上发现的程序性地形效果。

梯田

引用该地点,通过“将[最终高度]与某个高度范围内的某些阻尼值相乘,以创建美丽的峡谷特征”来生成梯田。

我想知道,有人能提供更多技术示例或程序来解决此问题吗?在过去的一周中,我一直在研究和学习很多有关程序性地形/纹理方法和实践的方法,但是我仍然没有遇到任何能详细解释什么是“夹紧”的东西,并且我开始感到沮丧。


呵呵,真的很整洁。我也不明白他的意思。您是否尝试过向花花公子发送电子邮件(在“联系人”下可用)?
Draco18s不再信任SE 2016年

仅供参考:在您的报价和消息来源中,该术语为“阻尼”,但稍后在您的问题中,您使用“钳位”。
皮卡列克

Answers:


11

我不知道他们的项目在做什么,但是您可以将重塑功能应用于高度。这是一个h从0.0到1.0并返回从0.0到1.0的新高度的示例:

function R(h) {
    var W = 0.4; // width of terracing bands
    var k = Math.floor(h / W);
    var f = (h - k*W) / W;
    var s = Math.min(2 * f, 1.0);
    return (k+s) * W;
}

绘制时,此函数看起来像这样-x轴是原始高度,y轴是新高度:

高度调整功能

我将其应用于自己的代码,并得到了:

梯田功能输出

您可以放置​​任何形式的重塑功能,或将它们链接在一起以获得整洁的效果。当输出的平坦部分时,您将获得梯田。


我发誓,提问者的问题在露台上走得通畅,但是再看一遍,我很确定这是一种错觉。但是我的眼睛仍然坚持不,高度在那里发生了变化(图像的中心到上角/左上角)。如果没有上升,那么这个答案是正确的。
Draco18s不再信任SE SE

1

阻尼是物理学术语,指的是对振荡系统内部或内部的影响,具有减少,限制或防止其振荡的作用。

我怀疑您的源文章可能有错别字,并且意味着夹紧,通常是指将值限制在给定范围内。

至于实现视觉效果,您可以通过在构建地形时钳制噪声带来获得类似的效果,但是@amitp提供的解决方案与原始描述更加接近,并且可能更易于实现和调整。

第三种选择可能是使用腐蚀技术。这是通过放置一部分倾斜的土地来创建悬崖和海滩组合的方法。这是另一个会侵蚀峰顶到高原的现象


0

经过长的休息后,我现在了解了效果是如何实现的,而且非常简单。有四个部分可以达到此效果:

  • 地形的初始高度图
  • 定义露台的“范围”,其中露台的最低高度为h1,而露台的最高高度为h2
  • 在平台高度范围内使地面平坦的阻尼值
  • 第二个更远距离的高度图,用于修改h1和h2值,这是在梯田之间形成连续斜坡的方式(第三个高度图可用于彼此独立地增加或减少h1和h2,从而创建更大或更小的梯田)

这是创建效果的过程:

h1 = 1
h2 = 2
damp = .01

h = gen_noise(position)
hm = heightmod_noise(position)
if h1+hm <= initial_terrain_height =< h2+hm
  th = h * damp
elseif h2+hm < h
  th = h - (h2-h1) * damp
else
  th = h

(当然,这是应用梯形效果后的地形高度)

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.