Houdini 19.5 マテリアル

法線, バンプ, ディスプレイスメントマッピングでディテールを追加する

On this page

概要

法線, バンプ, ディスプレイスメントマップは、ディスプレイ/レンダリング時にディテールを追加することにより、低解像度モデルに高解像度ジオメトリの 外観 を作成する方法です。

この画像では、左の頭部は低解像度モデルで、中央の頭部は高ディテールの高解像度モデルです。右の頭部は、高解像度モデルから生成した法線マップを使用した低解像度モデルです。 視覚的には、ハイポリモデルとほとんど区別がつきません。

ディテールマップのタイプにより、品質と計算負荷のバランスが異なります。

法線マップ & バンプマップ

法線マップとバンプマップは、実際に追加のジオメトリを作成しなくても、レンダリング時に法線を変更することにより、追加のサーフェスディテールの 外観 を作成します。 この方法により速度が上がり、メモリの使用量が少なくなります。

  • バンプマップは、モノクロマップで高さの差分をグレーレベルとして保存します。

  • 法線マップは、カラーマップでベクトルをRGBとして保存します。

これは、法線マップは法線のみを変更し、オブジェクトの 輪郭には影響を与えない からです。 例えば、法線マッピングを球体に追加する場合、球体の表面領域を粗く、ゴツゴツした感じに見せることができますが、そのエッジは完全に滑らかな状態のままです。

ディスプレイスメントマッピング

ディスプレイスメントマップは、レンダリング時に実際の新しいジオメトリを追加します。 レンダラーは、既存のジオメトリを細分化して、テクスチャ値に従って動かします。

  • Displace Along Normalは、バンプマップと同様、高さの差分を保存します。

  • Vector Displacementは、RGBとしてオフセットベクトルを保存します。ベクトルは、接線空間, オブジェクト空間, またはワールド空間に置くことができます。

    Displace Along Normal とは対照的に、これを使用すると、サーフェスの部分を隣接部分の上にアーチ状に掛けることができます。

比較

バンプ

法線

ディスプレイスメント

メモリの使用

理想的にはグレースケールであるテクスチャにより使用されるメモリ。

必ずRGBであるテクスチャにより使用されるメモリ。

バンディング(帯状化)を回避するために、16/32ビットでは、使用メモリが大きくなります。多数の小さいポリゴンに対して、使用メモリが大きくなる可能性があります。

レンダリング速度

複数のテクスチャサンプルを必要とするため、少し遅くなります。

単一のテクスチャサンプルで、速くなります。

ポリゴンを追加するため、レイトレーシング/PBRでは遅くなります。

起動時間

テクスチャをロードするため、少し影響があります。

テクスチャをロードするため、少し影響があります。

レンダラーは、変位されたジオメトリを生成する必要があるため、レイトレーシング/PBRに大きな影響を与えます。

アートワークフロー

2Dアプリでの操作は簡単ですが、2Dで希望通りのペイントを行なうのは難しい場合があります。3Dアプリケーションで、高さのパスをレンダリングすることで、ベイクすることができます。

特別なテクスチャペイントツールが必要です。高解像度モデルからベイク、または法線パスから生成することができます。

バンプマップと同様。

レイトレーシングを使用せず(例えば、レイトレースされていないシャドウを使用して)、マイクロポリゴンのレンダリングを使用している場合、 ディスプレイスメントマッピングには、レンダリング時およびメモリの使用において、影響はあまりありません。

How to

To...Do this

ディテールマップの生成

Bake Texture ROPを使用して、レンダーのExtra Image Planeとしてマップをエクスポートします。

ディテールマップの使用

/nodes/shop/principledshader.htmlおよびMantra Surface Shaderには、いろいろなタイプのディテールマップを指定するパラメータがあり、シェーディングされるサーフェスに適用されます。

カスタムシェーダでディテールマップを使用

Displaceおよび/またはDisplacement TextureVOPを使用します。

Masterclass video

このマスタークラスのビデオは、ディテールマップを網羅しています。

法線マップの形式

いくつかの方法で法線をテクスチャに保存することができます。 残念ながら、明確に定義された基準はありませんが、Mantraシェーダには、それらの色々な形式を考慮するオプションがいくつかあります。

ベクトル空間

Tangent Space

サーフェスの 接線空間 を基準に法線を保存します。アニメーションするキャラクタのスキンのように、サーフェスが変形しても、法線はまっすぐに見えます。

World Space

ワールド空間を基準に法線を保存します。サーフェスが動いたり、変形したりする場合、その法線は、定位置に固定されたテクスチャをかき分けて進むように見えます。 一般的には、静的ジオメトリのみに使用してください。ワールド空間マップは、接線空間マップよりも鋭いエッジの維持が優れています。

Object Space

オブジェクトトランスフォームを基準に法線を保存します。オブジェクトは動くことがありますが、変形すると法線はまっすぐに見えなくなります。

[0,1] vs [-1,1]

法線ベクトルの値は、そのままでは[-1,1]の範囲になっています。

マイナスのテクスチャ値は、扱いが難しく、いくつかのテクスチャ形式での保存ができないため、アプリケーションは、通常では、テクスチャに保存する前に値を[0,1]の範囲に再マップします。

この形式で保存されたテクスチャでレンダリングする場合、Mantraシェーダの Normal Space パラメータはデフォルトの0 to 1のままにしておきます。

.rat.exrのような形式は、そのままの[-1,1]の範囲を使用して法線を保存することができるため、このように保存されたテクスチャを見かけることがあります。 この場合、 Normal Space-1 to 1に設定します。

反転した X & Y

パッケージからエクスポートされたテクスチャは、反転した Y コンポーネントと、ごく稀ですが、反転した X コンポーネントを持つことがあります。 テクスチャのインポートが反転した場合、Mantraシェーダの Flip XFlip Y を使用して、これを修正します。

カラー空間

ディテールマップは、 リニアカラー空間 で保存してください。 (TIFF, JPEG, PNGのような)ネイティブのsRGBである画像形式でマップを保存する場合、ガンマが画像に適用されないようにする必要があります。

  • Composite ROPを使用してディテールマップを書く場合、 Convert to Image Format’s Colorspace を無効にします。

  • Texture VOPにマップをロードする場合、カラー空間を Linear に設定して、ガンマ補正を回避します。

  • File COPを使用してマップをコンポジター内にロードする場合、 Linearize Non-Linear Images を無効にします。

ハイトマップ(高低マップ)から接線空間の法線マップを作成する

Houdiniのコンポジターに、高さ(またはディスプレイスメント)マップから法線マップを作成することができます。

  1. ハイトマップ(高低マップ)をFile COPにロードします。 Linearize Non-Linear Images を無効にします(ガンマ補正を回避するため)。

  2. Gradient COPを付加します。

    Gradient Type を“Displacement”に、 Output を“Normal Map”に設定します。

    Scale パラメータを使用して法線を調整します。マテリアルにより使用されるディスプレイスメントマップスケールの逆数は、有効なスケール: 1/(最大ディスプレイスメント)です。

  3. ROP File Outputノードを付加します。 Output Filename を設定して、 Convert to Image Format’s Colorspace を無効にして、ガンマ補正を回避します。

See also

マテリアル

マテリアルの使い方

テクスチャとUV

マテリアルの作成

導師レベル

他のレンダラー