問題タブ [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.

0 投票する
14 に答える
212745 参照

random - GLSLのランダム/ノイズ関数

GPUドライバーベンダーは通常GLSLに実装する必要がないため、GPUシェーダー内で使用するように最適化された「グラフィックランダム化スイスアーミーナイフ」ユーティリティ関数セットnoiseXを探しています。私はGLSLが好きですが、どの言語でもコードを使用できます。自分でGLSLに翻訳しても問題ありません。

具体的には、次のことを期待します。

a)擬似ランダム関数-M次元シードから計算された[-1,1]または[0,1]にわたるN次元の一様分布(理想的には任意の値ですが、シードを抑制しても問題ありません)たとえば、均一な結果分布の場合は0..1になります)。何かのようなもの:

b)パーリンノイズのような連続ノイズ-繰り返しますが、N次元、+-一様分布で、値のセットが制限されており、見栄えもよくなっています(パーリンレベルのように外観を構成するためのいくつかのオプションも役立ちます)。私は次のような署名を期待します:

私は乱数生成理論にあまり詳しくないので、事前に作成されたソリューションを最も熱心に探しますが、「これは非常に優れた効率的な1D rand()です。説明させてください。その上に優れたN次元のrand()を作成する方法..."

0 投票する
2 に答える
3641 参照

opengl - OpenGL によるパーリンのノイズ

私はhttp://dindinx.net/OpenGL/index.php?menu=exemples&submenu=shadersのいくつかの例を通してパーリンのノイズを研究していましたが、彼が代わりにmake3DNoiseTexture()使用perlin.cしていることに気付くのを助けることができませんでしたnoise3(ni)PerlinNoise3D(...)

それはなぜですか?パーリンのノイズは、さまざまなノイズ周波数と振幅の合計であるはずではありませんか?

質問 2 は何ni, inci, incj, inckの略ですか。nix、y 座標の代わりに使用する理由 Hugo Elias が x,y 座標でPerlin2Dni
ni[0]+=inci;
inci = 1.0 / (Noise3DTexSize / frequency);
作成したのを見て、PerlinNoise3D(...) もそうです。

前もって感謝します :)

0 投票する
1 に答える
5339 参照

3d - 3Dパーリンノイズ分析派生物

現在、Shader Model 4(DirectX 10 HLSL)を使用して3Dパーリンノイズバンプマッピングを実装しています。ノイズ自体の生成は大きな問題ではありませんが(チュートリアルやコードがたくさんあります)、私が見つけていないのは3Dパーリンノイズの分析的派生物です。

派生物を考慮に入れている唯一のサイトは、IńigoQuilezのサイトと関連するGameDev.netディスカッションです。問題は、最初のリンクではノイズが値ベースであり、勾配ベースではないことです(これは私にとっての要件です)。2番目のリンクでは、2D勾配ノイズの導関数しかありません。

数値微分を探しているわけではないことに注意してください。数値微分では、4つの隣接するノイズサンプルを生成する必要があり、オーバーヘッドが大きすぎます。

誰かがこれらの導関数を計算しましたか?それらを使用しているリファレンス実装はありますか?

0 投票する
4 に答える
53825 参照

terrain - 地形のパーリンノイズ生成

パーリンノイズを使用して高さマップを生成するために、オンラインで見つけたソースコードを実装しようとしています。ランダムな高さマップを可能にするために、3番目の座標がランダムな「シード」であるnoise3関数を使用して、高さマップを取得することに成功しました。

私の問題は、生成された地形がかなり鈍いことです-私は山が欲しいです、そして私は起伏のある草地を得ています。私はPerlinNoise(主にここ)について読んだことがあります。読みやすさを念頭に置いて書かれていないことが明らかにわかったソースコードと、一般的なパーリンノイズの概念についての理解が弱いため、コードを微調整する必要があるもの(振幅と周波数?)がわかりません。より劇的な地形を作成します。

パーリンノイズ、一般的なパーリンノイズ、またはさらに解読可能なコードを使用して高さマップを生成するための詳細情報も歓迎します。

編集:私は(種類の)パーリンノイズがどのように機能するかを理解しています。たとえば、振幅と周波数に関して、これら2つの側面に使用される上記のリンクのコードでどの変数を変更するのか疑問に思っています。

0 投票する
1 に答える
467 参照

graphics - 私の「パーリン」ノイズ エフェクト シェーダは、すべて白またはすべて黒のいずれかを生成します

NVidia FX Composer で「パーリン」ノイズ シェーダをコーディングしようとしています。ただし、ノイズ関数をどのように微調整しても、100% 白または 100% 黒のいずれかが返されます。これを解決する方法や、問題がどこにあるのかさえわかりません。

編集:このページを見たことがあるなら、おそらく私がどこでコードを入手したか知っているでしょう。すでに CPU で作業している方法から始めようと考えました。

助けてください。

ありがとう。

0 投票する
2 に答える
801 参照

c# - 「パーリン」ノイズ ジェネレーターに倍率を追加するにはどうすればよいですか?

スクロールする地形を作成するために使用しようとしているパーリン ノイズ ジェネレーターがあります。

中央の地形、それを囲む同じ側の 8 つの地形 (これらは正常に機能しています)、および 3 倍大きい地形の 2 番目のリングがあります。これらの場合、ノイズ ジェネレーターが 3 倍の「密度」のノイズを出力する必要があります。これにより、小さな地形の上に大きな地形を配置でき、3 倍のタイル (およびマップ サイズ) を除いて、それらは一致します。 .

より大きなマップを生成したいだけではありません。それはすぐに法外になるでしょう。

私は何をすべきかわかりません; 明らかな解決策はすべて、何らかの形で失敗しました。

ありがとう。

0 投票する
4 に答える
1470 参照

c# - Random.Next() - N 番目の .Next() を見つける

一貫してシードされた Random が与えられた場合:

Random r = new Random(0);

r.Next()一貫して呼び出すと、同じシリーズが生成されます。N回呼び出すことなく、そのシリーズのN番目の値をすばやく発見する方法はありますか?r.Next()

私のシナリオは、によって作成された値の膨大な配列ですr.Next()。アプリは、任意のインデックスで配列から値を読み取ることがあります。配列を削除し、代わりにオンデマンドで値を生成することにより、メモリ使用量を最適化したいと考えています。しかし、配列の 500 万番目のインデックスをシミュレートするために 500 万回総当たり攻撃r.Next()を行うと、配列を保存するよりもコストがかかります。N 番目の .Next() 値への道をショートカットすることは可能ですか?

0 投票する
1 に答える
4433 参照

algorithm - 2Dパーリンノイズのラッピング

高さマップ生成アルゴリズムでPerlinNoiseを使用していますが、連続しているように見えるようにエッジをラップアラウンドさせたいと思います。これを行う簡単な方法やトリックはありますか?水平方向にも垂直方向にも回り込むように、球形のノイズのようなものが必要だと思います。ラッピング軸が1つだけでもいいのですが、2つが良いでしょう。

今のところ、追加するオクターブ数を設定できる古典的なアルゴリズムを使用しています。これは、連続するすべてのオクターブ間で波の振幅と周波数を変更するために使用される乗数です。

前もって感謝します!

0 投票する
2 に答える
1494 参照

processing - パーリンノイズフィールドはどのように機能しますか?

私は特にこの例を見ています:

http://www.airtightinteractive.com/demos/processing_js/noisefield08.html

そして、これがそのためのコードです:

http://www.airtightinteractive.com/demos/processing_js/noisefield08.pjs

これらの線がパーティクルクラスで何をするかを説明する必要があると思います。

ノイズは指定された座標に基づいて値を計算することは理解していますが、パーティクルのx posをmouseYで除算したり、yposをmouseYで除算したりするロジックがわかりません。また、カウンターのように見える「id」が何を表しているのか、次の2行が何を達成しているのかもわかりません。

ありがとう

0 投票する
2 に答える
2600 参照

c++ - パーリン ノイズ ライブラリ libnoise の使用に関するヘルプ

x、y、および z を整数として libnoise の getvalue 関数を呼び出すと、結果として常に 0 が返されます。これは正常ですか?チュートリアルhttp://libnoise.sourceforge.net/tutorials/tutorial2.htmlのように 1.25、0.75、0.5 を試すと、期待される結果が 0.686347 になります。具体的には、20 未満の整数でこれを試しました。これがどのように機能するのか理解できませんか?

どんな助けでも大歓迎です。