13

できる限り頑張ってみますが、1D の Perlin\Sample ノイズに関する実際のチュートリアルは見つかりません。

私はインターネット全体を検索しましたが、何も見つかりません。1D パーリン ノイズに言及しているサイトはどれも、たいてい非常に不明確であるか、単にコードを示しているだけです。

4

2 に答える 2

13

遅くなりましたが、以下のような関数は決して周期的ではないことが証明されています。

sin (2 * x) + sin(pi * x)

sin (2 * x) + sin(pi * x) を示す曲線

たとえば、2 を 3 に変更したり、グラフを y 方向に押しつぶしたり、個々の正弦波の x 周波数/周期をスケーリングしたり、個々の周期を x だけ移動したりできます。多くの場合、geogebra の下のリンクにプレイグラウンドを作成したので、構成をいじったり、何が最もよく見えるかなどを確認したりできます。緑のグラフは結果で、紫のグラフは関数全体を実行したい場合です。理論的な無限大に成長します。オレンジ色の点線のグラフは、上に赤で表示されている関数の一定の構成であり、黄色の線グラフは、スケーリングなしのすべてです. 楽しみ!

ヒント: 非周期関数に 2 つの無理数は必要ありません。たとえば、2 の平方根を使用することもできます。

https://www.geogebra.org/graphing/yzgxvd8q

グラフを使用して設定できること。

于 2020-03-20T10:32:43.160 に答える
11

これは古い質問であることは知っていますが、1d Perlin ノイズを構成する固定点間の補間に関する最も明確な説明の 1 つを次に示しますhttp://webstaff.itn.liu.se/~stegu/simplexnoise/simplexnoise.pdf

すべてのプログラミングで役立つ、知っておくべき最も重要なことの 1 つは、補間関数です...

http://paulbourke.net/miscellaneous/interpolation/

Smoothstep 補間でランダムなポイントを取得すると、一種のスムーズな 1D ノイズ関数が得られます。

ウィキのスムーズステップを参照してください。グーグル経由で多くのトピックがあります。https://en.wikipedia.org/wiki/Smoothstep

どうやらハイパーリンクが不安定なようです。

シンプレックス ノイズの解明

Ken Perlin は、彼の古典的なノイズ アルゴリズムに代わる「シンプレックス ノイズ」を発表しました。古典的な「パーリン ノイズ」は彼にアカデミー賞を授与し、何年にもわたってコンピュータ グラフィックスのユビキタスなプロシージャル プリミティブになりましたが、後から考えるとかなりの制限があります。Ken Perlin 自身が、これらの制限を克服するためにシンプレックス ノイズを特別に設計しました。したがって、彼の元のアルゴリズムよりも優れたアイデアです。

より顕著な利点のいくつかは次のとおりです。

• シンプレックス ノイズは、計算の複雑さが少なく、必要な乗算も少なくなります。

• シンプレックス ノイズは、はるかに少ない計算コストで高次元 (4D、5D およびそれ以上) にスケーリングします。複雑さは、従来のノイズの代わりに次元に対してです。

• シンプレックス ノイズには、目立った方向性アーティファクトはありません。

• シンプレックス ノイズには、非常に安価に計算できる明確に定義された連続的な勾配があります。

• シンプレックス ノイズは、ハードウェアに簡単に実装できます。

悲しいことに、2005 年初頭の現在でも、シンプレックス ノイズを理解している人はほとんどいないようで、ほとんど誰も使用していません。Ken Perlin が Siggraph 2001 と 2002 のコース ノートで説明した時間よりも少し詳しくアルゴリズムを説明しようと思います。うまくいけば、一見したように理解するのが難しくないことを明確にします。私が学んだことから、人々を最も混乱させているのは、Ken Perlin の Java での参照実装の難解な性質です。彼は原理を説明するために非常にコンパクトでコメントなしのコードを提示していますが、そのコードは明らかにチュートリアルとして読むことを意図していません。何度か試みた後、私はコードをあきらめ、代わりに彼の論文を読みました。これははるかに明確でした。

ただし、彼はアルゴリズムを主に言葉とコード スニペットで提示しているため、明確ではありません。他の人がシンプレックス ノイズの素晴らしさと美しさを理解しやすくするために、いくつかのグラフと図、およびいくつかの役立つ方程式があればよかったと思います。また、グラフや画像で説明しやすくするために、最初に 1 次元と 2 次元で説明し、次に 3 次元と 4 次元に進みます。クラシック ノイズ シンプレックス ノイズを説明するには、クラシック パーリン ノイズをよく理解しておくと役に立ちます。私はこの分野でかなり多くの間違った誤解された説明を見てきました.

パーリン ノイズは、いわゆる勾配ノイズです。これは、空間内の等間隔の点に疑似ランダム勾配を設定し、それらの点の間に滑らかな関数を補間することを意味します。1 次元でパーリン ノイズを生成するには、ノイズ関数の疑似乱数勾配 (または勾配) を各整数座標に関連付け、各整数座標の関数値をゼロに設定します。

2 つの整数点の間の任意の点について、値は 2 つの値の間で補間されます。つまり、左と右からの最も近い線形勾配が問題の点に外挿された場合の結果となる値です。この補間はスムーズステップ アルゴリズムです。

于 2013-09-23T12:30:05.043 に答える