Houdini 21.0 Height Fieldと地形

地形の生成

HoudiniのHeight Fieldを用いた基本的なワークフロー。

On this page

このガイドのサンプルを見ると、すべてのワークフローの手順が高解像度のHeight Fieldに適用されていることに気づくことでしょう。 実際のところ、これは、結果を即座に確認して、特定のノードが地形にどのように影響しているのかを確認するためにすぎません。 しかし、たいていの場合、低解像度のHeight Fieldから作業を開始することになります。 その後、ディテールを加えて、地形をアップサンプリングします。 さらにディテールを作成して再度アップサンプリングを行なう手順を、最終的なディテールレベルに到達するまで繰り返します。

とはいえ、解像度を上げるために地形を再サンプリングするか、または、最初から高解像度のHeight Fieldで作業するかは、完全にあなたの判断次第です。 いずれの場合でも、各手順でディテール処理を再適用することが重要です。 これは、地形を何度も侵食処理させて、その中間結果を歪曲処理で洗練させることができることを意味します。

典型的なワークフローでは、地形を形成するための特定の“役割”を担う複数の手順を踏みます。

Massing(マッシング:量塊化)

Massing(量塊化、要するにボリューム感を出すこと) は、3次元の広大な構造の地形を遮断するために必要です。 山の地形で例えると、山の占有面積をどれほどにするのか、山が取り囲んでいる空間の形状をどうするのか、山の高低をどうするのかを決めます。

Height Fieldに当てはめてみると、これは、最終地形の全体の特徴の基礎となる低解像度フィールドを作成することを意味します。 この段階では、表面は滑らかでも凸凹でもどちらでも構いません。 後で表面にノイズを追加していきます。 基本的な形状は、以下の方法で形成することができます:

Seeding(シーディング:亜種化)

Seeding(亜種化、要するにバリエーションを加えること) とは、滑らかな表面に少しの擾乱を追加して、より自然な感じを出すための処理のことです。 表面が滑らかでないほど、後工程での侵食がより現実的な見た目になります。

単にフィールドだけ全体的にノイズを加えたり、大規模なジオメトリだけ投影しても、目的の侵食を表現するのに十分な“障害物”(流水や土壌が回避して流れるべき特徴部)を作成できないことはよくあります。 Seeding(シーディング)は、そのような障害物を追加する処理です。 以下の方法で、地形にディテールを加えることができます:

また、複数のノイズレイヤを組み合わせることで、リアルで特徴豊かな景観を表現することができます。

Tip

役立つテクニックは、(Mountain SOPなどを使って)ランダムにゴツゴツした広大な岩の形状の3Dモデルを作成してから、 Height Field上に(減衰のある)マスクをペイントし、そのマスクした領域にその岩ジオメトリを投影することです。 次に、そのHeight Field上にHeightField Distort by Layer SOPまたはHeightField Distort by Noiseを追加します。

Lobing(ロービング:区画化)

たいていの場合、山岳地帯は、もっと小さく区分けすることができ、それぞれの区画のことを ローブ と呼びます。 Lobing(ロービング) とは、低解像度のHeight Fieldを受け取り、Heightfield Erode SOPを使って、山を小さく区画に分ける処理のことです。

HieghtField Erode SOPは、Houdini21でゼロから設計し直され、より少ないパラメータで直感的な操作が可能となり、より高品質で現実的な結果を生成できるようになりました。

Remapping(再マッピング)

Remapping(再マッピング) は、何回もMassing/Seeding/Lobingの工程を繰り返すことで色々なレベル(例えば、山麓、低山、高山)を生成するために必要です。

このテクニックは、“Elevation Passes(標高パス)”内に地形を構築することです。 上流のHeightfield Erode SOPの後にHeightfield Remap SOPを追加し、その標高を再マップして、フィールドを垂直に圧迫します。 次に、その圧迫した内容の上にさらにMassing/Seeding/Lobingの工程を繰り返します。

Upsampling(アップサンプリング:高解像度化)

Lobing を終えたら、侵食のディテールが細かくなるように解像度を上げたいので、そのHeight Fieldを Upsampling(アップサンプリング) する必要があります。

フィールドの解像度を倍にするには、Heightfield Resample SOPを使用します。 おそらく、最初の段階でフィールドの解像度を高くしたくないでしょうから、この処理を繰り返すことになります。

Shaping(シェイピング:形状定義)

Shaping(シェイピング) は、Heightfield Terrace SOPHeightfield Clip SOPを使って、地質学的な特徴部を追加するために必要です。

マスクを使えば、山頂を削ったり、特定の領域に段丘を追加して、より面白い侵食のバリエーションを生成することができます。

Re-seeding(再シーディング)

Re-seeding(再シーディング) とは、高解像度で前述の Seeding 処理を繰り返すことです。 侵食の方向を変更させるためにもっと障害物を追加したい時に行ないます。

Erosion(侵食)

後は、目的のルックが得られるまでHeightfield Erode SOPの機能をフル活用します。 実のところ、これが“正しい”設定でこれが“悪い”設定というのはありません。 重要な事は、その結果が面白くて自然に見えることです。 おそらく、この手順を数回繰り返すことになるでしょう。 また、複数のHeightfield Erode SOPを組み合わせて、異なるサイズの構造を作成することもできます。

Final(仕上げ)

目的の地形が表現できたら、後は、地形をシェーディングしたり、岩や木の配置を調整します。 Heightfield Quickshade SOPを使えば、簡単に地形に単純なマテリアルをセットアップすることができます。 Heightfield Scatter SOPは、インスタンス用のポイントを地形上に散乱配置することができます。 このHeightfield Scatter SOPは以下のことができます:

  • マスクを使って散乱配置を制御することができます。

  • 別々のスケールによって重複を回避する階層的な散乱配置を行なうことができます。

  • ポイントにバリエーション用アトリビュートを追加することができるので、例えば、異なる木のタイプや岩形状でポイントをインスタンス化することができます。

Height Fieldと地形

生成

  • 地形の生成

    HoudiniのHeight Fieldを用いた基本的なワークフロー。

  • マップからHeight Fieldを生成

    マップからディテールの細かい地形を生成することができます。

  • 単独の山

    必要な場所にカスタムの丘や山を生成します。

  • レイヤ

    レイヤを積み重ねてマスクを適用することで、よりリアルな表現を高めます。

  • 段丘化(Terracing)

    頂上に近いほど段状の地形を生成します。

  • 歪曲(Distortion)

    地形を形作って自然な見た目にします。

  • 地形のペイント

    アーティストの気分で、ご自身で景観をペイントしましょう。

  • 投影

    任意のジオメトリをHeight Fieldの一部に変換します。

  • パッチ(継ぎ合せ)

    パッチ(継ぎ合せ)とカットアウト(切り抜き)を用いて地形を組み立てます。

  • パターン

    基本的なジオメトリパターンからリアルな地形を生成します。

  • リサンプリング

    地形の解像度を段階的に上げます。

  • 様々な特徴部

    地形を変換、エクスポート、特徴豊かにします。

散布

マスク

  • マスキング

    修正したい領域やディテールを加えたい領域を定義します。

  • ライトマスク

    地形上の日照領域からマスクを作成します。

自然現象

VEX

テクスチャ

Shallow Water Solver(浅水ソルバ)