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

random - 座標をラッピングしてもシンプレックス ノイズ タイルがシームレスにならないのはなぜですか?

Shadertoy で繰り返される偽の 3D テクスチャを作成しようとしています (ここを参照してください。wasd を使用して移動し、矢印キーを使用して回転します)。

私は自分でノイズを生成し、この最小限の例でノイズ生成を分離しましたが、何をしてもシームレスにタイル化可能なノイズを生成するようには見えません。

コードは次のとおりです。

私が試したのは、現在使用されている位置 % ラップ値、空隙率によるラップ値の変更、ワープ後の % ラップ値です (オクターブの合計についてはsimplexNoiseV、コア アルゴリズムを参照してください)。accumulateSimplexNoiseV

これらの 回答によると、それは単純なはずです(ハッシュに使用されるmod位置)が、これは明らかに機能しません。私のハッシュ関数が Ken Perlin のものではないことが部分的に原因なのかどうかはわかりませんが、違いがあるようには見えません。座標のゆがみにより、この方法がまったく機能しないように思われますが、他の人はこれで成功したようです。

タイリングしない例を次に示します。ここに画像の説明を入力

座標をラッピングしてもシンプレックス ノイズ タイルがシームレスにならないのはなぜですか?

アップデート:

私はまだ問題を修正していませんが、ここに表示されているグリッドではなく、単純化に沿ってタイリングが適切に機能しているようです。

ここに画像の説明を入力

スキューを考慮してモジュラスを変更する必要がありますか?