問題タブ [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.
python - Python pnoiseは0を返します:なぜそうですか?
Pythonのノイズモジュールを使用して2Dパーリンノイズを生成しようとしています。私は例に従おうとしました。
この関数は、入力を必要とするだけです。pnoise2()
x
y
しかし、私が何を渡しても、関数は常にを返します0.0
。どうして?私は何か見落としてますか?
[編集:05/10/12]
他のいくつかの例は機能しますが、コードは単純です。
* 0.5
それで、またはなどの値が何のためにあるの+ 0.5
かわからないので* 10+3
、これらの値のいくつかを除外しながら、私は自分自身を試しました。上記の例でrandom.random()
は、float0.7806
などを返します。これに乗算し16.0
て周波数を取得します。注意:オクターブは、連続するノイズ関数の数を示すため、整数である必要があるため、すでに困惑しています(関数1
の3番目の値として渡される整数でもあることに注意してくださいpnoise2()
)。とにかく、関数では、からのいくつかの整数range()
が、で除算されfrequency
ます13.88
。
しかし、再び:
したがって、関数が。以外の値を返すためには、x
または 小数が必要であると結論付けます。y
0.0
この後、私の問題は、理由がわからないことです。誰かが私を教えてくれませんか?
algorithm - 3Dの方が速いのは何ですか?Perlinまたはシンプレックスノイズ?
さて、ウェブ上で見つけられるPerlinとSimplexノイズの間の多くの比較があります。しかし、私が最も興味を持っているのは、3次元の両方の処理時間の単純な比較があるものを本当に見つけることができませんでした。私はその人気のあるPDFを読みました(そしてそのほとんどを理解しました-イェーイ!)が簡単な質問に答えることはできません。最適な実装を想定した場合、3Dの方が速いのはどれですか。
このstackoverflowの質問の回答は、シンプレックスが私の場合のかなり明確な勝者であることを示唆しています。もちろん、正反対を主張する他のリソースがあります。
ただし、一般的なステートメントでは、パーリンノイズの複雑さはO(2 ^ N)であるのに対し、シンプレックスの複雑さはO(N ^ 2)であるようです。これは、3Dの場合、Perlinの場合は8、Simplexの場合は9を意味します。しかし、あるサイトで、シンプレックスは実際にはO(N)であるというステートメントを見つけました。では、ここで何が真実であり、それが3Dの速度にとって実際に何を意味するのでしょうか。
私はここで途方に暮れています、私は本当に主に3Dアプリケーション(洞窟を含むランダムな地形生成用)の使用法に興味があり、それを同じくらい速くしたい場合はどちらを使用すべきかという質問に対する良い答えを見つけることができません可能。
だから多分誰かがここで私を助けることができます:)
random - パーリンノイズ:グリッドポイントの疑似ランダム勾配の計算
このパーリンノイズの記事を理解するのに少し問題があるようです。各境界点の疑似乱数勾配の計算がどのように機能するかを理解するための助けが必要です。著者は関数を与えます:
それから彼は画像を与えます:
記事の残りの部分は理解していますが、彼が各境界点からこれらのランダムなグラデーションをどのように生成するのかわかりません。支援をいただければ幸いです。ありがとう!
java - パーリン ノイズが機能しない
パーリン ノイズの生成に (再び) 少し問題があります。それがどのように機能するかについての複数の記事を読みました。次のコードで実装しました。
すべてのオクターブを足し合わせると、次のようになります。
巨大なコード ダンプで申し訳ありません。実行するとコードはすべて機能しますが、Perlin ノイズは発生しません。私はこれを取得します:
これは、何よりもぼやけた混合ノイズです。オクターブを追加したり、持続性を上げたりしても、非常に似た結果が得られます。この記事は、コードを作成するためのリファレンスとして使用しました (およびこれも)。したがって、これが機能しない理由について何か考えがある場合は、コメント/回答してください。ありがとう!
actionscript-3 - Actionscript: シードを使用した疑似乱数の作成
Flash で Perlin Noise Number を返す関数を作成しています。この関数には、静的シードから乱数を返す関数が必要です。残念ながら、Actionscript のデフォルトの Math.random はこれを行うことができません..
インターネットで長い間検索しましたが、パーリン ノイズ関数に適合するソリューションが見つかりませんでした。
次のコードを試しました:
この関数は乱数を作成しますが、シードは常に変化するため、パーリン ノイズでは機能しません。
この関数は、従った Perlin Noise チュートリアルから取得しました: Perlin Noiseですが、1 しか返らないようです。
同じシードで呼び出されたときに常に同じ疑似乱数を返す関数を作成するにはどうすればよいですか?
javascript - Javascriptでスムーズなシンプレックスノイズを生成できません
私はすべてを試し、PerlinNoiseまたはSimplexNoiseに関してインターネット上で見ることができるすべてのリンクを読み、正常に機能していると思われるJavascriptの例をいくつか分析しました。
しかし、私はまだ非常にランダムに見える画像を取得します...本質的にはテレビの静止画だけです。
私のコードは以下の通りです。値をシードできるように乱数ジェネレーターを使用していますが、Math.randomも試してみました。
私が知る限り、異なるオクターブで生成された異なる画像が適切に補間されていないか、ノイズ関数からRGB値に変換する方法が間違っている可能性があります(これらの問題の両方を修正しようとしました。 ..)。
c++ - 望ましくない通常のパーリンノイズ
惑星の球にfBmを実装しようとしています。球を作成するために、立方体から球を変換します。残念ながら、生成されるfBmはミラーリングされたパッチとして表示されます。さらに、2つの面でのみ実行されます(他の面の値をラップします)。これにより、球としてレンダリングしたときに同様に引き伸ばされた外観になります
ノイズ関数は、Ken Perlinによって説明されているように、改善されたノイズです。これをHLSLに適合させました。
この実装は前のプロジェクトで期待どおりに機能しましたが、このプロジェクトでは、頂点位置を入力として使用すると、代わりに平滑化されたグリッドが作成されるように見えます。これは単位立方体であるため、値は整数ではありませんが、典型的なパーリンノイズテクスチャが作成されない理由がわかりません。
どんな助けでも大歓迎です、それが必要であるならば、私はより多くの情報を提供します。
hlsl - 球にパーリン ノイズを適用する方法は?
XNAプロジェクト用にHLSLでアニメーション化された太陽を作成しようとしています。
このサイトから学んだパーリン ノイズアルゴリズムを使用して、ピクセル シェーダーでテクスチャを生成しています。
これは、ピクセル シェーダー用に書いた hlsl コードです。
基本的に、このコードでは、テクスチャ座標コンポーネント ( TextCoord
) を関数に渡すことで、グラデーション テクスチャ ( 1px x 256px )CreatePelinNoise
のカラー インデックスとして使用される値を返します。myTexture
AMD RenderMonkeyでの結果は次のとおりです。
しかし、球の極には、生成されたテクスチャが不均一になる見苦しい不要な効果があります。
この問題を解決し、生成されたテクスチャを均一にするにはどうすればよいですか?
c - 「ブロック状」のパーリン ノイズ
私は最近、パーリン ノイズ ジェネレーターを C で実装しようとしました ( Ken Perlin の Web サイトに基づいて、SDL ライブラリを画面出力として使用します) が、出力は、補間ブロック間のエッジが連続的でも滑らかでもないことを示しています - 補間ブロック実際にブロックとして現れます。
私は 4 種類の補間を試しましたが、すべての「滑らかな」補間はほぼ同じに見えます。コサインのみが(非常に)わずかに良く見え、比較すると直線線形はひどいように見えます。(以下は余弦と線形)
皮肉なことに、ノイズのフラクタル合計を作成する場合 (これの私の最終的な目的)、線形は「ブロック性」の点でスムーズな補間を吹き飛ばし、実際にはほとんど問題なく見えます。
コードに欠けているものや間違っているものがあると確信していますが、それを見つけることができないようです。
これらのブロック アーティファクトの原因となっている可能性のあるもの (または条件) に関する提案はありますか?
参考までに、以下の私の現在のコード:
使用法: 実行中に Up または Down を長押しすると、ノイズ グリッドが拡大または縮小されます。
.net - perlin.getValue() を使用して Libnoise で 3D ハイトマップを生成するには?
Libnoise の dotnet ポートを使用して、次のコードを使用して XNA でいくつかのハイマップを生成しています。
XNA を使用しない提供された libnoise サンプルで異なる結果が得られたとしても、これはすべて正常に機能します (XNA で同じ結果を得るには、何らかの理由で周波数を下げる必要があります)。
悲しいことに、ノイズの 3D バリアントを生成する NoiseBuilder[3D] がないため、perlin 関数を使用して自分で構築する必要があります。しかし、perlin.getValue() を使用して 2D ノイズを生成しようとしても、間違っているようです。
SumFractal を組み込む方法もわかりませんが、それは後で心配になると思います。