テラス山の特徴


10

数日前にポートフォリオ/ブログサイトで見つけた手続き型地形効果を再現したいと思っています。

段々地形

このサイトを引用すると、「[最終的な高さ]に特定の高さの範囲内の減衰値を掛けて、美しい峡谷の特徴を作成する」ことによって、テラスが生成されました。

誰かがこれについてより技術的な例や手順を提供できると思いましたか?過去1週間にわたって、私は手続き型の地形/テクスチャの方法と実践について多くのことを研究および学習してきましたが、「クランプ」とは何かを詳細に説明するものにまだ出くわしておらず、イライラし始めています。


ええ、それは本当に素晴らしいです。彼の意味もわかりません。男にメールを送ってみましたか(「連絡先」から入手できます)?
Draco18sは2016

参考:あなたの引用と出典では、用語は「ダンピング」ですが、質問の後半では代わりに「クランプ」を使用します。
Pikalek 2016

回答:


11

私は彼らのプロジェクトが何をしているのかわかりませんが、あなたは高さに再形成機能を適用することができます。h0.0から1.0 を取り、0.0から1.0の新しい高さを返す例を次に示します。

function R(h) {
    var W = 0.4; // width of terracing bands
    var k = Math.floor(h / W);
    var f = (h - k*W) / W;
    var s = Math.min(2 * f, 1.0);
    return (k+s) * W;
}

プロットすると次のようになる関数です。x軸は元の高さ、y軸は新しい高さです。

高さ整形機能

私はそれを自分のコードに適用してこれを得ました:

テラシング機能の出力

あらゆる種類の変形関数を入れたり、それらを連鎖させたりして、きちんとした効果を得ることができます。出力のフラットセクションがある場合、テラスが表示されます。


質問者の質問にはテラスを上るスムーズな道があると私は確信していますが、もう一度見てみると、それは幻想であると確信しています。しかし、私の目はまだ違います、そこには高さの変化があります(画像の中央から左上隅まで)。上昇がない場合、この答えは正しいです。
Draco18sは2016

1

ダンピングとは、振動を低減、制限、または防止する効果を持つ振動システム内または振動システムへの影響を表す物理学用語です。

あなたのソース記事にはタイプミスがあるかもしれないし、クランプを意味しているのではないかと思います。

視覚効果を達成するために、地形が構築されているときにノイズのバンドをクランプすることで同様の何かを得ることができるかもしれませんが、@ amitpによって与えられた解決策は元の説明により厳密に一致し、おそらく実装と調整がより簡単です。

3番目のオプションは、侵食技術を使用することです。これは、傾斜した土地の一部を落として崖とビーチの組み合わせ作成するためのものです。ピークをプラトーに侵食する可能性のある別の方法を次に示します。


0

非常に長い休憩の後、効果がどのようにして達成されたかを理解しました。それは信じられないほど簡単です。この効果には4つの部分があります。

  • 地形の初期の高さマップ
  • テラスの「範囲」を定義します。テラスの最低の高さはh1で、テラスの最高の高さはh2です。
  • テラスの高さの範囲内で地面を平らにする減衰値
  • h1とh2の値を変更するための2番目のより長いハイトマップ。これは、テラス間の連続的なランプが形成される方法です(3番目のハイトマップを使用して、h1とh2を互いに独立して増減し、テラスを大きくまたは小さくすることができます)。

効果を作成する手順は次のとおりです。

h1 = 1
h2 = 2
damp = .01

h = gen_noise(position)
hm = heightmod_noise(position)
if h1+hm <= initial_terrain_height =< h2+hm
  th = h * damp
elseif h2+hm < h
  th = h - (h2-h1) * damp
else
  th = h

(もちろん、thは、地形効果が適用された後の地形の高さです)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.