环境
这些着色器从映射到有限或无限距离的颜色纹理返回颜色。它们对于将背景图版或前景图版添加到已渲染的场景非常有用。环境必须用于环境着色器;叠加必须用于镜头着色器;纹理必须用于场景中平面或其他对象上的纹理着色器或材质着色器。
球形环境
给定纹理着色器,假定它生成的纹理包裹在围绕场景的无限球体上,则对纹理求值并返回颜色。这对于环境着色器非常有用。
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”代表加号和减号。
圆柱形环境
此环境着色器主要用于将常规图案投影到几何体,例如,用于实现曲面质量控制。圆柱体没有端面,因此可能会出现光线不投射到圆柱体的情况。圆柱体由变换(从世界空间变换到规范圆柱体空间)和允许剪切部分圆柱体的两个标量进行定义。如果 begin 和 end 都为零,会选择完整圆柱体。
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 = 0,Z = +1 映射到 v = 1。u 的纹理坐标将绕 Z 轴沿逆时针方向计算,其中,+X 映射到 u = 0,-X 映射到 0.5。
- begin
- 指定圆柱体开始的起始角度(以弧度表示)。指定的角度基于 +X = 0 弧度。
- end
- 指定圆柱体柱体应结束的结束角度。
- tex
- 要在计算的坐标处查找的纹理或着色器。
背景
给定纹理着色器,将其放置在场景的背景中,以便纹理的边与渲染图像的边对齐。可以应用因子来拉伸和平移纹理,以允许镜头远离中心弯曲光线。此环境的目的是插入背景图版。返回颜色。这在三种不同类型的着色器中非常有用:
- 环境着色器可以将背景图版置于无限的空间中。
- 镜头着色器可以通过首先计算背景着色器,然后投射眼光线(仅当返回的 Alpha 小于 1 时)并使结果弯曲,将图版置于整个场景前。
- 如果场景中 XY 轴对齐平面上的材质着色器首先计算背景着色器,然后仅当返回的 Alpha 小于 1 时投射透明光线并使结果弯曲,则这些着色器将图版插入到平面的 Z 坐标。
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.