問題タブ [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 投票する
3 に答える
13720 参照

terrain - 3D パーリン ノイズ関数を使用して地形を生成するにはどうすればよいですか?

2D パーリン ノイズ関数を使用して高さの値を生成することはできますが、3D パーリン ノイズ関数を使用する理由がわかりません。Notch のブログで、彼はMinecraft の地形生成に 3D Perlin ノイズ関数を使用することについて言及しました。それがどのように行われるのか、そしてなぜそれが役立つのか誰か知っていますか? xy、および値を渡している場合、zそれはすでに高さを持っていることを意味しませんか?

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

landscape - 既存の地形に基づくオンザフライの地形生成

この質問は、ここで提起された質問と非常によく似ています。

私の問題は、次のようなマップがあることです。

メインマップ

このマップは、2Dパーリンノイズを使用して作成され、作成された高さマップを実行して、対応する要素の高さまたは勾配に基づいて、地形内の各要素にタイプと色の値を割り当てます。これはかなり標準的です。マップ配列は2次元であり、画面サイズの正確な寸法(ピクセル/ピクセル)であるため、1200 x 800の生成では、リグで約2秒かかります。

次に、強調表示された長方形を拡大します。

http://i.stack.imgur.com/hrZnM.png

明らかに、サイズが大きくなると、ディテールが失われます。そしてここに問題があります。その場で追加の詳細を作成し、プレーヤーが動き回るときにそれをディスクに書き込みたいと思います(プレーヤーは、グリッドに沿った動きに制限されたドットになります)。これを行うための2つのアプローチがあり、最初に頭に浮かんだのはすぐに実装したものです。

http://i.stack.imgur.com/bbLia.png

これは、前の画像の黄色のグリッドスペース(中央の左側)で強調表示されている、古い地形のサンプリングされた要素から作成された新しいバイアスされたローカル地形の拡大図です。ただし、このシステムでは大幅な変更が必要になります。たとえば、黄色のグリッドスペースの1つ上にあるユニットをビーチタイルに移動すると、地形が完全に変化します。

http://i.stack.imgur.com/6shKz.png

したがって、それが正しく機能するためには、過度の量を実行する必要があります。プレーヤーが次の場所に到達するために必要なローカル世界の40ほどのグリッドスペースを移動したときにスムーズな遷移を作成するために、単語は補間になると思います。世界中でタイル張り。それは複雑で非常にエレガントではないようです。

2番目のアプローチは、元のマップのグリッドを小さなビットに分割し、各正方形を4で割ることです。私はこれを実装しておらず、実際に詳細を増やす方法がわかりませんが、おそらくそれが最善の解決策になると思います。

これにどのようにアプローチできるかについてのアイデアはありますか?ローカルでオンザフライである必要があることに注意してください。地図の解像度を上げるだけでは、絶対に避けたいと思います。

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

iphone - 奇妙な CGImage 作成の問題

iphone で生データから CGImageRef を作成すると、かなり奇妙な問題が発生します。x、y、z、および t を取り、-1 と 1 の間の値を返すパーリン ノイズ生成関数から CGImageRef を作成しようとしています。各ピクセルについて、-1 と 1 の間のノイズ値を取得し、変換します。これを 0 ~ 255 の char に変換し、次の方法でデータから CGImageRef を作成します...

次に、この CGImageRef を CALayer に描画すると、次の結果が得られます...

データから作成された CGImageRef

水平方向のアーティファクトは、(実際の画像ではなく) 私のスクリーン キャプチャによって作成されましたが、画像を 3 つの同一のセクションに分割する 2 つの垂直線が問題です! 画像が で 3 回繰り返され、これらの 2 つの垂直方向の不連続が発生する原因は何ですか?! さらに奇妙なのは、このように CGImageRef を作成せずに手動でパーリン ノイズをレンダリングすると...

char へのキャストが問題を引き起こしていないことを確認するために、意図的に char にキャストしてから 255.0 で割ったことに注意してください。とにかく、私は次の結果を得ます...

手動でノイズを描画する

したがって、上記の両方のアプローチでまったく同じノイズを作成しているように見えます。また、各メソッドの値を並べて出力して、それらが同一であることを確認しました! そのため、コンテキストに直接描画するのではなく、何らかの方法でデータから CGImageRef を作成すると、画像を破壊する奇妙な視覚的な問題が発生します。アプリケーションの開始時にこれらの一連の画像を生成できる必要があり、手動で描画して良い結果を得ることができません。何がそのような問題を引き起こす可能性があるのか​​ 誰にも分かりますか???

0 投票する
8 に答える
30862 参照

image-processing - シンプレックスノイズとパーリンノイズ

シンプレックスが出た後、なぜ今日もパーリンノイズがとても人気があるのか​​知りたいです。シンプレックスノイズはKenPerlin自身によって作成され、高次元では低速で高品質(目に見えるアーティファクトなし)の古いアルゴリズムを引き継ぐことが想定されていました。

シンプレックスノイズは2001年に発生し、その10年間、地形の高さマップの生成、手続き型テクスチャの作成などに関して、パーリンノイズについて人々が話しているのを見たことがあります。

誰かが私を助けてくれますか、シンプレックスノイズのいくつかの欠点はありますか?1Dと2Dのノイズに関しては、パーリンノイズの方が速いという噂を聞きましたが、それが本当かどうかはわかりません。

ありがとう!

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

algorithm - 球面でパーリン ノイズを生成するにはどうすればよいですか?

パーリン ノイズを使用して地形を生成しようとしています。デカルト座標を使用して生成する方法は理解していますが、球体でどのように機能するかについて頭を悩ませることはできません。2D サーフェスを球体に投影できることは知っていますが、歪みによってノイズ分布が台無しになることはありませんか? 球の表面に一様なノイズを生成するために思いつく最良のアイデアは、球上の点を 3D デカルト座標にマッピングし、3D ノイズ関数を使用することです。(基本的に、ノイズの立方体を生成し、コーナーを「削って」いわば丸くすることです。) 私が見逃しているより良い方法はありますか?

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

iphone - iOSプラットフォーム上のクラウドの光生成アルゴリズム

アプリの背景をアニメーションの雲で埋めたいのですが。私はいくつかの調査を行い、適切と思われるパーリンノイズアルゴリズムに出くわしました。ただし、最初のテストでも、512x512(2D)のクラウドマップを生成するのに非常に費用がかかりました。シンプレックスノイズを試しましたが、修正されませんでした。

http://freespace.virgin.net/hugo.elias/models/m_clouds.htmによると、クラウドの生成は、いくつかのperlin/simplexノイズマップを一緒に追加することによって行われます。私のアプリではiPhoneでそれを行うことはできません:流動的なグラフィックが必要です(私の楽観的な期待はA4で60 FPSです)。

だから私の質問:私のフレームレートをあまり落とさないアニメーションの雲を生成するためのより軽いアルゴリズムはありますか?

前もって感謝します!

ポール

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

c# - 改善されたノイズのバージョンが 0 を返し続ける

XNA ゲームに改良ノイズを実装しようとしていますが、改良ノイズ関数が 0.0f を返し続けます。これは、Ken Perlin ( http://mrl.nyu.edu/~perlin/noise/ )のコードとまったく同じで、C# に移植しただけです。

クラスを書き直して、サイトから直接コピーして貼り付けることも試みましたが (もちろん、C# に移植しました)、0 以外の値は出力されません。

私が使用しているコードは次のとおりです。

それをテストするために、私は単純に次のことを行いました。

上で述べたように、常に 0 が出力されます。

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

opengl - 動的地形のテクスチャ座標 - OpenGL

フレームごとに動的に変化する地形のテクスチャ座標を計算するために使用される一般的な手法について誰か説明してもらえますか? 頂点シェーダーに実装されたパーリン ノイズ関数があり、地形はフレームごとにアニメーション化されます。地形は非常に山のようです (ギザギザで非常に騒がしい)。地形全体にいくつかの大きなテクスチャを直線的に平手打ちし、高さに基づいてフラグメント シェーダーでマルチテクスチャを適用できると考えていましたが、これにより、高度の増減が大きい場所でテクスチャが引き伸ばされて見えますよね? 頂点シェーダーでテクスチャ座標を計算する方法を理解するのに苦労しています。これにより、テクスチャが地形全体で見栄えがよくなり、詳細のためにマルチテクスチャ化できるようになります。OpenGL でこれを行うためにどのような手法が存在するかについての指針を探しています。

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

noise - マスクによる地形ノイズの生成?

白い部分が海面より上にあり、黒い部分が海面より下にある白黒の 2D マップがあります。そのマスクに合わせて地形を生成する方法がわかりません。島の輪郭が正しくなくても問題ありませんが、重要なのは、ノイズが説明されている島の輪郭にほぼ一致する必要があるということです。

パーリン ノイズを調べましたが、それを自分のシナリオに適応させる方法がわかりません。

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

3d - 最速のパーリンのような 3D ノイズ アルゴリズム?

Ken Perlin が最初にノイズを発明してから 20 年以上が経過しました。Perlin に近いプロパティ (手続き型、自然に見えるグループ化、バンディングの削減、通常の機能サイズなど) を備えた、より高速な種類の 3D ノイズ ジェネレーターを作成できた人はいますか?

プロシージャル ワールド ジェネレーターを構築しようとしていますが、現在 Perlin ではうまくいきません。私の実装が現時点で最高のものではないことは認めますが、とにかく書き直す場合は、より良いアルゴリズムが利用できるかどうか疑問に思いました.