| On this page |
前項 ジオメトリ
概要 ¶
Karmaのライティングは、USDに組み込まれたライト関連の機能に大きく依存しています。 この章では、USDライティングの基本とKarma固有のプロパティについて説明します。
USDライト ¶
USDのUsdLuxモジュールには、ライティングツールファミリーが用意されています。 用意されている基本的なライティングタイプは次のとおりです:
|
円柱形の光源。 |
|
|
円形の光源。 |
|
|
無限に遠い光源。 |
|
|
無指向性の環境光源。 |
|
|
無限に小さい光源。 |
|
|
ドームライトの窓を備えたジオメトリ。 |
|
|
長方形の光源。 |
|
|
球形の光源。 |
さらに、USDは、APIスキーマを介してメッシュまたは他のジオメトリをライトに変換することができます:
|
ジオメトリプリミティブをライトに変換します。 |
|
|
メッシュプリミティブをライトに変換します。 |
|
|
ボリュームプリミティブをライトに変換します。 |
以上が、USDで用意されている光源一式です。
共通ライトプロパティ ¶
ライトには、現実世界のライティングを模倣する様々なプロパティがあり、アーティスティックなコントロールが用意されています。 ディレクショナルライトは、デフォルトではローカルのマイナスZ軸方向に光を放出するように合わせられています。 すべてのライトは移動、回転、スケールさせることができます。
Base ¶
Intensity
ライトのパワー出力に対する線形スケール。
Exposure
F-Stopコントロールと同様に、パワー出力を2のべき乗で指数的にスケールします。
0は強度をスケールしません。マイナスの数値は、強度を2乗で弱くし、プラスの数値は強度を強くします。
ライトの量が正しくなるように Intensity を設定してから、このパラメータで“調整”することが多いです。
Color
エネルギー線形用語でいうライトカラー。
Enable Color Temperature
Color Temperature を使用して、ライトカラーを制御します。
Color Temperature で計算されたカラーは、 Color のRGBカラーで 乗算 されるので、“純粋な”温度カラーが欲しいのであれば、 Color を1.0, 1.0, 1.0に設定してください。
Color Temperature
Enable Color Temperature が有効な時にシミュレーションする温度(単位はKelvin度)。
有効な範囲は1000から10000です。
値が低いほど暖かく、高いほど寒くなります。
デフォルトは、一般的なD65ホワイトポイントです。
必要に応じて、USDライブラリのUsdLuxBlackbodyTemperatureAsRgb()関数を使って、同じカラー値を計算することができます。
Clipping Range
前方距離より近くにあるジオメトリ、遠方距離より遠くにあるジオメトリを表示しません(ワールド単位)。
Normalize Power
設定されたパワー出力(ExposureでスケールされたIntensity)をライトの表面積または角度サイズで割ります。 これによって、ライトのサイズの影響を受けずに、エネルギー出力を調整して比較することが簡単になります。
Diffuse Multiplier
このライトがシェーダの拡散反応に与える影響をスケールします。 これは、非物理的な“調整”です。
Specular Multiplier
このライトがシェーダのスペキュラ反応に与える影響をスケールします。 これは、非物理的な“調整”です。
Scale Guide Geometry
ビューポート内でライト用に描画されるガイドジオメトリに均一スケール係数を適用します。 デフォルト値は、ガイドジオメトリが一貫して実際のワールドサイズになるようにUSDステージの“meters per unit”値を逆数にしたエクスプレッションになっています。
Light Filters
ライトに使用したいライトフィルタをスペースで区切ったリスト。
ライトフィルタはLight Filter Library LOPで作成することができます。
Shaping ¶
Intensity
ライトのパワー出力に対する線形スケール。
Exposure
F-Stopコントロールと同様に、パワー出力を2のべき乗で指数的にスケールします。
0は強度をスケールしません。マイナスの数値は、強度を2乗で弱くし、プラスの数値は強度を強くします。
ライトの量が正しくなるように Intensity を設定してから、このパラメータで“調整”することが多いです。
Color
エネルギー線形用語でいうライトカラー。
Enable Color Temperature
Color Temperature を使用して、ライトカラーを制御します。
Color Temperature で計算されたカラーは、 Color のRGBカラーで 乗算 されるので、“純粋な”温度カラーが欲しいのであれば、 Color を1.0, 1.0, 1.0に設定してください。
Color Temperature
Enable Color Temperature が有効な時にシミュレーションする温度(単位はKelvin度)。
有効な範囲は1000から10000です。
値が低いほど暖かく、高いほど寒くなります。
デフォルトは、一般的なD65ホワイトポイントです。
必要に応じて、USDライブラリのUsdLuxBlackbodyTemperatureAsRgb()関数を使って、同じカラー値を計算することができます。
Clipping Range
前方距離より近くにあるジオメトリ、遠方距離より遠くにあるジオメトリを表示しません(ワールド単位)。
Normalize Power
設定されたパワー出力(ExposureでスケールされたIntensity)をライトの表面積または角度サイズで割ります。 これによって、ライトのサイズの影響を受けずに、エネルギー出力を調整して比較することが簡単になります。
Diffuse Multiplier
このライトがシェーダの拡散反応に与える影響をスケールします。 これは、非物理的な“調整”です。
Specular Multiplier
このライトがシェーダのスペキュラ反応に与える影響をスケールします。 これは、非物理的な“調整”です。
Scale Guide Geometry
ビューポート内でライト用に描画されるガイドジオメトリに均一スケール係数を適用します。 デフォルト値は、ガイドジオメトリが一貫して実際のワールドサイズになるようにUSDステージの“meters per unit”値を逆数にしたエクスプレッションになっています。
Light Filters
ライトに使用したいライトフィルタをスペースで区切ったリスト。
ライトフィルタはLight Filter Library LOPで作成することができます。
Shadow ¶
Enable
これを有効にすると、このライトで照らされたオブジェクトが(シャドウマスクに従って)影を落とします。
Color
このライトが落とすシャドウのカラーに色味を付けます。
これをブラック(0, 0, 0)から変更すると、非物理的な“調整”になります。
Falloff Start Distance
シャドウが減衰し始める近い距離。
デフォルト値(-1)は、減衰なしを意味します。
Falloff Gamma
減衰ゾーン( Falloff と Distance の間)内で線形距離によるシャドウ強度に対するガンマ(つまり、指数)コントロール。
Distance
このライトが影を落とすオブジェクトをチェックする最大距離。
デフォルトは-1、つまり制限なしです。
影を落としたいすべてのオブジェクトが特定の距離の範囲内にあることが分かっているのであれば、これを設定することでレンダリングを高速化することができます。
Base Lights ¶
CylinderLight ¶
Height |
|
Radius |
|
Transform |
|
DiskLight ¶
Radius |
|
Transform |
|
DistantLight ¶
Angle |
|
Transform |
|
DomeLight ¶
Transform |
|
Mesh Light (MeshLightAPI) ¶
Transform |
|
Other |
|
Point Light ¶
Transform |
|
Portals ¶
Transform |
|
その他 |
|
RectLight ¶
Width |
|
Height |
|
Transform |
|
SphereLight ¶
Radius |
|
Transform |
|
Karma Lights ¶
これらはSolarisで追加されたライトで、特にKarma用のライトです。
KarmaSkyDomeLight ¶
Solar Altitude |
|
Solar Azimuth |
|
Turbidity |
|
Transform |
|
Karma Physical Sky ¶
KarmaSkyDomeライトとDistantライトと特別なプロパティの組み合わせ。
詳細は、ノードのヘルプカードを参照してください。
ライトツリー ¶
Karmaは、たくさんのライトを含んだシーンをもっと効率的にレンダリングできるように、自動的に ライトツリー を構築します。 これによって、Karmaはどのライトを最も多くサンプリングするべきで、どのライトが高速に解が求まりそうなのかを効率的に判断することができます。 ライトに対してこれを Uniform に設定すると、常にそのライトがサンプリングされるようになります。
一部のタイプのライト、または、特定の構成のライトは、ライトツリーに追加されません。 ドームライト、IESプロファイルとライトフィルタが適用されたライトは、ライトツリーから除外されます。
詳細は、サンプリング>ライトツリーを参照してください。
Light Properties
Sampling Mode
レンダリングにライトツリーを使用する時、Karmaは互換性のある光源をそのライトツリーに格納しようとします。 このオプションは、強制的にライトをライトツリーから除外して、均一なサンプリングになるようにします。 場合によっては、これによって速度が落ちるもののライトのサンプリング品質が改善されます。
ジオメトリライト ¶
Houdini21.0以降、Karmaは、USDのLightAPI手法によるジオメトリライトをサポートしています。 これは、ジオメトリを実際のライトに変換し、他のライトタイプと同じように動作させます。 また、Karmaは単純な発光マテリアルと比較して、これらの光源をより効率良くサンプリングする術を知っています。
詳細は、Geometry Light LOPを参照してください。
以前のバージョンでは、Karmaで発光シェーダを効率良くサンプリングするには、ユーザ側で“Efficient Emissive Sampling”ジオメトリ/マテリアルプロパティを追加する必要がありました。 この手法は現時点では廃止していませんが、アーティストは代わりにこの優れたLightAPI手法を採用することを推奨します。
Warning
現在のところ、Karmaはジオメトリライトに対してライトフィルタをサポートしていません。
インスタンス ¶
Houdini20.5以降、USDライブラリは、インスタンス化可能なライトをHydra経由でKarmaに渡します。 これによって、ライトをジオメトリと一緒にインスタンス化できるようになり、インスタンス化可能なリファレンスとポイントインスタンサーの両方で動作します。 現在のところ、Karmaは、Primvarを介して、または、Primvarを読み込むようにセットアップされたライトフィルタを介して、ライトを制御することができます。
デフォルトでは、Karmaは、lightネームスペース内のPrimvarを、インスタンス化されたライトのそれに呼応する入力にマッチさせます:
Primvar |
ライトの入力 |
型 |
|---|---|---|
|
|
float |
|
|
color3f |
別の名前のPrimvarを使用してライトを駆動させたい場合は、ライトフィルタがPrimvarを読み込むようにセットアップすることもできます。
LPEタグ ¶
ライトフィルタ ¶
ライトフィルタをライトに追加することで、照明要素に人為的な修正を加えることができます。
ライトフィルタは、Light Filter Libraryを使用して作成します。
Karmaは、ライトフィルタ内でのMaterialXシェーダの使用に対応しています。
Karma Light Projectは、これらのワークフローでは必要不可欠です。
|
距離に応じてライトの強度/色をどのように変化させるのか制御します。 |
|
|
Barndoor(観音開きの扉)を円錐ライトに追加します。 |
|
|
光源の色、強度、拡散反射/スペキュラを調整します。 |
|
|
テクスチャを介して光源を投影します。 |
|
|
ライトの投影空間内の“現在の光線”の深度とUV座標を用意します。 |
Warning
-
ライトフィルタが適用されたライトはライトツリーに自動で追加されません。
-
同じシーン内の多数のライトにライトフィルタを使用することは推奨されていません。
ビューポートのライティング ¶
デフォルトでは、ビューポートは、シーン内で見つかったライトを反映します。 ライトが見つからなかった場合、Hydraはヘッドライトを生成します。 このヘッドライトの種類には、カメラビューに沿ったディスタントライト、または、ドームライトがあります。 ビューポートの右側には、シーンライトをオーバーライドするためのボタンがあります。
-
利用可能なライティングモードは、選択したレンダーデリゲートによって異なります。
-
Disable Lighting は、すべてのシーンライトを無効にするので、発光シェーダを確認することができます。Houdiniビューポートでは、それは照明のない見た目になります。
-
自動ドームライトは、均一なホワイトカラーです。
HOUDINI_DEFAULT_DOMELIGHT_TEXTURE環境変数を使用することで、マップを適用することができます。
Karmaライトプロパティ ¶
グローバルプロパティは多くの場合、ライト単位で制御することができます。
これらの制御はinputs:karma:light:ネームスペースにあり、通常はそれに呼応するグローバルプロパティに対する乗数です。
乗算またはスケールさせることをプロパティで指定しなかった場合、そのプロパティは上書きとして機能します。
Spread ¶
Karmaでは、矩形ライトとディスクライトでのみspreadパラメータが有効です。
これをエリアライト投影に当てることで、ディスタントライトのような効果を出すことができます。
次項 カメラ