PIZiadasgráficas

PIZiadasgráficas

私の世界はインチです.

Perlinノイズ: 地形生成のための擬似ランダム機能

仮想環境の作成は、異なるシナリオのためのトレーニング大量のデータモデリングは表面を再作成する必要が. 私たちの世界のフラクタル性は、これらのタスクの自動化のための様々な数学関数を使用することができます. 木, 土地, 雲, 火災など. 自己相似性に基づいて、さまざまな技術を用いて構築されています, フラクタルのベースの複雑な家族. いわゆる「パーリンノイズ」を生成する関数は、これらの場合には、適用.

出荷

一次元で適用概念の分析を行う, 二次元への一般化 (土地) 即時です, ず、初期の教訓的な関心を提供していません.

ノイズ関数: 「ノイズ関数 (NF)"

NFは、擬似乱数発生器は、「種」は、特定の入力値に同じ番号を発生させる性質を有する、または本質的に.
任意の関数, このようなY = COSなど(X) 常に "X"の与えられた値に同じ値を返します "と".

正弦波

私たちは、形状モデルを生成するには、この関数を使用する場合, 我々は、後で同一の変数を使用して同じモデルを取り戻すことができます. しかし、関数は周期的な繰り返しを有する砂丘や山の輪郭を表すにおいて使用することができない, パターン, 自然に減少した. 砂丘は互いに似ているが同一ではありません.

地面

繰り返しパターンは、ステージ上で信頼できる残る. モデルは、繰り返しが識別されない擬似ランダムプロファイルを生成することができます.

pseudoaleatoria

制御可能または前の値を復元するために戻って取得することができないではないランダム関数, より多くの異なる値が返されるよう.

racionalVsPseudoaleatoria

「パーリン関数は、「ランダムの利点とを混合することができます (ノイズ) 古典機能の制御. さらには、2与えられた値の中間の値をとることができます, 継続性のため、これらの機能を提供する. 我々は表現のスケールを大きくすると生成された画像の解像度を維持するために、これらの中間点を取得する必要があります. 我々は、詳細LOD技術のさまざまなレベルでの表現を加えた場合, これらの態様は、最も重要な一つである.

最後に、鋭い「ピーク」を回避するために、得られた曲線と「谷」は、一般に、望ましくないを平滑化することが必要であり、一般的に非現実的である.
異なるスケールで画像を得るために新しいポイントを組み込んだ同じ解像度を維持することが必要である. 関数は、この操作は表現の合理的な品質を確保できるようにする必要があります.

perlinSuavizado

各機能「パーリンノイズは「モデルの作成など、良くも悪くも適合させることができ、異なる目的のデータを生成し、. これは、現在、詳細な調査研究の分野である.
エン [1] 番号psudoaleatorioの発電機の使用を提案している, 素数の使用に基づく, 範囲内の数値を返す [-1,1] 各整数値が供給されるために.

機能ノイズ (32-ビット整数: X)

X = (X<<13) ^ X

A = 15713

B = 789221

C = 1376312589
復帰 ( 1.0 – ( (X * (X * X * B) +C言語) &7FFFFFFF) / 1073741824.0)ノイズ関数を終わらせる

機能「ノイズ」

最初の3つの数字が素数である. あなたは、新しい曲線を作成し、異なる値を試すことができます. 3変数の使用 (A, CからB) 発現明瞭により行った.

コー​​ドは、2つの主要なラインを持って.

最初のビットの変位に制御された方法で入力値を「振る」

X = (X<<13) ^ X

その範囲内の数値を生成するには [-1,1] その上端の値を使用 (1) から1の値を引く [0,2].

減算する値の取得は上述の素数を用いて新たな中間値を決定することにより行われる.

X * ( X * X * A + B) + C言語

生成された番号は正でなければなりません, 私たちはゼロに、その最初のビットを持って論理マスクを適用 (ポジティブ)

&7FFFFFFF

我々は最大の整数で、この最後の結果を分割した場合は、ゼロと1の間の値を取得する, それはMaxEntero / 2 =によって分割されているために 230

オクターブ

最終的な機能を構成するために、他の「類似」と「ノイズ」機能は、周波数が連続して倍増バンを追加.

周波数をf = 1 / Lの波長の逆数である, 波の周期性のDA概念

周波数

振幅は、私たちに大きさを与えながら、 (私たちの波高)

幅

これらの関数は、以前の周波数を2倍に, 同様にピアノの2の連続した​​音符の間に等間隔に, 「オクターブ」と呼ばれる.

関数とその最初のオクターブは、新しい関数を作成することができます
擬似ランダム関数とその第八を追加しました

追加された擬似ランダム関数とそのオクターブ
あなたは、関数自体の高調波を追加したり、同様の機能の組み合わせを作ることができます, cornering.Theが徐々に詳細なスケールを追加組み込む多くのオクターブの作成に、より多様性を追加. 得られた曲線でのオクターブ上の複雑さの数が多い, 絶壁をシミュレートすることができます.

1
2
3
4
5
6
7
8
9

永続性の要因は、高調波の発生率や体重を示し、, 曲線の滑ら​​かさに制御点を追加する.

曲線に沿った持続性の高い付加価値大きな変化.

持続性の値を減少させることによって, オクターブの影響が鮮明なフォームを生成しない.

与えられた周波数の永続性の値ごとに片振幅である, 我々は呼ん “各周波数の振幅”

マンデルブロエルRUIDOを定義, “ノイズ”, として “高周波低持続性”

計算プロセスは、いくつかの段階で行われる.

まず、ノイズの発生機能を決定する, 説明した通り:

二点間の中間値を線形補間することにより得ることができる, 二次方程式, キュービックなど.

その後, です “軟化” 補間関数の後に:

そしてセットが統合されています, 加算機能高調波成分を結合する:

[1] 擬似コードで説明ページパーリンノイズ. このページには、この作品で提示実施のための主な参照である. "HTTP://freespace.virgin.net / hugo.elias /パーリンNoise.htm"