Houdini 19.5 ジオメトリ

ジオメトリのアトリビュート

Houdiniがディテール、プリミティブ、ポイント、頂点、アトリビュートを使ってどのようにジオメトリを表現するのか説明します。

On this page

Attributes

アトリビュート とは、頂点、ポイント、プリミティブ、オブジェクト上に記録される名前を付けた値のことです。例えば、ポイントカラー、位置、UV座標、スプラインの重み(W)、法線がPointアトリビュートに記録されます。

  • Houdiniがエクスプレッションで利用可能なPointアトリビュートを設定します。例えば、ポイントのY座標(PY)に基づいてカラーを設定することが可能です。

  • 手動で設定する特定のアトリビュートで、もしそれが存在すれば、Houdiniで使われます。例えば、ダイナミクスソルバとレンダリングエンジンは、ジオメトリ上に特定のアトリビュートが存在していれば、それを使います。

  • ユーザ独自のアトリビュートを設定してノードのエクスプレッション、スクリプト、エクスポーターなどで利用することができます。

サーフェスノードにアトリビュートを作成するノードを追加して、異なるタイプのアトリビュートを設定します。また、Attribute SOPでは任意アトリビュートを設定・作成することもできます。

ノードのジオメトリに適用されているアトリビュートを確認するには、ネットワークエディタのノードのタイル上でクリックして、 Spreadsheet を選択してGeometry Spreadsheetを開きます。

パーティクルにもアトリビュートがあります。ジオメトリとパーティクルシステムが相互作用するときには、このアトリビュートは、とても重要になってきます。例えば、ジオメトリから放出されるパーティクルは、デフォルトではそのジオメトリのPointアトリビュートを引き継ぎます。Attribute Transfer POPによってサーフェスとパーティクル間でアトリビュートを転送することで面白い効果を作ることができます。

ジオメトリコンポーネント

一般的には、Attribute Createサーフェスノードを使って、VertexPointPrimitive(例:ポリゴンフェース)、Detail(ジオメトリ全体)にアトリビュートを作成・設定します。

Note

ジオメトリネットワーク内の2つ以上のノードを結合するとき、同じ名前のDetailアトリビュートが複数のノードに存在すれば、Houdiniは最初のノードの値を使います。もしアトリビュートのタイプが文字列なら、Houdiniは文字列を結合して、文字列配列にします。

アトリビュートの優先順位

同一ジオメトリ内の2つのコンポーネントが、どちらも同じ名前のアトリビュートが設定されているとき、そのアトリビュートの優先順位は、ジオメトリの中で“より低いレベル”のアトリビュートが使われます。つまり、以下の通りです:

  • Vertex アトリビュートが以下のアトリビュートを上書き

    • Point アトリビュートが以下のアトリビュートを上書き

      • Primitive アトリビュートが以下のアトリビュートを上書き

        • Detail (ジオメトリ全体)アトリビュート

アトリビュート値に基づいてノードを適用

ほとんどのサーフェスノードには、 Group フィールドがあり、そこに名前が付いたグループやパターンを入力することで、ノードを適用するコンポーネントを選択します。このフィールドでは、特別な構文を使ってアトリビュートの値からコンポーネントを選択することができます。例えば、PointノードGroup フィールドに@foo>5を入力すると、fooアトリビュート値が5よりも大きいポイントをすべて選択します。

詳細は、手動でグループを指定を参照してください。

辞書アトリビュート

Houdini18.5以降のSOPジオメトリは、辞書アトリビュートに対応しています。 この辞書アトリビュートタイプは、各エレメント(ポイント、頂点、プリミティブ/フェース、ジオメトリ全体/Detail)でキー/値のペアのセットを保存することができます。

  • 辞書アトリビュートを使用することで、ゲームエンジンデータやHoudiniがネイティブで対応していない外部ジオメトリフォーマットといった複雑な“目に見えない”エレメントデータを格納することができます。

  • Detail上の辞書アトリビュートにはジオメトリに関するメタデータを格納すると良いでしょう。

  • デバッグ用途なら、生成されたノードのパラメータ値をエレメント別に格納するのも良いでしょう。 辞書Pointアトリビュート内にポイントとワイヤーとパラメータを使ってノードを表現することで、ノードネットワークをジオメトリとして保存することさえもできてしまいます。Attribute From Parms SOPを参照してください。

( 辞書配列 アトリビュートを作成することもできます。これは、アトリビュート値が単一辞書ではなくて辞書の 配列 になっています。)

辞書のキーは文字列です。 辞書の値には、文字列、数値、配列、(入れ子化した)辞書を設定することができます。 辞書アトリビュートは実質的にJSONと同じデータモデルを持ちます 。 実際に、Geometry SpreadsheetなどのUIは、辞書アトリビュートの内容をJSONエンコード文字列のように表示します。

現在のところ、辞書アトリビュートは主にPython、VEX、VOPsでサポートされています。 Attribute WrangleでVEXスニペットを使用するか、または、Python SOPを使用することでジオメトリ上の辞書アトリビュートを操作することができます。 他にも、パラメータエクスプレッションでキー値を読み込む簡単なサポートもあります。

言語

対応

VEX/VOPs

  • アトリビュート値を読み込む標準VEX関数を使用することで、辞書全体をVEXのdict型として取得することができます。

  • hasdetailattribで指定する引数のアトリビュート名にattr_name.keyを使用することで、そのキーの有無をチェックすることができます。

  • VEXスニペット内の辞書アトリビュートをd@foo(辞書配列アトリビュートの場合はd[]@foo)でバインドすることができます。

  • []を使ってインデックスを指定することができますが、VEXには戻り値の型推論があるので、これを使用する場合には戻り値の型変換をしておくと良いでしょう(辞書のエントリーはどの型も指定可能ですが、コンパイル時に特定の型に解決しなければなりません)。 見つからないキーの参照はゼロの値を返します。

  • VEX/VOPsには辞書を操作するための関数があり、配列を扱ういくつかの関数はdictオブジェクトも扱います。 例えば、dictオブジェクトをlenに渡すと、その辞書内のアイテムの数が返され、isvalidindexに渡すと、その辞書内にキーが存在するかどうか確認することができます。

  • keysは、辞書キーを文字列の配列として返します(VEXの配列は一種類の型でなければならないので、辞書値に対して同等の関数を使用することはできません)。

  • set関数は、引数に辞書キーと辞書値を交互に指定して辞書を構築することができます:

    dict foo = set( 'key1', 3.2, 'key2', 'stringvalue');

VEXでのdict型の扱い方に関する詳細は、VEXのdict型のドキュメントを参照してください。

Python

  • 標準のhou.Geometryメソッド(例えば、Detailアトリビュートにはhou.Geometry.attribValue)を使用して辞書アトリビュートを読み込むことができます。 これは、辞書全体を、Pythonの型(int, float, str, list, dict)が含まれたPython dictとして返します。

  • アトリビュート系のメソッドは純粋なPython構造体を返すので、一度アトリビュート値を読み込んだら、通常のPythonを使ってそのデータを操作することができます。 例えば、len()を使用すれば辞書内のアイテムの数を取得することができ、dict["key"]を使用すればキーに関連付けられている値を取得することができます。

エクスプレッション

  • アトリビュート値を読み込む標準の関数(detail, point, vertex, prim)で引数のアトリビュート名にattr_name.keyを使用することで、エクスプレッション内で辞書キーの値を読み込むことができます。

  • 文字列アトリビュート系の関数(details, points, vertexs, prims)を使用して全体のアトリビュート値を読み込むと、JSONエンコードの文字列が返されます。 しかし、JSONを解読するエクスプレッション関数は用意されておらず、エクスプレッションで文字列を扱う際は、制限付きの文字列制御関数しかありません。

Tip

Attribute Createノードは、空っぽの辞書アトリビュートのみを作成します。実際にジオメトリネットワーク内で辞書値を設定する現在最も良い方法は、Python SOPまたはAttribute Wrangleを使用することです。

Intrinsic(組み込み)アトリビュート

Intrinsic(組み込み)アトリビュート とは、まるでそれが通常のアトリビュートであるかのようにアクセス可能なジオメトリから派生して 計算された値 のことです。例:

Intrinsic(組み込み)アトリビュートの例

Detail

intrinsic:pointcount

ジオメトリ内のポイントの数。

Detail/primitive

intrinsic:bounds

ジオメトリの境界ボックス。

Primitive

intrinsic:measuredarea

ジオメトリの表面積。

Primitive

intrinsic:memoryusage

プリミティブに使用されているメモリ使用量。

To...Do this

利用可能なIntrinsic(組み込み)アトリビュートを調べる

  • ginfo -Iコマンドラインユーティリティは、既知のすべてのIntrinsic(組み込み)アトリビュートのリストをプリントします。

  • Geometry SpreadsheetにIntrinsic(組み込み)アトリビュートを表示することができます。デフォルトでは、非表示になっています。

    コンポーネントレベルでIntrinsic(組み込み)アトリビュートを持ったジオメトリを閲覧している場合、 Intrinsics メニューを使用することで、すべてのIntrinsic(組み込み)アトリビュートを表示したり、スプレッドシートに表示させるIntrinsic(組み込み)アトリビュートを選択することができます。

  • Inspectツールは、検査したジオメトリに対して利用可能なIntrinsic(組み込み)アトリビュートを表示することができます。

Intrinsic(組み込み)アトリビュートを使用する

  • HScriptエクスプレッションやVEXでは、アトリビュート関数を使用することで、Intrinsic(組み込み)アトリビュートを読み込むことができます。例:

    prim("../volume1", 0, "intrinsic:bounds", 0)
    

    (VEX Wrangleスニペット内では、@アトリビュートショートカットを使ってIntrinsic(組み込み)アトリビュートを読み込むことができません。しかし、intrinsic:接頭辞のテクニックを使わなくてもprimintrinsicdetailintrinsicを使用することでIntrinsic(組み込み)アトリビュートを直接読み込むことができます。)

  • Pythonでは、hou.Geometry.intrinsicNames, .intrinsicValue(), .intrinsicValueDict()を使用することでIntrinsic(組み込み)アトリビュートにアクセスすることができます。

  • グループ構文では、Intrinsic(組み込み)アトリビュートの値に基づいてグループ化をすることができます。例えば、@intrinsic:indexorder<100

Tip

Intrinsic(組み込み)という名前の意に反して、実際にHoudiniやMantraに一部の内部設定を変更させる“Intrinsic(組み込み)”アトリビュートをいくつか書き出すことができます。 例えば、パックプリミティブに対してintrinsic:unexpandedfilenameIntrinsic(組み込み)アトリビュートを設定することができます。

Tip

intrinsic:boundsintrinsic:packedboundsなどの境界ボックス系Intrinsic値は、(xmin, xmax, ymin, ymax, zmin, zmax)の順番で返されます。

数値精度の変換

Attribute Createノードで作成したアトリビュートでは数値精度を選択することができます。また、Attrib Castノードを使うと、 アトリビュートをより高い精度(メモリを多く消費します)、より低い精度(メモリを節約)に変換することができます。

詳細は、Attrib Castを参照してください。

インデックスや要素数の取得に使用する変数

以下にVEXスニペットで使用できる“疑似アトリビュート”を載せています。 これらのアトリビュートは、現在処理されているエレメントの番号(例えば、ポイント番号)、ジオメトリ/リスト内のエレメントの総数を表現します。 詳細は、VEXスニペットでインデックスや要素数の取得に使用する変数を参照してください。

@elemnum, @ptnum, @primnum, @vtxnum

VEXスニペットを実行している時の現行エレメントの番号を表現します。

@numelem, @numpt, @numprim, @numvtx

VEXスニペットを実行している時のジオメトリ/リスト内のエレメントの総数を表現します。

よく使うアトリビュート

ノードのタイプによって、存在していれば(いくつかの場合では、そのアトリビュートが存在している必要がある)使用される特定のアトリビュートがあります。 そのようなノードは、処理の一部としてアトリビュートを作成/設定します。 ノードが使用/設定するアトリビュートについては、個々のノードのドキュメントを参照してください。

以下では、一般的に複数のノードタイプによって読み/書きされるアトリビュートをいくつか載せています。

ジオメトリアトリビュート

P

vector

ポイントの位置。ビューポートでは、これを使用して3D空間にモデルのポイントを配置します。このアトリビュートを上書きすることで、ポイントを動かすことができます。

On point

N

vector

法線方向。このアトリビュートを上書きすることで、法線を変更することができます。

v

vector

Velocity(速度ベクトル)。 レンダラーは、このアトリビュートを利用して、モーションブラーを追加すべき箇所を判断します。 このアトリビュートは自動的に計算されませんが、いくつかのノード、特にパーティクル系のDOPsは、このアトリビュートを設定/使用することができます。 Trail SOPを使用することで、Velocityをポイントに追加することができます。

id

int

固有のエレメントID。これはエレメント番号(例えば、ポイント番号)と同じではありません。 これは、例えば、ポイント番号が変わっても(ポイント数が変化すると起こり得ます)そのポイントを追跡できるようにポイントに割り当てられるアトリビュートです。 パーティクル系のDOPsでは、このアトリビュートをよく設定/使用しています。

name

string

これは、ボリュームやパックプリミティブなどのプリミティブを名前によってコードから検索できるようにするための値です。 一部のノードでは、このアトリビュートを設定/読み込みます。

piece

int

ジオメトリをピースに分解するノードでは、どのポリゴンフェースが同じピースに属しているのか判断できるように、このアトリビュートを設定することが多いです。 同じピースに属するフェースは、同じ値のpieceアトリビュートを共有します。他のノードでは、このアトリビュートを利用して、ピース別に処理を行なうことができます。

サイズと回転

pscale

float

均一スケール係数。 これは、場所によって使われ方が異なります。 パーティクル/ポイントのレンダリングに関しては、これは、レンダリング時のパーティクル/ポイントのサイズ(ワールド空間単位)を制御します。 インスタンスに関しては、これを利用することで、インスタンスジオメトリを均一にスケールさせることができます。

scale

vector

pscaleはすべての軸において均一な単一スケール係数であるのに対して、このアトリビュートは、軸毎に別々に不均一にスケールをかけることができます。 詳細は、pscaleアトリビュートを参照してください。

width

float

開いたカーブをレンダリングする時、レンダリング時に、この線幅(ワールド空間単位)が設定されます。 このアトリビュートが存在しなかった場合、Mantraは、開いたカーブを太いリボンではなく、細い線としてレンダリングします。

On point

lod

float

詳細レベル。これはインスタンスに使用することができます。

On detail, prim

spritescale

vector

スプライト画像を使ってパーティクルを表示させる時、pscaleに対して追加でスプライトのスケールをかけることができます。

Default (1, 1, 1) On point

spriterot

float

スプライト画像を使ってパーティクルを表示させる時、(カメラ角度を基準に)スプライトの回転を度で加えます。

Default 0 On point

ビューポート表示アトリビュート

gl_wireframe

int

このDetailアトリビュートが1の場合、ジオメトリがビューポート内で常にワイヤーフレーム表示として表示されます。

このDetailアトリビュートが-1の場合、ジオメトリがビューポート内で常にシェーディング表示として表示されます。 従来だとワイヤーフレームのみで描画されるガイドジオメトリに関しては、これによって、ビューポートがどのシェーディングモードだろうとシェーディング表示として表示させることができます。

Default 0 On detail

gl_lit

int

このDetailアトリビュートが0の場合、ジオメトリは常にライティングなしで表示されます。 現在のところ、これはガイドジオメトリでは無視されます。

Default 1 On detail

gl_showallpoints

int

このDetailアトリビュートが0でない場合、すべてのポイントがジオメトリに繋がっていても、それらのポイントがスプライトとしてレンダリングされるようになります。 従来だと、繋がっていないポイントのみがレンダリングされます。 現在のところ、これはガイドジオメトリでは無視されます。

Default 0 On detail

gl_spherepoints

int

このDetailアトリビュートが0でない場合、繋がっていないポイントは、レンダープロパティでもスプライトでもなく球として描画されます。 gl_showallpointsは、繋がっているポイントにもこれと同じように描画させることができます。

Default 0 On detail

gl_xray

int

このDetailアトリビュートが0でない場合、ジオメトリはX-Rayモードで描画されます(ジオメトリが他のジオメトリで隠れている時であっても可視になります)。

Default 0 On detail

vm_cuspangle

float

ジオメトリに何も法線がない時に法線の生成に使用されるカスプ(尖)角度を制御します。 180は、完全に滑らかなポイント法線を生成します。

Default 60 On detail

gl_spritetex

string

スプライト用のテクスチャを指定します。 これは、繋がっていないポイント、または、gl_showallpointsが1の場合にのみ有効です。

On point

gl_spriteblend

int

これが1の場合、スプライトを描画する時にブレンドが有効になります。 これが0の場合、デプスソートもブレンドも行なわれないので、スプライトの描画パフォーマンスが大幅に良くなります。 Vellum Grainなど不透明なスプライトでは、ブレンドを無効にするのが良いです。

Default 1 On detail

gl_spritecutoff

float

gl_spriteblendが0の時に、アルファ値がこのカットオフ値未満であるすべてのピクセルは破棄されます。 このカットオフ値が0の場合はピクセルは破棄されませんが、1は完全に不透明なピクセルのみを保持します。 一般的に、アンチエイリアスのかかったエッジを持つ不透明なスプライトには、0.5-0.75の間の値が良いです。

Default 0 On detail

ビューポートのボリューム表示アトリビュート

以下のDetailアトリビュートは、ビューポートがボリュームプリミティブをレンダリングする方法を制御します。 ビューポートは、ボリュームプリミティブをフォグ、Height Field、アイソサーフェス(符号付き距離フィールド)として表示することができます。 volumevisualmode Intrinsic Primitiveアトリビュートを読み込むことで、このプロパティを照会することができます。 このセクションに載せているDetailアトリビュートは、フォグボリュームに適用され、いくつかのアトリビュートはHeight Fieldのビューポート表示にも影響を与えます。

ボリュームのヴィジュアライゼーションには、以下の4つのコンポーネントを利用することができます。

density

フォグに対して、このコンポーネントには煙の光学的な厚みを格納します。 Height Fieldに対して、このメインボリュームには、各ボクセルの標高を格納します。

cd

カラーフィールド。 このコンポーネントは、フォグ(煙に色を付けます)とHeight Field(地形にテクスチャを張ります)のどちらにも使用することができます。

emit

フォグに対して、このコンポーネントには発光強度(または、内部の白熱)を格納します。 Height Fieldに対して、このコンポーネントはビジュアライゼーションステンシルのように動作します。 つまり、ビューポートは、emit値が最低0.5以上のHeight Fieldの部分のみを描画します。

emitcd

このコンポーネントはフォグボリュームで使用され、内部の発光に色を付けることができます。

以下のセクションのアトリビュート名の中の*には、上記の4つの文字列のどれかを含めることができます。 詳細は、Volume Visualization SOPのヘルプページを参照してください。 このノードを使用することで、これらのアトリビュートを設定または修正することができます。

volvis_*field

string

関連コンポーネントのデータを含んだボリュームの名前。

volvis_*range

vector2

0..1範囲にリマップされるボリューム値の範囲。

Default [0, 1]

volvis_*ramp

string

このアトリビュートには、関連ボリューム値をリマップするランプの文字列表現を含めてください。 これが存在しなかった場合、値のリマップにランプは使用されません。

volvis_*rampperiodic

int

このアトリビュートは、リマップされるボリューム値にランプを適用する方法を示します。 1に設定すると、ボリューム値を1で割った余りの値でランプが評価されます。 これは、チェック柄または縞々模様を作成して広い範囲の値をもっと上手く見せるのに役立ちます。

volvis_maxres

int

このアトリビュートは、ボリュームのビジュアライゼーション解像度を制限します。 ボリュームの解像度が大きい場合、レンダリング前にこのサイズにリサンプリングされます。

Default -1

volvis_emitscale

float

このアトリビュートは、発光強度の乗数として作用します。 値が大きいほど、内部の白熱(例えば、炎の火炎)が明るくなります。

Default 0

volvis_shadowscale

float

すべての光源からの自己シャドウの強度を制御します。 このアトリビュート値が大きいほど、自己シャドウが暗くなります。

Default 1

volvis_ambientshadows

float

環境光源からの自己シャドウの強度を制御します。

Note

デフォルトのヘッドライトは、フォグボリュームの環境光源として扱われます。

このアトリビュートのデフォルト値は、ビューポートのDisplay OptionsAmbient Occlusion で設定します。

volvis_ambientmapsize

float

環境光源のシェーディングをする際のオクルージョンマップテクスチャのサイズを制御します。 値が大きいほど(最大1まで)シェーディングが遅くなりますが、高品質な結果が生成されます。

Default 0.5

volvis_ambientsteprate

float

環境光源からの自己シャドウを計算する際のDensityテクスチャのサンプリング頻度を指定します。 値が小さいほど(最小1なで)シェーディングが遅くなりますが、高品質な結果が生成されます。

Default 4

volvis_shadowcolor

vector

煙が落とす影の色を制御します。 これらの値の補数は、光の各カラー(赤、緑、青)の補助Density乗数として作用します。

Default [1, 1, 1]

ビューポートは、フォグボリューム内の光の散乱を追加で近似処理することができます。 この機能は実験段階で、将来のバージョンのHoudiniで変更および削除される可能性があります。

volvis_extinctionratio

float

ボリュームが(光を散乱させるのとは対照的に)光を吸収する割合を指定します。 1の値は、散乱なしを意味します。 その対極的な値の0は、煙に作用するすべての光が散乱することを意味します。

Default 1

volvis_scatteringiter

int

散乱は反復処理によって近似処理され、このアトリビュートには、細分化を実行する反復回数を格納します。 この回数が多いほど精度の高い結果が生成されますが、計算時間もかかります。

Default 25

フォグボリュームを扱う場合、代わりにビューポートがモーションベクトルまたは法線を描画するようにさせることができます。 この挙動は、Detailアトリビュートからも制御することができます。

volvis_motionvec

int

このアトリビュートがゼロでない場合、ビューポートはフォグに対してスクリーン空間のモーションベクトルを描画します。 そのため、velベクトルボリュームがVelocityの読み込みに使用されます。

Default 0

volvis_normals

int

このアトリビュートがゼロでない場合、ビューポートはフォグに対してスクリーン空間の法線を描画します。 volvis_normalsvolvis_motionvecがどちらともゼロでない場合、ビューポートは法線を描画します。

Default 0

パーティクルアトリビュート

force

vector

現行ポイントのforceアトリビュート。これは、一部のパーティクル系のDOPsで設定/使用されます。 これは、パーティクルに作用しているすべてのフォースを合計して計算されたパーティクルの位置の変化量を表わしています。

rest

vector

各ポイントのRest Position(静止位置)を含んだ昔から使われてきたアトリビュート名で、色々なノードで使用されています。 一部のシェーダでは、Pではなくて、このアトリビュートを使用させることで、ジオメトリを変形させてもプロシージャルにテクスチャがジオメトリに追従するようにさせることができます。

On point

torque

vector

現行ポイントのtorqueアトリビュート。これは、Torque DOPでパーティクルをスピンさせるために設定/使用されています。

up

vector

パーティクルのローカル空間のUpベクトルを表現します。 これは、ジオメトリをポイント上にインスタンス化する際に使用されます。 このアトリビュートを上書きすることで、パーティクルの向きを変更することができます。

accel

vector

廃止。古いPOPsで使用されていました。 新しいDOPパーティクルノードでは、代わりにforceアトリビュートを使用しています。

backtrack

vector4

廃止。パーティクルの以前の位置を格納するために古いPOPsで使用されていました。

orient

vector4

パーティクルのクォータニオンによる向き。 これは、向きを完全に指定することができます。 それに対して、upは1軸の向きしか定義していません。 このアトリビュートが存在していれば、ジオメトリをポイント上にインスタンス化する際にそれが使用されます。

rot

vector4

ジオメトリをポイント上にインスタンス化する際に、他のすべてのアトリビュートが適用された後に使用される追加のオフセットクォータニオン。

nextid

int

最も大きいパーティクルIDを格納したDetailアトリビュートで、これによってHoudiniは次の新しいパーティクルIDを効率的に作成することができます。

pstate

int

パーティクルの状態に関する色々な情報(例えば、パーティクルが生存しているかどうか、停止しているかどうか、前フレームで衝突したかどうかなど)を暗号化したビットフィールド。 色々なパーティクル系のDOPsがこのアトリビュートを読み書きします。

pstateの値は、以下のフラグの合計値です:

0x01

“プライマリ”パーティクル(既存パーティクルから分裂していないパーティクル)。

0x02

次のフレームに行く前に死亡。

0x04

停止。

0x08

衝突した。

0x10

静的ジオメトリまたは移動ジオメトリに引っ付いた。

0x20

リジッドボディダイナミクスシミュレーションに関係付けられている。

0x40

アクティブ。

0x80

CHOPによって動きが上書きされている。

シェーダの上書き

ほとんどのシェーダは、オーバーライドアトリビュートを使用して、そのアトリビュートを持ったエレメントのシェーディング方法を変更します。

Cd

vector

ディフューズカラーオーバーライド。ビューポートは、これを使用してOpenGLジオメトリにカラーを付けます。

Alpha

float

アルファ透明度オーバーライド。ビューポートは、これを使用してOpenGLジオメトリのアルファを設定します。

Cs

vector

スペキュラーカラーオーバーライド。

Cr

vector

反射カラーオーバーライド。

Ct

vector

透過カラーオーバーライド。

Ce

vector

発光カラーオーバーライド。

rough

float

粗さオーバーライド。

fresnel

float

フレネル係数オーバーライド。

shadow

float

シャドウ強度オーバーライド。

sbias

float

シャドウバイアスオーバーライド。

レンダリングアトリビュート

uv

vector

ポイント/頂点のUV座標。 このベクトルの最初の2つのコンポーネントには、現在のUとVの座標が格納されます。

Note

uvは、テクスチャ座標を格納するためのHoudiniで昔から使われてきたアトリビュート名です。 同じジオメトリ上に複数のUVレイアウトが持てるように、他のアトリビュートにテクスチャ座標を格納することができます。 ほとんどのテクスチャ関連のノードには、使用するUVアトリビュート名を指定するためのフィールドが用意されています。

On point, vertex

material

string

このプリミティブのシェーディングに使用するマテリアルのノードパス。 これは、オブジェクトのマテリアルを上書きします。

instance

string

現行ポイントのinstanceアトリビュート。ポイント上にインスタンス化させたいジオメトリのパスを格納します。 ここには、ジオメトリファイルのファイルパス、または、ジオメトリオブジェクトまたはジオメトリノードのop:構文によるパスを指定することができます。 このアトリビュートを上書きすることで、インスタンス化されるジオメトリを変更することができます。

On detail, prim

rishade

string

Detail/Primitiveアトリビュート。RenderManシェーダの名前。

On detail, prim

See also

ジオメトリ

学ぼう

モデリング

地形

粉砕

破壊を参照してください。

次のステップ

導師レベル