PIZiadas图形

PIZiadas图形

我的世界是英寸.

Perlin噪声: 地形生成的伪随机函数

虚拟环境的建立需要大量的数据建模为重建不同场景的表面形成. 我们这个世界的分形性质,允许使用各种数学函数的自动执行这些任务. 树, 土地, 云, 火灾等。. 构建与基于自相似性的许多不同的技术, 分形的底座复杂的家庭. 产生所谓的“柏林噪声”的功能适用于这些情况下.

航运

使在一维应用概念的分析, 其推广到二维 (土地) 是立竿见影, 并提供了无初始说教的兴趣.

噪音功能: “噪音功能 (NF)“

一个NF本质上是一个伪随机数发生器具有生成相同数量的输入值的财产,或“种子”的具体.
任何函数, 如Y = COS(x) 总是返回为“×”的给定值相同的值“和”.

正弦曲线

如果我们用这个函数来生成几何模型, 我们可以在以后使用相同的变量重新获得同样的模式. 但是,该函数不能在较沙丘或群山的轮廓用它有一个周期性的重复, 模式, 从而减少自然. 沙漠沙丘彼此相似但不相同.

地面

一个重复的模式仍然是可信的舞台上. 一个模型可以生成一个伪随机分布,其中没有重复鉴定.

pseudoaleatoria

随机函数,是不可控的,或没有可以恢复回到以前的一些价值观, 随着越来越会返回不同的值.

racionalVsPseudoaleatoria

A“柏林函数”允许混合的随机优势 (噪音) 一个经典的功能控制. 此外可以采取两个给定值之间的中间值, 因此,提供连续性的这些功能. 如果我们增加表示需要规模来获得这些中间点,以保持生成的图像的分辨率. 如果我们做一个代表不同层次细节LOD技术, 这些方面是最重要的.

最后,要得到光滑,以免尖锐的“峰”和“谷”通常无用的曲线,并且通常不切实际.
要在不同尺度获取图像是必要的,以保持相同的分辨率纳入新点. 该函数必须允许此操作,以确保代表的质量合理.

perlinSuavizado

每个函数“Perlin杂点”生成能适应更好或更坏的创建模型所需的不同数据. 这是一个研究领域目前正在深入探索.
在 [1] 提出了使用的数字psudoaleatorio的发电机的, 基于使用的素数, 返回在范围内的数 [-1,1] 每个整数值被供给.

函数噪声 (32-bit integer: x)

X = (x<<13) ^ x的

A=15731

B=789221

C=1376312589
回归 ( 1.0 – ( (x * (x * x * A B) +Ç) &7FFFFFFF) / 1073741824.0)结束噪音功能

功能“噪音”

前三个数字是素数. 您可以使用不同的值进行试验,以产生新的曲线. 使用三个变量的 (一, B YÇ) 被表达的清晰度进行.

该代码有两条主线.

第一个“换血”的输入值可控制的方式,其位的位移

X = (x<<13) ^ x的

以产生在该范围内的数 [-1,1] 用其上端的值 (1) 和减去一个值 [0,2].

获得减去值利用提到素数确定一个新的中间值进行.

x * ( x * x * 一 + 乙) + Ç

所产生的数必须是正, 所以我们应用逻辑面膜,使其第一位为零 (正)

&7FFFFFFF

如果我们把这个最后的结果是由最大整数取得零和1之间的一个值, 为它是由MaxEntero / 2 =分 230

七天

组成最终功能的“噪音”功能与其他“同类”,增加了面包车,其频率依次增加一倍.

的频率为F = 1 / L的波长的倒数, 波的周期的大概念

频率

而振幅为我们提供了大小 (我们的波高)

宽

所有这些功能以前的倍频, 类似于钢琴上连续的两个音符之间的间距相等, 所谓的“八度”.

一个函数和它的第一个八度可以撰写一封新功能
伪随机函数,并添加了第八届

加入伪随机函数和它的八度
您可以添加函数本身的谐波或做出类似的功能组合, 添加在创造许多个八度的更多样性cornering.The逐步纳入添加细节尺度. 得到的曲线,数字越大的八度较高的复杂性, 允许模拟陡峭的悬崖.

1
2
3
4
5
6
7
8
9

持久性因数表示谐波的发生率或重, 上的曲线的光滑度增加一个控制点.

沿曲线持续高附加​​值较大的变化.

通过减少持久性的价值, 八度的影响不会产生尖锐的形式.

对于给定的频率是用于持久性的每个值的单个振幅, 我们称之为 “各频率的振幅”

曼德尔布罗定义埃尔RUIDO, “噪音”, 如 “高频低持久性”

在几个阶段中进行的计算处理.

首先我们确定噪声的生成函数, 作为解释:

两点之间的中间值可以通过线性插值来获得, 二次, CUBICA等.

然后, 是 “软化” 内插函数之后:

和该组被集成, 耦合求和函数谐波分量:

[1] 用伪代码解释页面Perlin杂. 本页面是在这项工作中提出了实施的主要参考. “HTTP://freespace.virgin.net / hugo.elias /培林Noise.htm