問題タブ [perlin-noise]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 2D関数から3Dパーリンノイズ関数を作る
そこで、openGL を使って時間とともに変化する抽象的な形をプロットしようとしています。そのために、パーリンのノイズ関数を使用したいと考えています。このコード ( http://www.sorgonet.com/linux/noise_textures/ ) は、ここにある関数が 2 つの座標しかとらないという事実を除けば、私にとって完璧な出発点です。2 つの空間座標を取るものと、時間とともに変化する 3 つ目が必要です。
私の質問は、この関数をもう 1 つの座標で動作するように適応させることは可能ですか?
c++ - パーリン ノイズを使用した 2D 地形生成 (タイル ベース)
私は、基本的に「2次元の側面図」に見えるゲーム(シミュレーション)に取り組んでいるアプリケーションのパーリンノイズを調べています。パーリン ノイズがどのように機能するかは完全には理解していませんが、一般的な考え方は理解できます。
コードPerlin Noiseでこの記事を見つけたので、前にそれを与えることにしました。現時点でワールド ジェネをセットアップする方法は、各「チャンク」に 16x16 のタイルがあり、Y >= HEIGHT / 2 の場合にすべてを作成すると述べたところです。 tiles 'solid' else 'air' なのでうまくいきます.. しかし、ご想像のとおり、土地は非常に平らです。そこにパーリン ノイズが入ると思ったので、上記の Web サイトにあるコードを使用しましたが、ノイズをソリッド/エア タイルに変換する方法がわかりません。
あなたが見ることができるように、非常に現実的な地形ではありません
地形が以下のようになることをもっと探しています。山となだらかな丘のように見えるはずです)鋭いエッジは気にしません(正方形)
タイル配列を反復してノイズを上に変える方法がわかりません
現時点では、タイル配列 (2d) をそのように反復処理していますが、最初の図からわかるように、タイルが固体であるかどうかをランダム化するだけで、なだらかな丘や山は作成されません。
また、この 16x16 の「チャンク」の右側には、このチャンクと一致させる必要がある別のチャンクがあり、その後の次のチャンクについても同じことが言えます。チャンクは以前と同じであってはなりません。意味がある場合は、別々のチャンクではないように見えるようにするだけです。
どんな助けでも大歓迎です!ありがとうございました
アップデート
パーリン関数をこれに変更し、フレネルが提案したものを実装しました:
これを行った後、見た目がずっと良くなりました。X * ChunkX
各ノイズについて、すべてのチャンクが同じではないかのように、次のようになりました。
ご覧のとおり、地形は以前よりも希望どおりになりましたが、実際の地形のようには見えません。滑らかではないため、なだらかな丘を作成するために全体的な外観を滑らかにするためにできることはありますか?平原
そのノイズ値の下でのタイルの作成を削除したので、範囲が見やすくなりました
ご覧のように問題ないように見えますが、疑似乱数のように見えないように、値を「平滑化」するだけで済みます。また、左側に表示されている最初のチャンクが途中で同じ値を持っているのも不思議です。
ありがとう。
c# - 1D パーリン ノイズを使用して大ざっぱな/ぐらついた線を作成する
ページに示されているように、1Dパーリンノイズを使用して大ざっぱな/ぐらついた線を描くための疑似コードまたは手順を始めるのを誰かが手伝ってくれませんか
http://freespace.virgin.net/hugo.elias/models/m_perlin.htm
(ソース: virgin.net )
aforge.net には、1D および 2D パーリン ノイズ関数の関数があることがわかりました。2D ノイズを使用して雲を生成する例を示します。
http://www.aforgenet.com/framework/docs/html/f2f36ce1-ddab-389e-b538-0ccaca81fa87.htm
しかし、それを使用してぐらついた線を生成する方法がわかりません。
interpolation - パーリン ノイズの作成
私は、2 次元のパーリン ノイズの生成に頭を悩ませようとしています。1 次元で作成できましたが、2 次元で補間がどのように機能するかわかりません。これは私のオクターブがどのように見えるかです:
値を補間する必要があることはわかっていますが、それにより画像が滑らかになりますが、その方法がわかりません。線形補間を使用したいので、それを行う方法の概念について助けてもらえますか?
ありがとう。
javascript - 古典的なパーリンノイズのJavaScriptへの移植:周期的なパターンの取得。なんで?(JsFiddleの例)
科学的な目的で、古典的なパーリンノイズ(src:http: //mrl.nyu.edu/~perlin/doc/oscar.html#noise)をJavaScriptに移植しようとしています。理由はわかりませんが、私のコードはランダムなパターンではなく周期的なパターンを生成します。
キャンバスに描画された例を含む完全なコードをここで見つけることができます(1次元に分解):http://jsfiddle.net/YL77D/
問題は「noise1」関数内にあると思います。
xシードが10.1、10.2、10.3などの場合、uとvは同じ数である必要があると思います(uは10に基づいており、vは11に基づいている必要があります。したがって、sxはその中間にあります)。私は正しいですか?しかし、私のコードでは、uとvは常に異なります。
何か案は?どうもありがとうございます。
javascript - 線形補間は古典的なパーリン ノイズでどのように機能しますか?
昨日、古典的なパーリン ノイズ (ソース: http://mrl.nyu.edu/~perlin/doc/oscar.html#noise ) を JavaScript に移植しました。奇妙なことに、生成されたノイズは、私が予想していたものとは大きく異なって見えます。古典的なパーリン ノイズは線形補間/lerp を使用しますが、ノイズはエッジではなく滑らかです。コサイン補間のように見えます。Perlin は lerp 関数を別の方法で使用しているようです。
JavaScript に移植された元のコード(キャンバス画像付き) は次のとおりです: http://jsfiddle.net/fDTbv/
これは興味深い部分です:
u と v は常に変化します。なんで?u と v は sx の前の点と後の点を表すため、変更されませんか?
コードを「私が期待したもの」に変更しました: http://jsfiddle.net/8Xv8G/
そして興味深い部分:
私の質問: なぜ Perlin は lerp 関数をそれほど異なる方法で使用するのですか?
raphael - Raphael.js で Perlin ノイズを実装するには?
Raphael.js でPerlin ノイズの実装を作成したいと考えています。効果を実証するために、Flash-AS3 を使用した実装例を次に示します。
いくつかのメモ:
- 結果は例と完全に一致する必要はありません。同様のレンダリングで十分です。
- 円形の中にエフェクトを配置したい。
- Windows XP で Raphael 2.01、Firefox 12.0 を使用しています。
Google でこれを実装する方法を検索しましたが、見つからないようです。これはどのように行うことができますか?
perlin-noise - パーリン ノイズ勾配関数
3D パーリン ノイズ アルゴリズムを低次元に適応させようとしていますが、その理由がよくわからないため、勾配関数に問題があります。
hash
元の Perlin 勾配関数は、aと 3 次元座標の4 つの引数を取ります(x, y, z)
。以下に示すように、関数の結果は の値に基づいて返さhash mod 16
れます。
0
:x + y
1
:-x + y
2
:x - y
3
:-x - y
4
:x + z
5
:-x + z
6
:x - z
7
:-x - z
8
:y + z
9
:-y + z
10
:y - z
11
:-y - z
12
:y + x
13
:-y + z
14
:y - x
15
:-y - z
からの戻り値は一種のパターン0
を作成します。これは、すべての組み合わせが 1 回表されるためです。11
ただし、最後の 4 つは重複しています。最後の 4 つの戻り値に適合するように選択されたのはなぜですか? (x, y)
また、2 次元と 1次元の類似のケースは何でしょう(x)
か?
c++ - パーリンノイズの問題
パーリンノイズ関数を作成しました。私の問題は、ノイズから地形図を生成すると、ブロック状になってしまうことです。これまでに見た雲のような画像とは異なります。私は自分が間違っていること(もしあれば)に興味があります。これが私のコードです:
main.cpp
perlinnoise.cpp
unity3d - Unity TerrainData は絶対標高と互換性がありませんか?
Unity TerrainData 構造が絶対標高を取得することは可能ですか? 絶対標高を生成する地形ジェネレーターがありますが、それらは巨大です。振幅が最も高いパーリン オクターブは、マップ全体の高度を決定するものであり、振幅は 2500 で波長は 10000 です。マップを適切にタイル表示し、高度間をシームレスに移行するには、使用できる必要があります。この絶対高度のシステム。限られたスペース (0 と 1 の間) に収まるようにジェネレーターの出力を縮小し、TerrainData の y スケールを引き伸ばしますが、精度が大幅に失われます。
私に何ができる?2500 メートルも異なる標高を使用する方法はありますか? 重要なことの 1 つは、単一の Terrain オブジェクトの空間にそれほど大きな変動はありませんが、非常に多くの Terrain オブジェクトにわたって、プレイヤーがそのような高度を横断する可能性があるということです。