Arnold 5.0 のクロージャを使用したシェーダの場合、ライト パス エクスプレッションは、特定の AOV にライトを出力するために使用されます。 シェーダから特定の AOV に書き込むのではなく、正規表現を使用して特定のライト パスを抽出するのに LPE を使用できます。

また、「Introduction to Light Path Expressions」のチュートリアルも用意されています。

組み込み LPE

次のライト パス エクスプレッションの AOV はビルトインです。

名前エクスプレッション 
RGBA
C.*
すべてのライト パスを備えたビューティ AOV
direct
C[DSV]L
すべてのサーフェスとボリュームからの直接光
indirect
C[DSV][DSVOB].*
すべてのサーフェスとボリュームからの間接光
emission
C[LO]
カメラから直接表示可能なライトと発光オブジェクト
background
CB 
バックグラウンド発光
diffuse
C<RD>.*
拡散反射
specular
C<RS[^'coat']>.*
鏡面反射
coat
C<RS'coat'>.*
コート反射
transmission
C<TS>.*
鏡面反射光の透過
sss
C<TD>.*
サブサーフェス散乱と拡散反射光の透過
volume
CV.*
ボリューム散乱
albedo
C[DSV]A
アルベド(反射)
   
diffuse_direct
C<RD>L
直接拡散反射光
diffuse_indirect
C<RD>[DSVOB].*
間接拡散反射光
diffuse_albedo
C<RD>A
拡散反射光アルベド
specular_direct
C<RS[^'coat']>L
直接鏡面反射光
specular_indirect
C<RS[^'coat']>[DSVOB].*
間接鏡面反射光
specular_albedo
C<RS[^'coat']>A
鏡面反射光アルベド
coat_direct
C<RS'coat'>L
直接コート光
coat_indirect
C<RS'coat'>[DSVOB].*
間接コート光
coat_albedo
C<RS'coat'>A
コート アルベド
transmission_direct
C<TS>L
透過/屈折直接光
transmission_indirect
C<TS>[DSVOB].*
透過/屈折間接光
transmission_albedo
C<TS>A
透過アルベド
sss_direct
C<TD>L
SSS と拡散反射光透過直接光
sss_indirect
C<TD>[DSVOB].*
SSS と拡散反射光透過間接光
sss_albedo
C<TD>A
SSS と拡散反射光透過アルベド
volume_direct
CVL
ボリューム直接光
volume_indirect
CV[DSVOB].*
ボリューム間接光
volume_albedo
CVA
ボリューム アルベド

ビューティ AOV の合成

RGBA ビューティ AOV は、各照明のパーツが含まれている小さな AOV に分割することができます。 コンポジットでは、これらの AOV を個別に修正して追加し、フル ビューティ AOV を取得することができます。

AOV を増やすとコンポジットをさらに高度にコントロールできますが、処理に手間がかかるようになります。また、特にライト グループと結合されている場合に、必要となるメモリとディスクの容量がさらに増えます。 フル ビューティ AOV のための追加 AOV のサンプル セットは次のとおりです。

  • direct、indirect、emission、background

  • diffuse、specular、coat、transmission、sss、volume、emission、background

  • diffuse_direct、diffuse_indirect、specular_direct、specular_indirect、coat、transmission、sss、volume、emission、background

ビューティ AOV に必要なのは、そのような AOV を足し合わせることだけです。ビューティ AOV の再構築にアルベド AOV は不要ですが、diffuse_albedodiffuse を割ることによって、サーフェステクスチャなしのライティングのみを取得したり、またはテクスチャのディテールを損なわずにライティングのノイズのみを除去するために使用できます。

RGBAdirect + indirect + emission + background
RGBAdiffuse + specular + sss + volume + emission + background

構文

すべての式は、カメラ イベントの C から始める必要があります。 その後は、ライト、オブジェクト、またはバックグラウンドがヒットするまでゼロや散乱イベントを続けることができます。 構文は正規表現と似ています。 次のイベントとオペレータがサポートされています。

イベント

記号 
CCamera
Lすべてのライトからの発光
<L.'groupname'>AOV groupname のライトからの発光
<L.'default'>AOV グループが割り当てられていないライトからの発光
Oサーフェスまたはボリューム オブジェクトの発光
Bバックグラウンド発光
Aアルベド

散乱イベント

記号 
D拡散反射、透過、またはサブサーフェス散乱
<RD>拡散反射
<TD>拡散反射光透過またはサブサーフェス散乱
S鏡面反射または屈折
<RS>鏡面反射
<TS>鏡面反射光屈折
Vボリューム散乱

オペレータ

エクスプレッション 
ABA の後に B
[ABC]A、B、または C
((AB)|(CD))AB または CD
[^A]A を除く任意のイベント
A*0 または複数の A イベント
A+1 または複数の A イベント
.あらゆるイベント
'myevent'カスタム イベント

カスタム エクスプレッション

カスタムなライト パス エクスプレッションは options.light_path_expressions に追加されるため、options.outputs の AOV として使用できます。

異なる動作が必要な場合は、カスタム エクスプレッションで同じ名前のビルトインの式を上書きできます。

light_path_expressions 2 1 STRING
	"caustics CDS.*"
	"diffuse_albedo CDA"
outputs 3 1 STRING
	"RGBA RGBA filter driver"
	"caustics RGB filter driver"
	"diffuse_albedo RGB filter driver"

ライト グループ

<L.'groupname'> 構文に加えて、ビルトインまたはカスタムの LPE を複数の AOV に分割し、light.aov パラメータで割り当てられた特定の AOV グループを使用してライトのサブセットを出力できます。 このため、options.outputs の LPE AOV 名に接尾語を追加する必要があります。

outputs "diffuse RGB filter driver"            # all lights in one AOV
outputs "diffuse_* RGB filter driver"          # output multiple AOVs, one for each light group
outputs "diffuse_groupname RGB filter driver"  # only light in AOV group "groupname"
outputs "diffuse_default RGB filter driver"    # only lights with no AOV group assigned

カスタム ラベル

BSDF ローブ、BSSRDF、発光クロージャは、カスタム ラベルでタグ付けして個別の AOV に出力できます。

ビルトイン シェーダの場合、標準ヘアには「hair」、標準サーフェス コートには「coat」というラベルが付けられています。 その他すべてのビルトイン シェーダ コンポーネントにはラベルがありません。 このため、たとえば次の式が使用できます。

light_path_expressions 2 1 STRING
	"hair C'hair'.*"
    "specular_except_coat C<RS[^'coat']>.*"

カスタム シェーダで BSSRDF と発光などのラベル付けを行い、次のような式を使用できます。

light_path_expressions 2 1 STRING
	"sss_skin C<TD'skin'>.*"
    "emission_fire C<O.'fire'>"

 

 

  • No labels
Privacy settings / Do not sell my personal information / Privacy/Cookies