mental ray 核心工具着色器

版本 3.13

版本 3.13.1.0
2015 年 1 月 12 日

目录

核心工具着色器

此着色器包向 mental ray 提供了核心扩展,以插件、着色器或现象的形式实现。它们旨在支持开发行业标准,并将其连接到 mental ray 的机械。它们通常基于内置于这些着色器的第三方库。对标准的最新更新和改进可以快速合并到这些工具而无需更新 mental ray 本身。

此包包含 Alembic 导入模块,可在渲染过程中立即或按需将几何体数据和场景层次从此格式的文件加载到 mental ray 的场景数据库。Ptex 纹理查找着色器有助于读取并将这些特殊纹理应用到几何体,并将其连接到场景中的其他材质和着色器。最后,UV 平铺工具着色器支持使用 mental ray 利用这些纹理方案的简单工作流程。它实现所有常用的 UV 平铺纹理命名约定,并将为渲染器内的许多纹理自动创建一个最佳表示,可以利用现有纹理流水线并很好地与其功能集成在一起,如纹理缓存。

Alembic

Alembic 是一个开放的图形交换框架,它允许以独立于应用程序的格式存储已设置动画的场景的最终烘焙几何体数据。该着色器支持立即或按需加载完整的归档内容,或只是特定部分,但仅限在渲染过程中。

该着色器实现以下约定以将材质指定给 Alembic 归档中的单个元素,而 Alembic 本身并不提供它们。若要与现有 mental ray 材质相关,可以在对象上指定具有字符串值的自定义特性 "material"。该着色器在主场景中查找具有该名称的材质,如果找到,则将其指定给 mental ray 场景中的对象。作为一个特殊扩展,如果在归档中指定类型为 "color" 的特性 "adskDiffuseColor",则该着色器将自动创建一个具有该值的纯漫反射 BSDF 作为颜色,并将此材质指定给该对象。

abcimport
declare data
    geometry "abcimport" (
        string      "filename",
        scalar      "time"              default -1.0,
        boolean     "assembly"          default off,
        string      "select",
        integer     "fps"               default 24,
        integer     "subdivisions"      default 0,
        boolean     "facesetmaterials"  default on
    )
end declare
filename
要加载的 Alembic 归档的文件名。在查找文件时应用全局 mental ray 集合搜索路径。
time
求值时间。如果不为 0.0,则从着色器获取时间,否则,在渲染过程中使用当前的摄影机帧时间。
assembly
如果启用,将在 mental ray 中为 Alembic 内容创建一个集合,以准备在渲染过程中按需加载 Alembic 几何体。否则,将立即在 mental ray 场景数据库中创建场景几何体和实例。
select
如果设置,请选择 Alembic 归档内的一个 DAG 路径并启用该路径上以及该路径下面(朝向叶)的所有元素以进行导入。DAG 路径应采用正向斜杠 ("/") 字符。例如,设置 "/root/group/node" 将仅加载该 DAG 子图表的几何体。
fps
当前动画的每秒帧数。
subdivisions
头发、NURBS 曲面、修剪曲线和细分网格 (ccmesh) 几何体的正则细分级别数(参数化近似)。请注意,对于细分网格和 NURBS 曲面,遵循父实例上的覆盖近似。
facesetmaterials
启用时,Alembic 几何体上的面集名称将被解释为材质名称。在此模式下调用该着色器之前,需要在场景中定义这些材质。

Ptex

Ptex 是一个不依赖于 UV 纹理坐标的纹理贴图系统。

该着色器需要由 mental ray 来计算其他信息。可以使用注册表设置 "{_MI_REG_CCMESH_PTEX}" 全局启用该着色器,或者使用 "bary" 特性按对象启用。该着色器还需要纹理差信息,除非仅用于置换。对于次级光线,应启用 mental ray“光线差异”。

mib_ptex_lookup
declare phenomenon
    color
    "mib_ptex_lookup" (
        string          "filename",
        scalar          "width"             default 1.0,
        scalar          "blur"              default 0.0,
        integer         "filtertype"        default 4,
        boolean         "interpolate_level" default off,
        scalar          "filter_sharpness"  default 1.0,

        ## these parameters are taken if face_index is >= 0
        scalar          "duv_dx_u"          default 0.0,
        scalar          "duv_dx_v"          default 0.0,
        scalar          "duv_dy_u"          default 0.0,
        scalar          "duv_dy_v"          default 0.0,
        scalar          "bary_v0x",
        scalar          "bary_v0y",
        scalar          "bary_v1x",
        scalar          "bary_v1y",
        scalar          "bary_v2x",
        scalar          "bary_v2y",
        integer         "face_index"        default -1
    )
end declare
mib_ptex_lookup_x
declare shader 
    struct {
        color   "color",
        scalar  "alpha",
        boolean "has_alpha"
        }
    "mib_ptex_lookup" (
        string          "filename",
        scalar          "width"             default 1.0,
        scalar          "blur"              default 0.0,
        integer         "filtertype"        default 4,
        boolean         "interpolate_level" default off,
        scalar          "filter_sharpness"  default 1.0,

        ## these parameters are taken if face_index is >= 0
        scalar          "duv_dx_u"          default 0.0,
        scalar          "duv_dx_v"          default 0.0,
        scalar          "duv_dy_u"          default 0.0,
        scalar          "duv_dy_v"          default 0.0,
        scalar          "bary_v0x",
        scalar          "bary_v0y",
        scalar          "bary_v1x",
        scalar          "bary_v1y",
        scalar          "bary_v2x",
        scalar          "bary_v2y",
        integer         "face_index"        default -1
    )
end declare
filename
要使用的 .ptx 文件。
width
缩放过滤器宽度。
blur
要添加到过滤器宽度的模糊量 [0..1]
filtertype
要使用的过滤器类型。
interpolate_level
在 MIPMAP 棱锥级别之间启用插值。
filter_sharpness
(仅)控制双三次过滤器。
face_index
指定源多边形的基础面索引。如果索引值为 >= 0,则必须在各自的参数中指定差异和质心参数。如果不知道这些差异,则必须将它们设置为零。必须为命中三角形的每个顶点提供质心参数,并请参考源多边形的基础面的质心位置。

该着色器将返回一维(标量)纹理的颜色值,并将所有 RGBA 组件设置为相同的值。对于三维(颜色)纹理,将 color 设置为查找值。对于四维纹理,相应地设置 RGBA color 组件。如果已指定有效 Alpha 通道,并且在一维纹理情况下,则将返回值 has_alpha 设置为 true 并且 alpha 将包含查找值。

UV 平铺

该着色器可帮助通过 mental ray 使用 UV 平铺纹理贴图。它不仅实现第三方工具的常见命名方案,而且完全支持自定义平铺布局。

mib_tiled_texture
declare shader
    color texture
    "mib_tiled_texture" (
        integer     "mode"      default 0,
        integer     "utiles"    default 10,
        scalar      "filter",
        string      "colorprofile",
        vector      "uvCoord",
        string      "texture_dir",
        array struct "texture_info" {
            string      "filename",
            vector      "tile_coord"
        }
    )
end declare
mode
设置 UV 平铺约定。
utiles
U 方向的平铺数,模式 3 除外。
filter
要用于所有纹理平铺的 mental ray 纹理过滤器比例值。
colorprofile
用于所有纹理平铺的 mental ray 颜色配置。
uvCoord
UV 查找坐标。
texture_dir
包含纹理文件的目录。
texture_info.filename
texture_info.tile_coord
要使用的自定义纹理平铺。

用法

核心工具着色器包含在 coreutil 库中。着色器和现象的声明可在 voreutil.mi 文件中找到。要使用这些着色器,必须包括声明文件并链接该库:

link "coreutil.so"
$include "coreutil.mi"



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