阴影

阴影着色器只能直接或间接地在现象中附加到材质语句中的 shadow 语句。当阴影光线遇到遮挡对象时,将调用阴影着色器;遮挡对象的阴影着色器控制光线的透射量。阴影着色器是特殊着色器,原因是其结果颜色也是输入颜色,这意味着输出不能附加到其他着色器参数,因为此类附加是单向的,只能由输出附加至参数。在现象中,阴影着色器只能附加到现象内的材质,或者,如果现象附加到某种材质的阴影着色器,则附加到现象根。

透明度

透明阴影着色器可用于为对象指定(可能是透明的)颜色,并使该对象对阴影光线透明。小于 1 的颜色 Alpha 或非零透明度会使阴影光线透射该对象。

mib_shadow_transparency
color "mib_shadow_transparency" (
    color           "color",
    color           "transp",
    integer         "mode",
    array light     "light")
color
是对象的 RGBA 颜色,将倍增所透射灯光的颜色。

transp
是 RGB 透明度。值 0 表示不透明;值 1 表示完全透明。在内部,透明度 RGB 组件与颜色的 Alpha 值相乘后才能使用。

mode
控制灯光列表的含义:全部 (0),包含 (1),排除 (2),或没有灯光依存关系 (3)。

light
是灯光实例的列表。这些灯光实例进行循环以检测当前灯光(正在为其计算阴影)是否会导致从该对象投射阴影。这可使材质控制为哪些灯光投射阴影。如果模式是 0,请考虑灯光列表参数中的每个灯光。如果模式是 1,请考虑全局灯光列表中与灯光列表参数中的灯光对应的所有灯光(包含模式)。如果模式是 2,请考虑全局灯光列表中与灯光列表参数中的灯光不对应的所有灯光(排除模式)。如果模式为 3,则将忽略灯光列表,并且始终投射阴影(比具有空灯光列表情况下的模式 2 更高效)。

Copyright © 1986, 2015 NVIDIA ARC GmbH. All rights reserved.