Houdini 21.0 Height Fieldと地形

テクスチャレイヤ

レイヤとマスクを用いてテクスチャを重ね合わせます。

On this page

レイヤは、雪、水、特定の種類の岩石など、特定の特徴を可視化する非常に優れた方法です。 レイヤは、基本的には再利用するために個別に複製/保存されたマスクです。 また、レイヤを使用することで規則的なパターンや繰り返しを崩すことができます。 HoudiniのHeight Fieldは、瓦礫、流れ、堆積物、水、岩盤など、幅広い種類のレイヤを書き出します。 さらに、ほぼ無限でカスタムのレイヤやマスクを作成することもできます。

テクスチャの基本のページでは、カラーや様々なレイヤを通じて地形構造を可視化する方法を学びました。 この章では、それらの様々なレイヤをテクスチャリング向けにSolarisやKarmaに読み込む方法について説明しています。

Note

より見やすく説明を簡素化するために、以下のガイドでは実際のテクスチャではなくカラーを使用しています。

SOPセットアップ

どの地形もお使いいただけますが、少なくとも2枚のレイヤが含まれている必要があります。 レイヤの役立つソースとして、HeightField Erode SOPが挙げられます。 こちらでは、debrissedimentflowのレイヤを取得することができますが、カスタムマスクを作成することもできます。

HoudiniのHeight Fieldはボリュームフィールドですが、Solarisフレームワークではポリゴンを想定しています。 そのため、地形を変換する必要があります。 その一つの方法は、Convert HeightField SOPを使用することです。 別の方法では、 stage 上でSOP Import LOPを実行する必要があります(“LOPセットアップ”を参照)。

LOPセットアップ

前述のSOP Import LOPを使用して、Height FieldをSolarisにインポートする必要があります。 SOP Path パラメータの横にある Open floating operator chooser ボタンをクリックします。 表示されるパネルのツリー表現から、Height FieldのSOPネットワークの最終ノード(通常はNull SOP)を選択して Accept をクリックします。

インポート前に地形を変換したくないのであれば、SOP Import LOPの Primitive Definition セクションを開いてください。 そこで、 Enable Import HeightFields as Mesh オプションを有効にして、 Import HeightFields as Mesh オプションを無効のままにします。 今回は地形を変換したいので、 Import HeightFields as Mesh オプションを有効にします。 また、マテリアルも必要です。 シェーダを作成して適用するには、以下の手順に従ってください。

  1. Material Library LOPを配置して、その入力をそのSOP Import LOPの出力に接続します。

  2. そのMaterial Library LOPをダブルクリックして中に入ります。⇥ Tabを押してタブメニューを開いて、 Karma Material Builder を選択します。このツールはサブネットワークを追加します。そのサブネットワーク内に基本的なシェーダセットアップを見つけることができます。

そのシェーダセットアップの中核となっているノードはMtlX Standard Surface VOPです。 このシェーダノードには、マテリアルの外観を最終的に決定する幅広いカテゴリが備わっています。 カテゴリを展開すると、関連するパラメータが表示されます。 以下の例では、 Base パラメータグループを展開します。 以下の説明で関係するパラメータ入力はbase_colorです。

シェーダを地形に適用するために、stage レベルに戻ります。

  1. Material Library LOP上で、 Auto-fill Materials ボタンをクリックします。 これによって、先ほど追加したマテリアルが Material VOP パラメータおよび Material Path パラメータに設定されます。

  2. Assign to Geometry オプションを有効にします。

  3. Geometry Path パラメータには、Height FieldのSolarisパスを入力します。 デフォルトでは/sopimport1/heightですが、カスタムのパスと名前を適用している場合は、そちらを使用する必要があります。

  4. 再度、マテリアルのサブネットワーク内に入ります。

シェーダのセットアップ

地形の岩盤を表現したベースカラーから始めましょう。 MtlX Mix VOPを追加して、そのoutピンをそのMtlX Standard Surface VOPのbase_colorチャンネルに接続します。 そのMtlX Mix VOPの Signature ドロップダウンメニューから Color を選択します。 これで、 Fg (前景)、 Bg (背景)、 Mix (マスク)という名前の3つとも0の値が設定されたパラメータが表示されます。

  1. Bg カラーフィールドをクリックして、オレンジ色を選択します。

  2. Fg カラーフィールドをクリックして、赤色を選択します。

Height Fieldは背景色であるにもかかわらずオレンジ色に変わりました。 その原因は、 Mix パラメータです。 Mix パラメータの値が0は、背景色が100%の強度で表示されることを意味します。 Mix パラメータの値を1に設定すると、地形は赤色に変わります。 中間値(=グレーの濃淡)は混合色を生成します。 地形のレイヤを混合マップとして使用することで、色のブレンド方法を制御することができます。

  1. レイヤの値を取得するために、MtlX Geometry Property Value VOPを配置します。

  2. Geomprop フィールドにflowと入力します。Height Fieldレイヤは常にfloat型なので、 Signature パラメータを変更する必要はありません。

  3. そのMtlX Geometry Property Value VOPのout出力を、そのMtlX Mix VOPのmix入力に接続します。

最終結果を確認するには、ビューポートをレンダリングする必要があります。 ビューポートの右上コーナーに2つのドロップダウンメニューがあります。 1つ目のメニューを開いて、高速プレビュー用に Karma XPU を選択します。 すると、下図のような地形が表示されるはずです。

さらにレイヤを追加する

より複雑な地形ネットワークでは、例えばHeightField Mask by Feature SOPから多様なレイヤを書き出すことが多いです。 次の例では、既存のflowレイヤとocclusionレイヤを組み合わせて、地形の稜線を強調する方法を説明します。

  1. シェーダネットワーク内に、さらにMtlX Mix VOPを追加します。1つ目のMtlX Mix VOPの結果は、オクルージョンミックスの背景として利用したいです。1つ目のMtlX Mix VOPのoutピンを、2つ目のMtlX Mix VOPのbg入力に接続します。

  2. さらにMtlX Geometry Property Value VOPを追加して、そのoutピンを2つ目のMtlX Mix VOPのmix入力に接続します。

  3. その2つ目のMtlX Geometry Property Value VOPの Geomprop フィールドにocclusionと入力します。

  4. 2つ目のMtlX Mix VOPのoutピンを、そのMtlX Standard Surface VOPのbase_colorチャンネルに接続します。

下図は、2枚のレイヤを用いた地形の外観を示しています(ライトにはEnvironment Light LOPを使用しています)。

この手法では、複数のマップを直列接続して重ね合わせています。 各MtlX Mix VOPは、前工程のミックス結果に新たなマップまたはカラーを加算しています。 スペキュラやラフネスなどの特性マップを追加する場合でも同様にレイヤミックスで組み合わせる必要があります。

マップ

上記の説明ではカラーを使用していますが、たいていの場合はテクスチャを扱うことになります。 Houdiniのジオメトリに変換されたHeight FieldにはUVが追加されていますが、急峻な領域では引き伸ばしや歪曲が生じる場合があります。 大規模な地形では、継ぎ目や繰り返しパターンが目立つ問題がよく起こります。

そのため、Triplanarマッピングを使用する方が良い場合があります。 MaterialXシステムにはMtlX Triplanar Projection VOPが用意されています。 また、当社独自のKarma Hexagonal Tiling Triplanar VOPを使用することも推奨します。 このノードは六角形のパターンを生成して、領域上にマップを“散布”します。 パッチにはランダムなスケールと回転を適用できるため、継ぎ目や繰り返しパターンの発生を回避することができます。

Triplanarノードにはテクスチャマップが必要になります。 そのoutピンをMtlX Mix VOPのfgおよびbg入力に接続することで、カラーを置き換えることができます。

Height Fieldと地形

生成

  • 地形の生成

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

  • マップからHeight Fieldを生成

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

  • 単独の山

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

  • レイヤ

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

  • 段丘化(Terracing)

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

  • 歪曲(Distortion)

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

  • 地形のペイント

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

  • 投影

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

  • パッチ(継ぎ合せ)

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

  • パターン

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

  • リサンプリング

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

  • 様々な特徴部

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

散布

マスク

  • マスキング

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

  • ライトマスク

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

自然現象

VEX

テクスチャ

Shallow Water Solver(浅水ソルバ)