| On this page |
プリミティブを光源に変換することができます。 これによって、ネオン管、白熱オブジェクト、電球のフィラメント、白熱する霧、テーブルランプなど、信憑性のあるレンダリングを作成することができます。 この可能性は無限大です。
Geometry Light LOPを使用することで、メッシュ、ポイント、カーブ、ボリュームを光源に都合よく変換することができます。
このノードを作成する際に、
APIという略語に出くわします。
幸いなことに、技術的なことは気にする必要はありませんが、興味のある方は以下のNOTEをお読みください。
Note
一般的にスキーマとは、新しいタイプのプリミティブを定義するための基本的なUSDデータモデルの拡張です。 API スキーマは、プリミティブのプロパティを操作するためのプログラミングインターフェースを提供します。
API Schema は、必要不可欠なライトの種類をSolaris/USDに伝えます。このスキーマには3つのバリエーションがあります。
-
LightAPI : このスキーマは、最も汎用性の高いオプションであり、メッシュ、ポイント、カーブなど、 あらゆる ジオメトリを光源に変換します。
-
MeshLightAPI : このスキーマは、 LightAPI と同じ結果を作成しますが、メッシュのみに限定されています。
-
VolumeLightAPI : このスキーマは、 MeshLightAPI と同様に、ボリュームのみに限定されています。
スキーマ/タイプを選択したら、そのライトのプロパティを調整できるようになります。 3つのタブのパラメータは、“従来”の光源と同じです。 光源の強さとカラーを定義したり、シャドウのカラーをカスタマイズしたり、コンポジット用にLPEを介してライトコンポーネントを抽出することができます。 Solarisのライトに既に慣れている方なら、ジオメトリライトの調整方法がすぐに分かることでしょう。
Solarisでのライティングに慣れていない場合は、Geometry Light LOPのヘルプカードを読んでパラメータの機能を把握することをお勧めします。
変換 ¶
基本的なセットアップに必要なノードは2つだけです:
-
ジオメトリを取り込むノード
-
下流のGeometry Light LOP
プリミティブを光源に変換する時は、必ず適切な プリミティブタイプ を使用してください。
このルールを理解するには、Scene Graph Treeを見てください。
そこには、 Primitive Type の項目が見つかります。
例えば、以下のスクリーンショットにある実際のジオメトリプリミティブ(“Gprim”)は、houdini_curveブランチ下にグループ化されており、そのタイプはBasicCurvesになっています。
コンポーネントを選択した場合、何も起こらず、レンダリングは暗いままになります。
Note
Geometry Light LOPは、選択したものから動作するライトが作成されるかどうかの妥当性チェックを行ないません。
プリミティブタイプの他の例を挙げると、Points、Mesh、Volumeがあります。
以下のスクリーンショットは、利用可能なAPIタイプのアイコンも異なっていることを示しています。
プリミティブ(s)とライトノードを接続するには、そのノードの Primitives パラメータに進んで、Scene Graph Treeのパス(s)を入力します。
上記のカーブの例では、そのパスは/houdini_curve/curve_0となります。
または、Scene Graph Treeからプリミティブをパラメータまでドラッグすることもできます。
幅とスケール ¶
カーブとポイントでは、widthアトリビュートとpscaleアトリビュートをカスタマイズして、異なるサイズのストロークやライトドットを得ることができます。
SOP Import LOPまたは
SOP Create LOPを介してジオメトリを読み込むと、すべてのエレメントに有効な固定スケールを調整することができます:
-
SOP Import/Create LOPの Geometry Handling セクションを展開し、 Set Missing Widths パラメータに値を入力します。
別の方法として、SOPジオメトリ上に適切なアトリビュートを直接作成しても構いません。
便利な方法は、ジオメトリノードの下流にAttribute Randomize SOPを配置することです:
-
Attribute Name パラメータに
widthまたはpscaleを入力します。どちらの名前も有効であり、Solarisではそのpscaleは自動的にwidthPrimvarに変換されます。 -
widthはスカラーなので、 Distribution タブの Dimensions パラメータを1に設定します。 -
Min Value パラメータと Max Value パラメータを定義します。
0.01や0.1のような小さな値から始めることをお勧めします。
可変幅は、手描きオブジェクトの印象を作り出します:
ボリューム ¶
ボリュームの場合、操作モードはポイントやメッシュと同じで、Gprimが必要です。 このタイプにはVolumeLightAPIスキーマが用意されています。 Houdini独自のボリュームSOPまたはVDBを使用することができます。 Geometry Light LOPは、密度ベースのボリュームだけでなく、距離フィールドから生成されたボリュームも対応しています。
発光マテリアル ¶
光源に変換したいオブジェクトに既に発光マテリアルが割り当てられている場合、Geometry Light LOPはこのような追加光源をどのように処理するのか疑問に思いませんか?
以下の例では、Houdiniロゴには黄色の強い発光マテリアルが割り当てられています。 しかし、Geometry Light LOPは、標準のオレンジ色を適用しています。 そのGeometry Light LOPの Standard タブには、3つのオプションを持つ Material Sync Mode パラメータがあります。 ここでは、マテリアルがどのように最終的なライトの状況に寄与するのかを選択することができます。
-
デフォルトの No Material Response モードでは、マテリアルは無視され、ジオメトリライトの Intensity と Color のみが考慮されます。 これによって、発光マテリアル なし の想定通りの結果が得られます。
-
Material Glow Tints Light モードでは、ロゴと照明領域はマテリアルの黄色とジオメトリライトのオレンジ色が混ざった色になります。
-
Independent モードでは、ロゴは発光 マテリアル の黄色に、照明領域は ジオメトリライト のオレンジ色になります。
制限事項 ¶
ジオメトリライトは正真正銘の光源ですが、いくつかの制限事項があります:
-
ライトフィルタのパラメータがありますが、現在のところ、ジオメトリライトでは サポートされていません 。
-
ジオメトリライトをインスタンス化することはできません。
-
ポイントプリミティブやカーブプリミティブに個別のカラーを定義することはできません。例えば、ポイントクラウドにランダムな
Cdアトリビュートを作成しても、それはGeometry Light LOPの Color パラメータで上書きされてしまいます。
LPEs ¶
技術的には、ジオメトリライトは、発光シェーダが適用されている場合であっても光源です。
そのため、ジオメトリライトは、終端イベントがLであるLPEの対象となります。
この話の詳細は、Light Path Expressionsのページを参照してください。