这些着色器依赖于上述的一个纹理空间映射函数,以生成 coord 纹理顶点,并生成该顶点的颜色。生成 2D 映射的着色器仅使用纹理顶点的 x 和 y 分量。
其中大多数着色器返回颜色。由于颜色可以指定给其他着色器的标量参数,因此这些着色器可以与基于贴图标量从颜色扩散中选择颜色的混合着色器结合使用。这将与纹理着色器的淡出和平滑参数进行交互。
在半开间隔 [0, 1)中查找纹理图像。此间隔外的点将映射到 R=G=B=A=0。
color "mib_texture_lookup" ( color texture "tex", vector "coord")
基本上,这是着色器界面函数的 mi_lookup_color_texture 系列的前端。
color "mib_texture_lookup2" ( color texture "tex", scalar "factor")
mib_texture_lookup 的替代项。它使用 state 中的第一组纹理坐标,而不是作为连接的参数获得它们。
使用椭圆过滤查找纹理图像。
color "mib_texture_filter_lookup" ( color texture "tex", vector "coord", scalar "eccmax", scalar "maxminor", scalar "disc_r", boolean "bilinear", integer "space", shader "remap")
该着色器使用给定的 space 参数调用 mi_texture_filter_project,以在光栅空间和纹理空间获得三个相应点。这三个纹理坐标通过调用指定的 remap 着色器重新映射;用于重新映射的实际纹理坐标作为 mi_call_shader_x 的第四个参数传递(这意味着调用的着色器必须设计为检查其第四个参数)。重新映射着色器必须在着色器参数使用它,而不是提供的纹理坐标向量。
过滤的纹理查找所需的投影变换矩阵通过调用 mi_texture_filter_transform 着色器界面函数并使用三个光栅空间和重新映射的纹理空间坐标计算得出。矩阵中的平移分量设定为 coord。请注意,始终为当前光栅位置计算投影变换,但可以使用 coord 平移纹理空间中的椭圆。这对于凹凸贴图非常有用。
基本上,这是着色器界面函数的 mi_lookup_filter_color_texture 系列的前端。椭圆过滤参数 bilinear 在 mib_texture_filter_lookup 中设定为 false,对于 circle_radius,使用默认值。如果无法正确计算投影矩阵,或纹理是着色器而不是图像,或反射级别不为零,则使用未过滤的纹理查找。
将单位立方体划分为 8 个子立方体,每个子立方体具有一种单独的 RGBA 颜色。左侧、底部和前侧部分的宽度可编程,允许使用此着色器生成条纹和二维或三维的棋盘格。该函数对于预览着色器球场景也很有用。
color "mib_texture_checkerboard" ( vector "coord", scalar "xsize", scalar "ysize", scalar "zsize", color "color000", color "color001", color "color010", color "color011", color "color100", color "color101", color "color110", color "color111")
将具有可编程直径的圆盘绘制为单位方形,然后将具有可编程直径的球体绘制为单位立方体。前景色和背景色都是可编程的。
color "mib_texture_polkadot" ( vector "coord", scalar "radius", color "fgcolor", color "bgcolor")
color "mib_texture_polkasphere" ( vector "coord", scalar "radius", color "fgcolor", color "bgcolor")
在单位立方体中创建湍流标量图案。可以在极坐标中计算一个、两个或所有三个纹理向量分量,从而生成球面贴图。
scalar "mib_texture_turbulence" ( vector "coord", scalar "spacing", scalar "strength", scalar "power", integer "iteration", integer "polar_dim")
创建 U、V 和 W 方向的余弦波,每个波都有可编程振幅。(可使用纹理重贴图基础着色器控制频率和偏移。)结果为灰度颜色 R=G=B=A;可以使用颜色贴图基础着色器重新贴图该颜色。其范围为 [o-s ... o+s] ,其中 s 是振幅的和,O 是偏移。
color "mib_texture_wave" ( vector "coord", scalar "amplitude_x", scalar "amplitude_y", scalar "amplitude_z", scalar "offset")
Copyright © 1986, 2015 NVIDIA ARC GmbH. All rights reserved.