有关阴影的详细信息,请参见 Maya 中的阴影。
深度贴图阴影属性(Depth Map Shadow Attributes)
“深度贴图阴影属性”(Depth Map Shadow Attributes)控制由灯光产生的深度贴图阴影的外观。
有关深度贴图阴影的详细信息,请参见深度贴图阴影。
用于在灯光照明的区域内缩放深度贴图的角度(“聚焦”(Focus))或宽度(“宽度聚焦”(Width Focus))。(可以通过启用“使用自动聚焦”(Use Auto Focus)自动缩放深度贴图。)
因为“分辨率”(Resolution)是绝对分辨率(即像素数,而非每英寸像素数),所以有效地减小深度贴图的大小会增加深度贴图的分辨率和阴影的质量,而不会增加渲染时间。
当“使用自动聚焦”(Use Auto Focus)处于禁用状态时,“聚焦”(Focus)仅适用于点光源和聚光灯。滑块范围介于 0 到 360 之间。默认值为 90。
当“使用自动聚焦”(Use Auto Focus)处于禁用状态时,“宽度聚焦”(Width Focus)仅适用于平行光。有效范围为 0 到无限。默认值为 100。
滑块范围介于 0 到 1 之间,但可以输入更大的值。默认值是 0.001。
通过该选项,可以将灯光的深度贴图保存到磁盘,并在后续渲染过程中重用它们。通过将深度贴图保存到磁盘并稍后重用它们,可以减少渲染场景所花费的时间(请参见重用深度贴图)。深度贴图保存在 renderDate/depth 目录中。
Maya 保存到磁盘的深度贴图文件的名称。深度贴图的名称也可能包括场景名(如果“添加场景名称”(Add Scene Name)处于启用状态)、灯光名(如果“添加灯光名称”(Add Light Name)处于启用状态)以及帧扩展名(如果“添加帧扩展名”(Add Frame Ext)处于启用状态)。仅当“基于磁盘的深度贴图”(Disk Based Dmaps)设定为“覆盖现有深度贴图”(Overwrite Existing Dmap(s))或“重用现有深度贴图”(Reuse Existing Dmap(s))时,“阴影贴图文件名”(Shadow Map File Name)才可用。深度贴图保存在 renderDate/depth 目录中。默认的深度贴图名称为 depthmap。
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; }
如果启用,Maya 会为聚光灯生成单一深度贴图。如果“圆锥体角度”(Cone Angle)小于 90,则使用单一深度贴图便已足够,但如果“圆锥体角度”(Cone Angle)较大,“分辨率”(Resolution)可能不足以产生高质量的阴影(阴影边可能出项锯齿化)。如果“圆锥体角度”(Cone Angle)较大,请禁用“仅使用单一深度贴图”(Use Only Single Dmap)。默认情况下,“仅使用单一深度贴图”(Use Only Single Dmap)处于启用状态。
如果禁用,Maya 会为聚光灯生成最多五个独立的深度贴图。每个深度贴图将沿着以下六种可能的方向之一从灯光处开始延伸:X 轴正方向或负方向、Y 轴正方向或负方向以及 Z 轴正方向或负方向。每个深度贴图的分辨率为“分辨率”(Resolution)。
即使“圆锥体角度”(Cone Angle)较大,聚光灯还是会产生高质量的阴影。因为 Maya 会为灯光生成多个深度贴图,所以渲染时间也会增加。但是,您可以通过启用或禁用“使用 XYZ+- 深度贴图”属性来控制由 Maya 生成的深度贴图的数量和方向。
这些属性仅适用于聚光灯(如果“仅使用单一深度贴图”处于禁用状态)和点光源。所有属性的默认设置处于启用状态。
控制 Maya 为灯光生成的深度贴图的数量和方向。例如,如果“X+ 深度贴图”处于启用状态,则 Maya 会沿着 X 轴正方向为灯光生成深度贴图。
对于聚光灯,Maya 最多可以生成五个深度贴图,而对于点光源,最多可以生成六个深度贴图。但是,通常只需要灯光沿着几个特定方向投射阴影。通过在某些方向禁用深度贴图,可帮助减少渲染时间。例如,如果在场景的顶部存在某个点光源,并且所有阴影投射对象都位于该光源下方,则可以禁用“使用 Y+ 深度贴图”(Use Y+ Dmap)(假设场景使用 Y 轴向上坐标系统),因此 Maya 不会在 Y 轴正方向(向上)生成深度贴图。
光线跟踪阴影属性(Raytrace Shadow Attributes)
有关光线跟踪阴影的详细信息,请参见光线跟踪阴影。
通过对灯光的大小(“阴影半径”(Shadow Radius)或“灯光半径”(Light Radius))或角度(“灯光角度”(Light Angle))进行设置来控制阴影边的柔和度。例如,较大灯光所产生的阴影比较小灯光所产生的阴影柔和。灯光半径也用于灯光辉光,以确定是否遮挡/可见(针对点光源和聚光灯)。
“阴影半径”(Shadow Radius)属性仅适用于环境光。
“灯光半径”(Light Radius)属性仅适用于点光源、体积光和聚光灯。滑块范围介于 0(硬阴影)到 1(软阴影)之间。默认值为 0。
“灯光角度”(Light Angle)属性仅适用于平行光和体积光。滑块范围介于 0(硬阴影)到 180(软阴影)之间。默认值为 0。