On this page

概要

Karmaのライティングは、USDに組み込まれたライト関連の機能に大きく依存しています。 この章では、USDライティングの基本とKarma固有のプロパティについて説明します。

USDライト

USDのUsdLuxモジュールには、ライティングツールファミリーが用意されています。 用意されている基本的なライティングタイプは次のとおりです:

CylinderLight

円柱形の光源。

DiskLight

円形の光源。

DistantLight

無限に遠い光源。

DomeLight

無指向性の環境光源。

Point

無限に小さい光源。

Portal

ドームライトの窓を備えたジオメトリ。

RectLight

長方形の光源。

SphereLight

球形の光源。

さらに、USDは、APIスキーマを介してメッシュまたは他のジオメトリをライトに変換することができます:

LightAPI

ジオメトリプリミティブをライトに変換します。

MeshLightAPI

メッシュプリミティブをライトに変換します。

VolumeLightAPI

ボリュームプリミティブをライトに変換します。

以上が、USDで用意されている光源一式です。

共通ライトプロパティ

ライトには、現実世界のライティングを模倣する様々なプロパティがあり、アーティスティックなコントロールが用意されています。 ディレクショナルライトは、デフォルトではローカルのマイナスZ軸方向に光を放出するように合わせられています。 すべてのライトは移動、回転、スケールさせることができます。

Base Lights

CylinderLight

Height

  • ローカルX軸に沿ったライトの長さ。

Radius

  • ローカルX軸を中心としたチューブの半径。

Transform

  • 完全にトランスフォーム可能。

DiskLight

Radius

  • ディスクの半径。

Transform

  • 完全にトランスフォーム可能。

DistantLight

Angle

  • 光の角度。

Transform

  • 完全にトランスフォーム可能。ただし回転のみライトに影響します。

DomeLight

Transform

  • 完全にトランスフォーム可能。ただし回転のみライトに影響します。

Mesh Light (MeshLightAPI)

Transform

  • 完全にトランスフォーム可能。

Other

Point Light

Transform

  • 完全にトランスフォーム可能。ただし、回転/スケールにはシェイププロパティ( spotlight など)の適用が必要です。

Portals

Transform

  • 完全にトランスフォーム可能。

その他

  • Render Geometry SettingsはPrimをポータルソースとしてマークします。

  • Render Geometry Settingsでは、ポータルが影響するドームライトを指定することもできます。

RectLight

Width

  • ローカルX軸に沿ったサイズ。

Height

  • ローカルY軸に沿ったサイズ。

Transform

  • 完全にトランスフォーム可能。

SphereLight

Radius

  • 球の半径。トランスフォームを使用すると非均一の球を取得できます。

Transform

  • 完全にトランスフォーム可能。

Karma Lights

これらはSolarisで追加されたライトで、特にKarma用のライトです。

KarmaSkyDomeLight

Solar Altitude

  • 空における太陽の角度。

Solar Azimuth

  • Up軸を基準とした太陽の位置。

Turbidity

  • 大気中の埃や塵の量。

Transform

  • 完全にトランスフォーム可能ですが、回転のみがライトに影響を与えます。

Karma Physical Sky

KarmaSkyDomeライトとDistantライトと特別なプロパティの組み合わせ。

詳細は、ノードのヘルプカードを参照してください。

ライトツリー

Karmaは、たくさんのライトを含んだシーンをもっと効率的にレンダリングできるように、自動的に ライトツリー を構築します。 これによって、Karmaはどのライトを最も多くサンプリングするべきで、どのライトが高速に解が求まりそうなのかを効率的に判断することができます。 ライトに対してこれを Uniform に設定すると、常にそのライトがサンプリングされるようになります。

一部のタイプのライト、または、特定の構成のライトは、ライトツリーに追加されません。 ドームライト、IESプロファイルとライトフィルタが適用されたライトは、ライトツリーから除外されます。

詳細は、サンプリング>ライトツリーを参照してください。

ジオメトリライト

Houdini21.0以降、Karmaは、USDのLightAPI手法によるジオメトリライトをサポートしています。 これは、ジオメトリを実際のライトに変換し、他のライトタイプと同じように動作させます。 また、Karmaは単純な発光マテリアルと比較して、これらの光源をより効率良くサンプリングする術を知っています。

詳細は、Geometry Light LOPを参照してください。

以前のバージョンでは、Karmaで発光シェーダを効率良くサンプリングするには、ユーザ側で“Efficient Emissive Sampling”ジオメトリ/マテリアルプロパティを追加する必要がありました。 この手法は現時点では廃止していませんが、アーティストは代わりにこの優れたLightAPI手法を採用することを推奨します。

Warning

現在のところ、Karmaはジオメトリライトに対してライトフィルタをサポートしていません。

インスタンス

インスタンス単位での変更なし
ランダムな Intensity
ランダムな ColorIntensity

Houdini20.5以降、USDライブラリは、インスタンス化可能なライトをHydra経由でKarmaに渡します。 これによって、ライトをジオメトリと一緒にインスタンス化できるようになり、インスタンス化可能なリファレンスとポイントインスタンサーの両方で動作します。 現在のところ、Karmaは、Primvarを介して、または、Primvarを読み込むようにセットアップされたライトフィルタを介して、ライトを制御することができます。

デフォルトでは、Karmaは、lightネームスペース内のPrimvarを、インスタンス化されたライトのそれに呼応する入力にマッチさせます:

Primvar

ライトの入力

primvars:light:intensity

inputs:intensity

float

primvars:light:color

inputs:color

color3f

別の名前のPrimvarを使用してライトを駆動させたい場合は、ライトフィルタがPrimvarを読み込むようにセットアップすることもできます。

LPEタグ

Karmaは、Light Path Expressions用のカスタムタグに対応しています。 ライトに対してカスタムタグを設定するには、Light LOPのKarmaプロパティを使用します。 LPE Tag LOPを使用してLPEタグを追加することもできます。

詳細は、Light Path Expressionsを参照してください。

ライトフィルタ

ライトフィルタをライトに追加することで、照明要素に人為的な修正を加えることができます。 ライトフィルタは、Light Filter Libraryを使用して作成します。 Karmaは、ライトフィルタ内でのMaterialXシェーダの使用に対応しています。 Karma Light Projectは、これらのワークフローでは必要不可欠です。

Karma Light Filter Attenuation

距離に応じてライトの強度/色をどのように変化させるのか制御します。

Karma Light Filter Barndoor

Barndoor(観音開きの扉)を円錐ライトに追加します。

Karma Light Filter Gel

光源の色、強度、拡散反射/スペキュラを調整します。

Karma Light Filter Gobo

テクスチャを介して光源を投影します。

Karma Light Filter Projection

ライトの投影空間内の“現在の光線”の深度とUV座標を用意します。

Warning

  • ライトフィルタが適用されたライトはライトツリーに自動で追加されません。

  • 同じシーン内の多数のライトにライトフィルタを使用することは推奨されていません。

ビューポートのライティング

デフォルトでは、ビューポートは、シーン内で見つかったライトを反映します。 ライトが見つからなかった場合、Hydraはヘッドライトを生成します。 このヘッドライトの種類には、カメラビューに沿ったディスタントライト、または、ドームライトがあります。 ビューポートの右側には、シーンライトをオーバーライドするためのボタンがあります。

  • 利用可能なライティングモードは、選択したレンダーデリゲートによって異なります。

  • Disable Lighting は、すべてのシーンライトを無効にするので、発光シェーダを確認することができます。Houdiniビューポートでは、それは照明のない見た目になります。

  • 自動ドームライトは、均一なホワイトカラーです。HOUDINI_DEFAULT_DOMELIGHT_TEXTURE環境変数を使用することで、マップを適用することができます。

Karmaライトプロパティ

グローバルプロパティは多くの場合、ライト単位で制御することができます。 これらの制御はinputs:karma:light:ネームスペースにあり、通常はそれに呼応するグローバルプロパティに対する乗数です。 乗算またはスケールさせることをプロパティで指定しなかった場合、そのプロパティは上書きとして機能します。

Spread

Spread 1.0
Spread 0.5
Spread 0.2
Spread 0.05

Karmaでは、矩形ライトとディスクライトでのみspreadパラメータが有効です。 これをエリアライト投影に当てることで、ディスタントライトのような効果を出すことができます。

次項 カメラ

Karmaユーザガイド

Appendices