Houdiniでジオメトリ情報をベイクするには、OutputネットワークにBakeTextureを作成することで実行することができます。
下記を参照し、解像度とローポリ、ハイポリを指定します。
今回は地形ツールで作成してクロップしたモデルを使います。
デフォルトでこのようなマップをベイクすることができます。
今回はTangent Space NormalとOcclusionをベイクしてみましょう。
関連するBakeオプションを確認します。
Disable Lighting/Emission
ベイク処理を高速化するために、プライマリイメージプレーン上のすべてのライティングを無効
Add Baking Exports to Shader Layers
レイヤーコンポジット操作によってブレンドされた最終的な結果を出力
Baking samples
レイトレーシングシェーディングに使用するサンプル数(オクルージョン、キャビティ、厚みなど)。 サンプル数を増やすと、シェーディングノイズが減少
Use MikkT Tangent Space
単位はフラグメントごとに計算(Unreal Engine互換)。 他のアプリケーションが四角形間の接線を別々に補間する可能性があるため、Divide SOPを使用して、UVオブジェクトをベイク前に三角形メッシュに変換
Tangent Normal Flip X
法線のX軸の反転を切り替え
Tangent Normal Flip Y
法線のY軸の反転を切り替え
Occlusion Bias
オクルージョンシェーディングに対するコントラストコントロール。0.5より高いか低いかでコントラストの強弱をコントロール
Cavity Distance
シェーディングに及ぼす距離を制御
Cavity Bias
キャビティオクルージョンシェーディングに対するコントラスト制御。0.5よりも高い値およびより低い値により、コントラストはますます低くなる。
Unwrappingタブを開きます。
Unwrap Method
「UVオブジェクト」からアンラップする方法を選択します。
Trace Closest Surfaceに設定するとレイトレーシングを使用して、UVオブジェクトに最も近いサーフェスを取得。
Ray Bias
法線ベクトルに沿ってオブジェクトのサーフェスからレイの位置をどれだけオフセットするかを決定します。 バイアスはカメラレイにのみ使用
Ray Max Distance
Unwrap MethodがTrace Closest Surfaceに設定されている場合、このパラメータは近くのサーフェスまでの最大距離を制御。 低解像度オブジェクトにベイクされるシーンの領域を制限するのに便利。
Additional Pixels at Border
UV境界のエッジから外側に引き延ばすピクセル数
設定が終了したら、テストレンダーであれば「Render to MPlay」をクリックぶれば、MPlayでレンダリング結果を見ることができます。
ハードディスクにマップをベイクする場合は「Render to Disk」をクリックしてください。
Output Pictureが単一の名前で設定されていても、ImagesのOutputタブで設定した名前が、テクスチャ名の後ろに追加されます。
このような形でマップをベイクすることができました!
例えばベイクしたマップが黒い斑点がみえる虫食い状態になってしまった場合、ローポリモデルがハイポリモデルを探しに行く距離が足りない可能性があります。その場合、Unwrapping>Ray Max Distanceを増やしてみてください。
ベイクしたマップをローポリに適用してみました。
Substanceのプロシージャルな岩テクスチャをTriplanarで追加しました。
ベイクしたノーマルマップとプロシージャルノーマルをブレンドしています。