Houdini 20.0 ノード シェーダノード

Mantra: Fur Procedural shader node

レンダリング時にサーフェス上にヘアーのような曲線を作成します。

On this page

Mantra Fur Procedualは、サーフェスポリゴンやポイントクラウドから生えるヘアーを表現した曲線を作成します。 CVEXシェーダを適用すれば、生成される曲線のアトリビュートや形状を操作することができます。

サーフェスポリゴンを指定した時に生成される曲線の数は、スキンポリゴンの面積と密度の乗算で決まります。 スキンポリゴンの面積は、オプションのareaアトリビュートから取得、またはオプションのrestアトリビュートもしくはポイントポジションで記述された頂点位置から計算されます。

オプションの2番目の入力には、ガイドカーブを指定します。 ガイドカーブの形状を補間することで、生成される曲線の形状(CVEXシェーダを適用する前)が決まり、Mantra Fur Proceduralの LengthVertices は無視されます。 位置ベースの補間を使用するには、ガイドカーブジオメトリ上のguideoriginFloat3 Primitiveアトリビュートを指定します。 guideoriginアトリビュートが存在する時、 Guide Radius は、各ガイドカーブから影響を受ける領域の大きさを意味します。

オプションの3番目の入力には、クランプ(束)カーブを指定します。 クランプ(束)カーブ上のclumporiginおよびclumpradiusアトリビュートは、生成される各曲線をクランプ(束)にマッピングするために使われます。

オプションの4番目の入力は、パーティングライン(分け目)用の曲線を指定します。

アトリビュート

Mantra Fur Proceduralは、入力ジオメトリから以下のアトリビュートを使います。

名前 ソース クラス タイプ 説明
area Skin Primitive Float このアトリビュートは、スキンジオメトリ内の各ポリゴンの面積を記述します。これはプリミティブから生成されるカーブの数に影響します。このアトリビュートは任意であり、見つからなければ、各プリミティブの面積が計算されます。
clumporigin Clumps Primitive Float3 Restスキン上の各クランプ(束)の原点の位置を記述します。
clumpradius Clumps Primitive Float クランプ(束)原点からヘアーがクランプのメンバーとなる最大距離。
furdensity Skin Any Float このアトリビュートは Density パラメータのスカラー乗数として使われ、生成されるカーブの数に影響します。この値をCVEXスキンシェーダで小さくすると、密度が下がるので、いくつかのカーブが削除されます。このアトリビュートは任意であり、見つからなければ、1の値が使われます。
guideorigin Guides Primitive Float3 Restスキン上の各ガイドカーブの位置を記述します。
guideradius Guides Primitive Float ガイドカーブの原点からヘアーが影響を受ける最大距離。
N Skin Point Float3 ガイドカーブを使用しなかった場合、このアトリビュートは、生成されるカーブの方向を記述します。
rest Skin Point or Vertex Float3 このアトリビュートは、スキンジオメトリ内の各ポイントのRestポジションを記述します。これは、生成されるカーブの数を決定する時の各ポリゴンの面積の計算に影響します。この値は、生成される各カーブをクランプ(束)にマッピングする時にも使われます。このアトリビュートは任意であり、見つからなければ、ポイントポジションが使われます。

Mantra Fur Proceduralは、CVEXシェーダで利用可能な以下の特別なアトリビュートを作成します。

名前 クラス タイプ 説明
clumpP Vertex Float3 指定したクランプ(束)ヘアーの各頂点の位置を記述します。このアトリビュートは、Guide Shaderでのみ利用可能です。
clumproot Primitive Float3 クランプ(束)ヘアーが生えるスキン上の位置を記述します。
hairid Primitive Integer 生成される各カーブの固有IDを含んでいます。これは読み取り専用アトリビュートです。
hairroot Primitive Float3 ヘアーが生えるスキン上の位置を記述します。
hairdist Vertex Float 各頂点のカーブ沿いの距離を[0, 1]のパラメータ範囲で記述します。このアトリビュートは、Guide Shaderでのみ利用可能です。
P Point (ポイントポジション) 生成されるヘアーの各頂点の位置を記述します。このアトリビュートは、Guide Shaderでのみ利用可能です。
restxdir Primitive Float3 restアトリビュートのX軸方向をワールド空間方向として記述します。Fur SOPは、サーフェスポリゴンをスキンに使用している場合にのみ、この値を用意します。
restydir Primitive Float3 restアトリビュートのY軸方向をワールド空間方向として記述します。Fur SOPは、サーフェスポリゴンをスキンに使用している場合にのみ、この値を用意します。
restzdir Primitive Float3 restアトリビュートのZ軸方向をワールド空間方向として記述します。Fur SOPは、サーフェスポリゴンをスキンに使用している場合にのみ、この値を用意します。

Mantra Fur Proceduralを使えば、任意のアトリビュートを補間(そしてCVEXシェーダによる制御)することができます。 以下のアトリビュートは、Mantraに関連するアトリビュートです。

名前 タイプ 説明
orient Float3 カーブの表現に使用するリボンの向きを決めるためのヒントとなる方向。
width Float レンダリングするカーブの幅。

パラメータ

Main

Skin

スキンジオメトリを含んでいるオブジェクトへのパス。

Guides

ガイドヘアーを含んでいるオブジェクトへのパス。

Clumps

クランプ(束)センタージオメトリを含んでいるオブジェクトへのパス。

Expand Bounds

シェーダによって元の境界の外側に動かされたファーを補正するために、境界ボックスの境界を調整することができます。

Fur

Group

ヘアーが生えるスキンジオメトリ内のプリミティブ。

Primitive Type

作成するジオメトリタイプ。

Polygon

ポリラインを作成します。

NURBS

NURBSカーブを作成します。

Segments

生成される各カーブのセグメント数(“Guides”入力でジオメトリを指定すると、無視されます)。

Length

生成されるカーブの長さを指定します。

Seed

乱数生成のシード値。

Density

生成されるカーブの数は、スキンポリゴンの面積と密度の乗算で決まります。 この値は、オプションのfurdensityアトリビュートのスカラー乗数として動作し、カーブの密度を決めます。

Display Ratio

表示するカーブの割合を指定します。

Guide Radius

ガイドカーブの原点からヘアーが影響を受ける最大距離。

Clump Radius

クランプ(束)原点からヘアーがクランプのメンバーとなる最大距離。

Use Closest Clump

各ヘアーを一番近いクランプ(束)と関連付けます。

Remove Unclumped Hairs

Clump(束)と関連付いていないヘアーすべてを削除します。

Remove Unguided Hairs

ガイドヘアーから影響を受けていないヘアーすべてを削除します。

Parting Radius

分け目からヘアーが影響を受ける最大距離。

Attributes

Skin

Skin Shader

Skin Shader パラメータには、スキンジオメトリから補間されるアトリビュートを制御するCVEX SHOPを指定します。 各アトリビュートは、生成されるカーブ毎に1つの値を持ちます。 各カーブ固有の値を取得するには、hairidの値を読み込みます。 furdensity変数の場合、値を小さくすると、ヘアーが少なくなりますが、値を大きくしても何の効果もありません。

New Class

転送されるアトリビュートのクラス。

Skin Attributes

生成されるカーブに転送されるスキンジオメトリのアトリビュートのリストを指定します。 転送されるアトリビュートの値は、CVEXシェーダによる修正を含みます。

Set Hair ID

生成される各カーブの固有値を含んだhairidアトリビュートを作成します。

Guide

Guide Shader

Guide Shader パラメータには、ガイドとクランプ(束)のジオメトリから補間されるアトリビュートを制御するCVEX SHOPを指定します。 各アトリビュートには、生成されるカーブの頂点毎の値を持ちます。 特別なP変数は、頂点位置の操作に使用します。

New Class

転送されるアトリビュートのクラス。

Guide Attributes

生成されるカーブに転送されるガイドとクランプ(束)のカーブのアトリビュートのリストを指定します。 転送されるアトリビュートの値は、CVEXシェーダによる修正を含みます。

IFD Bounds

Bounding Box

境界ボックスコントロールでは、参照ジオメトリ用の境界ボックスを指定することができます。 この境界ボックスが“on screen”の場合のみ、Mantraは参照ジオメトリを読み込みます。 Bounding BoxNo bounding box required に設定することができ、その場合Mantraは常に気にすることなく参照ジオメトリを読み込みます。 また、 SOP Bounds パラメータのSOPの境界ボックスを参照することで、境界ボックスを指定することもできます。

SOP Bounds

参照したい境界ボックスのジオメトリ。

Min Bounds

Explicit Boundsに設定した時の最小境界ボックスの寸法。

Max Bounds

Explicit Boundsに設定した時の最大境界ボックスの寸法。

シェーダノード