このパーリンノイズの記事を理解するのに少し問題があるようです。各境界点の疑似乱数勾配の計算がどのように機能するかを理解するための助けが必要です。著者は関数を与えます:
g(xgrid, ygrid) = (gx, gy)
それから彼は画像を与えます:
記事の残りの部分は理解していますが、彼が各境界点からこれらのランダムなグラデーションをどのように生成するのかわかりません。支援をいただければ幸いです。ありがとう!
しかし、彼が各境界点からこれらのランダムなグラデーションをどのように生成するかはわかりません。
記事から、常に同じシードを持つ疑似乱数ジェネレーターを使用し、常に同じグリッドで計算するため、
g はランダムに見えますが、計算されるたびに、同じグリッド ポイントに対して常に同じ勾配を返すという重要な考慮事項があります。また、すべての方向が選択される可能性が等しいことも重要です。
だからおそらくそれは次のようなことをします
srand(CONSTANT_VALUE);
for (y = 0; y < GridHeight; y++)
{
for (x = 0; x < GridWidth; x++)
{
r1 = rand();
r2 = rand();
gradient[y][x] = some_function(r1, r2);
}
}
各点で勾配が疑似乱数であるように、同じ x と y に対して常に同じであり、均等に分散されます。次に、マトリックスにアクセスしgradient
て残りの計算を実行します。