シャドウの詳細については、 Maya のシャドウを参照してください。
デプス マップ シャドウ アトリビュート(Depth Map Shadow Attributes)
デプス マップ シャドウ アトリビュートは、ライトによって生成されるデプス マップ シャドウの外観を制御します。
デプス マップ シャドウの詳細については、 デプス マップ シャドウを参照してください。
オフに設定すると、デプス マップ内の個々のピクセルごとに、ライトとライトに最も近いシャドウを投影するサーフェス間の距離が計算されます。シャドウを投影する別のサーフェスとライト間の距離がデプス マップの距離よりも大きい場合は、そのサーフェスはシャドウの投影を受けます。
デプス マップのピクセルは、シーンの大きなエリアに近いものに変換されてしまう場合があります。解像度の値を大きくするとこの現象を緩和できますが、問題はただ小さくなるだけでなくなりません。またこれによりレンダリング時間が長くなります。そのような場合に適切な解決方法は、中間距離の使用(Use Mid Dist)をオンに設定することです。
オンに設定すると、デプス マップ内の個々のピクセルごとに、ライトと、ライトに最も近いシャドウを投影するサーフェスとの距離、およびライトと、2 番目にライトに近いサーフェスとの距離が計算されて、この 2 つの距離が平均されます。
シャドウを投影する別のサーフェスとライト間の距離がデプス マップの距離よりも大きい場合は、そのサーフェスはシャドウの投影を受けます。中間距離の使用(Use Mid Dist)のデフォルト設定はオンです。
オンに設定すると、デプス マップのサイズが自動的に調整され、ライトで照らされる全領域のうち、シャドウを投影するオブジェクトが存在する領域だけがデプス マップの影響を受けるようになります。
たとえば、シャドウを投影するオブジェクトがスポット ライトのビームの中心部分だけに存在する場合は、それらのオブジェクトが占める領域だけがデプス マップによって覆われます。解像度は絶対的なレゾリューション値(1 インチあたりのピクセル数 ではなくピクセルの総数)であるため、デプス マップのサイズを小さくすると、レンダリング時間は増加することなく、デプス マップのレゾリューションとシャドウの質が向上します。
オフの場合は、焦点(Focus)アトリビュート(ポイント ライトとスポット ライトの場合)または焦点幅(Width Focus)アトリビュート(ディレクショナル ライトの場合)を使用し、ライトで照らされる領域の内部でデプス マップのサイズを手作業で調整することができます。自動焦点の使用(Use Auto Focus)のデフォルト設定はオンです。
ライトで照らされる領域内部でデプス マップのサイズを調整するための角度(焦点)または幅(焦点幅) (自動焦点の使用(Use Auto Focus)をオンに設定すると、デプス マップのサイズが自動的に調整されます)。
解像度は絶対的なレゾリューション値(1 インチあたりのピクセル数 ではなくピクセルの総数)であるため、デプス マップのサイズを小さくすると、レンダリング時間は増加することなく、デプス マップのレゾリューションとシャドウの質が向上します。
焦点(Focus)は、自動焦点の使用(Use Auto Focus)がオフの場合にポイント ライトとスポット ライトだけで利用できるアトリビュートです。スライダ レンジは 0~ 360 です。デフォルト値は 90 です。
焦点幅(Width Focus)は、自動焦点の使用(Use Auto Focus)がオフの場合にディレクショナル ライトだけで利用できるアトリビュートです。有効な範囲は 0 ~無限大です。デフォルト値は 100 です。
スライダ レンジは 0 ~ 1 ですが、もっと大きい値を入力することができます。デフォルト値は 0.001 です。
ディスク ベースのデプス マップ(Disk Based Dmaps)
ライトのデプス マップをディスクに保存し、それ以降のレンダー時に同じデプス マップを再利用できるようにします。デプス マップをディスクに保存して後で再利用すれば、シーンのレンダリング時間を短縮することができます( デプス マップを再利用するを参照してください)。デプス マップは renderDate/depth ディレクトリに保存されます。
ディスクに保存されるデプス マップ ファイルの名前。このファイル名には、シーン名(シーン名の追加(Add Scene Name)がオンの場合)、ライト名(ライト名の追加(Add Light Name)がオンの場合)、フレーム拡張子(フレーム拡張子の追加(Add Frame Ext)がオンの場合)を含めることができます。シャドウ マップ ファイルの名前アトリビュートを使用できるのは、ディスク ベースのデプス マップ アトリビュートが既存のデプス マップの上書きまたは既存のデプス マップの再使用に設定されている場合に限られます。デプス マップは renderDate/depth ディレクトリに保存されます。デフォルトのデプス マップ ファイル名は depthmap です。
利用できるのは、ディスク ベースのデプス マップ(Disk Based Dmaps)が既存のデプス マップの再使用(Reuse Existing Dmap(s))に設定されている場合に限られます。ディスクからデプス マップを読み取る場合に、そのデプス マップを更新するために実行されるマクロ スクリプトのパス名。マクロの使用の主な使用目的はトラブルシューティング(デバッグ)です。
マクロ スクリプトには、ディスク上のデプス マップの作成または更新に必要な全情報が記述されます。次のサンプルは Perl で書かれています。このマクロによってデプス マップの作成または後処理(更新)が行われます。任意の高さまたは幅のデプス マップを変更または作成できます。IFF Z- デプス マップ ファイルで指定されたサイズが調べられ、使用されます。デプス マップがディスクから読み取られるたびに、マクロが呼び出されます。たとえば、ポイント ライトの場合はマクロが何回か呼び出されて、最大 6 個のデプス マップが操作されます。
mapname=FullPathMapName,middistmapname=FullPathMidDistMapName,
lightname=LightShapeNameUsed,pathname=ShadowMapPathUsed,
readanimextname=RedExtUsed,curranimextname=CurrExt,
lastdumpanimextname=lastExtDumped,bias=biasValue
#!/bin/perl
# # Example of a callback macro called before reading shadow maps from disk #
# # One argument with fields separated by '&'
# each field being 'variableName=variableValue
#
# Creates a vartab hash table out of the ARGV[0] argument
#
# print "\n------------------\n",$ARGV[0],"\n------------------\n";
if( $#ARGV == 0 )
{
@fields = split( /\,/, $ARGV[0] );
$nbfields = $#fields + 1;
foreach $field( @fields )
{
@varvalue = split( /\=/, $field );
$vartab{$varvalue[0]} = $varvalue[1];
}
$mapname = $vartab{"mapname"};
$middistmapname = $vartab{"middistmapname"};
$lightname = $vartab{"lightname"};
$pathname = $vartab{"pathname"};
$readanimextname = $vartab{"readanimextname"};
$curranimextname = $vartab{"curranimextname"};
$lastdumpanimextname = $vartab{"lastdumpanimextname"};
$bias = $vartab{"bias"};
print "\tmapname = ",$mapname,"\n";
print "\tmiddistmapname = ",$middistmapname,"\n";
print "\tlightname = ",$lightname,"\n";
print "\tpathname = ",$pathname,"\n";
print "\treadanimextname = ",$readanimextname,"\n";
print "\tcurranimextname = ",$curranimextname,"\n";
print "\tlastdumpanimextname = ",$lastdumpanimextname,"\n";
print "\tbias = ",$bias,"\n";
#
# List the shadow map files to be postprocessed
#
print "\n";
if ( -e $mapname ) {
print "PostProcess shadow depth map file ",$mapname,"\n";
}
if ( -e $middistmapname ) {
print "PostProcess shadow depth map file ",$middistmapname,"\n";
}
#
# return 0 to confirm everything is ok
#
exit 0;
}
オンに設定すると、スポット ライト用に単一のデプス マップが生成されます。通常、コーン アングルが 90 度未満の場合は単一のデプス マップで十分ですが、コーン アングルが 90 度を越えると、解像度の値が十分に大きくないために質の高いシャドウが作成されない場合があります(シャドウのエッジがギザギザに見えます)。コーン アングルの値が大きい場合は、単一のデプス マップのみを使用をオフにしてください。単一のデプス マップのみを使用のデフォルト設定はオンです。
オフの場合は、各スポット ライト用に最大 5 個のデプス マップが生成されます。個々のデプス マップは 6 方向(正負の X 軸方向、正負のY軸方向、正負のZ軸方向)のうち 1 つの方向にあるライトを基点として広がります。各デプス マップのレゾリューションは、解像度で指定される値になります。
スポット ライトはコーン アングルが大きい場合でも質の高いシャドウを生成します。ライト用に複数のデプス マップが作成されるために、レンダリング時間が長くなる場合があります。ただし、XYZ+- マップの使用(Use XYZ+- Map)アトリビュートのオン/オフを切り替えて、デプス マップの方向と数を制御することができます。
これらのアトリビュートは、スポット 単一のデプス マップのみを使用(Use Only Single Dmap)がオフの場合)とポイント ライトだけで利用できます。これらのアトリビュートのデフォルト設定はオンです。
ライト用に生成されるデプス マップの方向と数を制御します。たとえば、X+ マップの使用(Use X+ Map)をオンに設定すると、正のX軸方向にライト用のデプス マップが生成されます。
Maya では、スポット ライト用に最大 5 個のデプス マップ、ポイント ライト用に最大 6 個のデプス マップを生成することができます。ただし、通常は、いくつかの特定の方向だけにシャドウを投影すれば十分です。特定の方向のデプス マップをオフにすると、レンダリング時間が短縮されます。たとえば、シーンの一番上にポイント ライトがあり、影を落とすすべてのオブジェクトがライトの下にある場合、Y+ マップの使用(Use Y+ Map)をオフに設定することができます(シーンでは Y の正の座標系が使用されていると想定)。その場合、Maya は Y 軸の正の方向(上)にはデプスマップを生成しません。
レイ トレース シャドウ アトリビュート(Raytrace Shadow Attributes)
ライトによって生成されるレイ トレース シャドウの外観を制御します。
レイ トレース シャドウの詳細については、 レイ トレース シャドウを参照してください。
ライトのサイズ(シャドウの半径、ライトの半径)または角度(ライト角度)を指定して、シャドウのエッジの柔らかさを調整します。たとえば、ライトのサイズを大きくすると、ライトが小さい場合よりもソフトなエッジのシャドウが生成されます。ライト グローで遮断/可視性を定義するときにもライトの半径が使用されます(ポイント ライトとスポット ライトの場合)。
シャドウの半径アトリビュートは、アンビエント ライトでのみ使用できます。
ライトの半径アトリビュートは、ポイント ライトとスポット ライトでのみ使用できます。スライダ レンジは 0(ハード シャドウ)~ 1(ソフト シャドウ)です。デフォルト値は 0 です。
ライト角度はディレクショナル ライトだけで利用できるアトリビュートです。スライダ レンジは 0(ハード シャドウ)~ 180(ソフト シャドウ)です。デフォルト値は 0 です。