环境

这些着色器从映射到有限或无限距离的颜色纹理返回颜色。它们对于将背景图版或前景图版添加到已渲染的场景非常有用。环境必须用于环境着色器;叠加必须用于镜头着色器;纹理必须用于场景中平面或其他对象上的纹理着色器或材质着色器。

球形环境

给定纹理着色器,假定它生成的纹理包裹在围绕场景的无限球体上,则对纹理求值并返回颜色。这对于环境着色器非常有用。

mib_lookup_spherical
color "mib_lookup_spherical" (
    vector          "dir",
    scalar          "rotate",
    color texture   "tex")
dir
要采样的方向。如果连接到 mib_texture_vector,select 值为 -10 会非常有用。它应该在世界空间中指定。如果是 null 向量,在转化为世界空间后会使用光线方向。

tex
要在计算的坐标处查找的纹理或着色器。

立方体环境

与球形环境着色器相同,但接受在无限立方体上映射一个或六个纹理。这对于环境着色器非常有用。

mib_lookup_cube1
color "mib_lookup_cube1" (
    vector          "point",
    vector          "dir",
    vector          "size",
    color texture   "tex")
mib_lookup_cube6
color "mib_lookup_cube6" (
    vector          "point",
    vector          "dir",
    vector          "size",
    color texture   "tex_mx",
    color texture   "tex_px",
    color texture   "tex_my",
    color texture   "tex_py",
    color texture   "tex_mz",
    color texture   "tex_pz")
point
查看位置。

dir
要采样的方向。如果连接到 mib_texture_vector,select 值为 -10 会非常有用。如果是 null 向量,则使用光线方向。

size
长方体的大小。

tex
要在计算的坐标处查找的纹理。一个纹理包含所有六个面;它等于单个面所需扫描线数量的六倍,子纹理按以下顺序自上而下堆叠:-x、+x、-y、+y、-z、+z。

tex_**
左 (mx)、右 (px)、底 (my)、顶 (py)、背面 (mz) 和正面 (pz) 对应的六个纹理。“P”和“M”代表加号和减号。

圆柱形环境

此环境着色器主要用于将常规图案投影到几何体,例如,用于实现曲面质量控制。圆柱体没有端面,因此可能会出现光线不投射到圆柱体的情况。圆柱体由变换(从世界空间变换到规范圆柱体空间)和允许剪切部分圆柱体的两个标量进行定义。如果 beginend 都为零,会选择完整圆柱体。

mib_lookup_cylindrical
color "mib_lookup_cylindrical" (
    transform       "xform",
    scalar          "begin",
    scalar          "end",
    color texture   "tex" )
xform
从世界空间变换到规范圆柱体空间。规范圆柱体的 Z 轴为主轴,将在 Z 轴上从 -1 延伸到 +1,并且半径为 1。如果 tex 是程序纹理,则计算相交点的纹理坐标:Z = -1 映射到 v = 0Z = +1 映射到 v = 1。u 的纹理坐标将绕 Z 轴沿逆时针方向计算,其中,+X 映射到 u = 0-X 映射到 0.5。

begin
指定圆柱体开始的起始角度(以弧度表示)。指定的角度基于 +X = 0 弧度。

end
指定圆柱体柱体应结束的结束角度。

tex
要在计算的坐标处查找的纹理或着色器。

背景

给定纹理着色器,将其放置在场景的背景中,以便纹理的边与渲染图像的边对齐。可以应用因子来拉伸和平移纹理,以允许镜头远离中心弯曲光线。此环境的目的是插入背景图版。返回颜色。这在三种不同类型的着色器中非常有用:

mib_lookup_background
color "mib_lookup_background" (
    vector          "zoom",
    vector          "pan",
    boolean         "torus_u",
    boolean         "torus_v",
    color texture   "tex")
zoom
按 zoom 向量的 X 和 Y 分量给定的因子放大纹理图像。未使用 Z 分量。如果分量是 0,则默认设置为 1。

pan
按渲染图像大小的零点几向侧边移动纹理。未使用 Z 分量。例如,如果 X 分量是 0.1,渲染图像背景左侧的 10% 会保留为空。

torus_*
如果为 true,则在各自的方向上不停地重复纹理。如果为 false,则在纹理图像之外返回透明黑色。

tex
要在计算的坐标处查找的纹理或着色器。将仅在范围 [0 ... 1) 内采样。


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