mental ray 支持光照贴图。这是对某些对象(其材质包含光照贴图着色器)运行的一个两阶段过程,用于计算照明或其他信息,然后将结果写入纹理或其他位置。第一个阶段是在顶点模式下为对象的每个顶点调用光照贴图着色器,然后收集返回的信息。第二个阶段是在输出模式下调用光照贴图着色器,通过循环该对象的所有三角形使用所收集的信息绘制纹理或其他输出数据。
基础着色器库中的光照贴图着色器收集直接和间接照明,并根据它创建可写的纹理贴图。尽管 mental ray 只能识别一个光照贴图着色器,基础光照贴图着色器还是分割为用于处理输出阶段的主着色器和一个单独用于顶点阶段的着色器(由主着色器调用)。这样更易于仅使用用户编写的着色器替换一个阶段。
光照贴图照明采样着色器是一个简单的颜色着色器,用于对曲面灯光流入密度采样。该着色器可以聚集直接照明和(可选)间接照明。不应在材质中使用;而是应该将其 指定给 mib_lightmap_write 着色器的 input 参数。
color "mib_lightmap_sample" ( boolean "indirect", integer "flip", array light "lights")
光照贴图生成着色器是主要的光照贴图着色器。该着色器收集三角形顶点的几何信息和纹理坐标,然后写入每个三角形的三角形纹理区域。对于三角形覆盖的纹理的每个像素,调用一个采样函数并将结果写入该着色器。使用 lightmap 关键字将光照贴图着色器附加到某种材质。
struct { vector "point", vector "normal", vector "tex" } "mib_lightmap_write" ( color texture "texture", vector texture "coord", color texture "input", integer "fg_mode")
-1 | 禁用 |
0 | 在(细分几何体的)每个顶点上强制放置最终聚集点 |
1 | 在每个纹理像素(纹理元素)上强制放置最终聚集点 |
2 | ...每两个纹理元素 |
3 | ...每三个纹理元素(默认) |
n (n > 3) | ...每 n 个纹理元素 |
Copyright © 1986, 2015 NVIDIA ARC GmbH. All rights reserved.