参与介质中的光子跟踪

为计算参与介质中的体积焦散和全局照明,介质需要使用体积光子着色器。体积光子着色器通常与对应的体积着色器具有相同的名称,但附加有“_photon”。有关体积中光子跟踪的详细信息可以在 mental ray 手册中找到。

体积光子着色器

体积光子着色器与 parti_volume 相匹配。它具有相同的参数。

parti_volume_photon
color "parti_volume_photon" (
    integer         "mode",
    color           "scatter",
    scalar          "extinction",
    scalar          "r",
    scalar          "g1",
    scalar          "g2",
    scalar          "height",
    scalar          "nonuniform",
    scalar          "min_step_len",
    scalar          "max_step_len",
    scalar          "light_dist",
    integer         "min_level",
    boolean         "no_globil_where_direct",
    array light     "lights")
scatter
散射介质的颜色。该参数用以确定被介质散射的间接灯光的颜色。它还用作光子体积贴图中光子的光子能量的倍增。请注意,在 mental ray 中,有三种数据结构可用于存储光子:GI、焦散和体积光子光子贴图,可以单独对前两种结构进行颜色修正。
min_level
存储光子的最小折射级别。对于 GI 光子和焦散光子,处理方式是不同的。对于 GI 光子,使用全局选项 photon_refraction_depth 设定最大级别。焦散光子存储则完全不同。它取决于多个变量。首先,可以选择设定或不设定全局选项 photon autovolume。如果未设定该全局选项,仅在至少发生一次折射或反射后才存储焦散光子。如果设定了该全局选项,则在光源位于体积内部时即会存储焦散光子。如果光源位于体积外部,仅在至少发生一次折射或反射后才存储焦散光子。
light_dist
no_globil_where_direct
lights
已忽略,因为光子着色器中无直接照明。

所有其他参数(尤其是 extinction)均需要与 parti_volume 的参数相同,以在算法中保持一致性。

透明光子

已弃用transmat_photon 是与 transmat 相匹配的材质光子着色器,用于不是 mental ray 壳线 对象的参与介质或体积的封闭曲面。它只是继续沿相同方向跟踪入射光子,且不与当前对象交互。这样的体积容器本身应对光子不可见。

transmat_photon
color "transmat_photon" ()

没有任何参数。


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