虚拟环境的建立需要大量的数据建模为重建不同场景的表面形成. 我们这个世界的分形性质,允许使用各种数学函数的自动执行这些任务. 树, 土地, 云, 火灾等。. 构建与基于自相似性的许多不同的技术, 分形的底座复杂的家庭. 产生所谓的“柏林噪声”的功能适用于这些情况下.
使在一维应用概念的分析, 其推广到二维 (土地) 是立竿见影, 并提供了无初始说教的兴趣.
噪音功能: “噪音功能 (NF)“
一个NF本质上是一个伪随机数发生器具有生成相同数量的输入值的财产,或“种子”的具体.
任何函数, 如Y = COS(x) 总是返回为“×”的给定值相同的值“和”.
如果我们用这个函数来生成几何模型, 我们可以在以后使用相同的变量重新获得同样的模式. 但是,该函数不能在较沙丘或群山的轮廓用它有一个周期性的重复, 模式, 从而减少自然. 沙漠沙丘彼此相似但不相同.
一个重复的模式仍然是可信的舞台上. 一个模型可以生成一个伪随机分布,其中没有重复鉴定. |
随机函数,是不可控的,或没有可以恢复回到以前的一些价值观, 随着越来越会返回不同的值.
A“柏林函数”允许混合的随机优势 (噪音) 一个经典的功能控制. 此外可以采取两个给定值之间的中间值, 因此,提供连续性的这些功能. 如果我们增加表示需要规模来获得这些中间点,以保持生成的图像的分辨率. 如果我们做一个代表不同层次细节LOD技术, 这些方面是最重要的.
最后,要得到光滑,以免尖锐的“峰”和“谷”通常无用的曲线,并且通常不切实际.
要在不同尺度获取图像是必要的,以保持相同的分辨率纳入新点. 该函数必须允许此操作,以确保代表的质量合理.
每个函数“Perlin杂点”生成能适应更好或更坏的创建模型所需的不同数据. 这是一个研究领域目前正在深入探索.
在 [1] 提出了使用的数字psudoaleatorio的发电机的, 基于使用的素数, 返回在范围内的数 [-1,1] 每个整数值被供给.
函数噪声 (32-bit integer: x) X = (x<<13) ^ x的 A=15731 B=789221 C=1376312589 |
功能“噪音” |
前三个数字是素数. 您可以使用不同的值进行试验,以产生新的曲线. 使用三个变量的 (一, 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“
一定是 连接的 发表评论.