| On this page |
がっちりはまるテクスチャマップを見つけるのは容易ではないので、広大な地形にテクスチャを追加するのは困難な場合があります。 たいていの場合、継ぎ目や繰り返しパターンを避けるために、異なるマップを組み合わせたり、六角形タイルやTriplanarマッピングといった技術を適用することになります。
しかし、UV座標すら必要としない完全にプロシージャルな別の方法があります。 それが“カラー”です。 この方法の利点は、地形の外観を変更したい場合、マップを気にする必要がないことです。 代わりに、カラーの定義やマスクレイヤを変更します。 この方法は遠くの山々だけでなく、小さな地形にも効果的です。 後者の場合、地面に異なる色を追加して土壌のような特定の外観を与えることができます。 その後、地面に植物や瓦礫を散布します。
カラー ¶
Height Fieldレイヤシステムでは、様々なマスクを組み合わせて極めて細かいディテールまで彫り込むことができます。
様々なノードからレイヤを加算、減算、乗算したり、勾配や曲率からマスクを生成したり、各特徴部を個別に色付けすることができます。
このような処理は、テクスチャ座標がなくても機能します。
また、地形をレンダリングするために、地形を変換して、カラーをCdアトリビュートとして直接メッシュにベイクすることができます。
そして、Houdiniはテクスチャ座標を格納するためのuvアトリビュートも追加します。
お好みのベース地形を作成してください。
上記の画像の山脈は、HeightField Noise SOPを使用し、そこで Worley Cellulars F1 ノイズと何かしらの歪曲を適用しています。
勾配 ¶
カスタムのslopeレイヤから始めて、そのレイヤとノイズマスクを組み合わせて、規則的な外観を崩します。
後でslopeレイヤを作成するために、HeightField Mask by Feature SOPを配置して、現在のネットワークの最終ノードとして設定します。
Mask by Slope オプションはデフォルトで有効になっており、デフォルト値でも十分な結果が得られるため、変更は不要です。
HeightField Mask Noise SOPは、不規則なパターンを生成します。
ここで問題となるのは、上流ノードの出力をこのHeightField Mask Noise SOPのどこに接続するべきかということです。
フィーチャ(特徴)マスクは、そのHeightField Mask Noise SOPの 1番目 または 2番目 のどちらの入力に接続するべきでしょうか?
この選択は、結果をまったく異なるものにするため重要です。
フィーチャマスクを
-
1番目 の入力に接続すると、そのHeightField Mask Noise SOPの Combine Method パラメータを活用することができます。
-
2番目 の入力に接続すると、ノイズマスクがそのフィーチャマスクの領域内にのみ生成されます。
ここでは、2つのマスクを地形全体に広がらせたいので、 1番目 の入力を使用する必要があります。 上流ノードの出力をその1番目の入力に接続したら、 Element Size パラメータを下げて、 Combine Method パラメータを Difference に設定します。 このモードではマスクが差し引かれ、広い領域が生成される一方、強度の異なるスポットも生成されます。
左の画像は元のマスク、右の画像は組み合わせた結果を示しています。
現在のマスクが下流の新しいレイヤによって上書きされないようにするために、そのマスクをコピーして、新しい名前を適用して別レイヤとして保存します。
-
Heightfield Copy Layer SOPを追加して、その入力を上流ノードの最終ノードの出力に接続します。
-
Destination フィールドに
slopeと入力します。
そのHeightfield Copy Layer SOPのRadialメニューから Node info ボタンをクリックすると、その新しく作成されたslopeレイヤを確認することができます。
この生成/コピーの原則に従うことで、より多くのレイヤを生成/分離して、異なる構造を確認することができます。 例えば、山脈の尾根や遮蔽された領域をマスクしたり、VEXスクリプトでカスタムマスクを生成することもできます。 その応用範囲はほぼ無限です。
侵食レイヤ ¶
侵食は、地形に必ずと言っていいほど追加すべき要素です。
侵食処理は、様々な地形特徴部を生み出し、リアルな外観を生成します。
HeightField Erode SOPを接続すると、即座に4枚のレイヤ(
debris、sediment、flow、flowdirection)が生成されます。
これらのレイヤは、そのHeightField Erode SOPの Layer Bindings タブで確認することができます。
これらのレイヤは、そのノード自体によって直接生成され、適切な名前が付けられます。 そのため、上書きを防ぐ必要はありません。 ただし、別のHeightField Erode SOPを追加して、元のレイヤを保持したい場合は、それらのレイヤをコピーする必要があります。
可視化 ¶
HeightField Visualize SOPを使用すると、レイヤにカラーを適用して、地形の異なる特徴部を可視化することができます。
カラーパレットは、岩石の種類を定義します。
赤みがかったベージュ色は砂岩、灰色がかった青色は花崗岩、茶色は鉄分を含む岩石によく見られます。
もちろん、複数のHeightField Visualize SOPを追加して異なる色のバリエーションを作成することもできます。
色は地形に特定の印象を与え、砂漠、草原、池や小川のある平坦な岩場などを作成することができます。
デフォルトでは、HeightField Visualize SOPは Height Ramp のカラーグラデーションを適用して、標高値を可視化します。 Min Elevation と Max Elevation を使用することで、そのカラーグラデーションを地形にマッピングさせることができます。 標高値の調整を始める前に、 Compute Range ボタンをクリックして最大値と最小値を確認することを推奨します。
このHeightField Visualize SOPにはレイヤ用の9つのスロットが用意されています。
各Layerパラメータの横にある関連ドロップダウンメニューからレイヤを選択したり、名前を直接入力することもできます。
次に、各レイヤの色を定義します。
Layer # パラメータでは、いずれかのスロットにheightと入力すると Height Ramp グラデーションを上書きすることもできます。グラデーションの代わりに単色が適用されます。
変換 ¶
地形をSolarisに取り込んでKarmaでレンダリングできるようにするには、地形を変換してカラーをベイクする必要があります。 SolarisのSOPインポート系ノードは、Height Fieldをその場で変換することができますが、カラーが付いてこないです。
-
Convert HeightField SOPを追加して、その入力をそのHeightField Visualize SOPの出力に接続します。
-
Bake Point Colors トグルを有効にして、Karmaでレンダリングできるように各ポイントに
Cdアトリビュートを追加します。Solaris/USDでは、このCdアトリビュートの名前はdisplayColorに変更されます。
簡素化するために、Solarisインポートを単一ノードで行ないます。 サンプルのネットワークには、Solarisで特別な処理を必要とするノードは含まれていません。
ネットワークエディタの stage レベルで、⇥ Tabを押してタブメニューを開いて、 Scene Import (All) を選択します。
このツールは、Scene Import LOPの事前設定済みバージョンです。
このインポータは、SOPレベルで検出された内容をビューポートに表示しますが、SOPノードの青い Display/Render フラグを考慮します。
特定のSOPノードのみをインポートしたい場合は、
SOP Import LOPを使用すると良いでしょう。
Copernicus ¶
HoudiniのCopernicus画像処理フレームワークは、Height Fieldのテクスチャリングに役立つ多くの機能が備わっています。 以下に、役立つリソースをいくつかご紹介します。