辅助对象着色器

以下是分层包中当前应用的辅助对象着色器:

“适配器”着色器 mila_adapter

混合其他着色器与分层着色器当前不建议使用,因为它不使用共享灯光列表,能够使用 LPE 多过程控制等。将来可能会部分用到它。所有参与分层着色树的着色器(即插入 mila_layermila_mix 的任何着色器)必须能够正确地参与内部分层通信,以传递组件权重和其他数据。

mila_adapter
declare shader 
    color
    "mila_adapter" (
        color   "input",
        array struct "passes" {
            string "path",
            color  "output",
            boolean "comp"
        }
    )
    version 1
    apply texture
end declare

虽然不建议使用,但是要使用此着色器,请将某个其他非分层着色器插入到其输入中。它会(而且也能够)将着色器变为使用分层着色器系统的对象。

必须遵循的一些规则:

光泽辅助对象着色器 mila_get_roughness

Mia 材质使用光泽度作为输入参数。此小型辅助对象着色器只是反转光泽度,以生成由 mila_glossy_* 着色器使用的表面粗糙度。

mila_get_roughness
declare shader scalar "mila_get_roughness" (
        scalar "glossiness" 
    )
    apply texture
    version 1
end declare
光泽度
是范围介于 0(类似镜子)到 1(类似漫反射)的光泽度,是从粗糙度反转而来。

凹凸辅助对象着色器 mila_get_normal

许多旧的 mental ray 凹凸贴图着色器只是修改法线 - mila_layersmila_mix 着色器需要将修改后的法线作为向量输入

此小型辅助对象着色器仅调用某些着色器(通常为凹凸着色器),然后返回修改后的法线。

mila_get_normal
 declare shader vector "mila_get_normal" (
         shader "shader" 
     )
     apply texture
     version 1
 end declare
着色器
是扰动法线的着色器。

若要将此着色器与 3ds Max DCC 应用程序一起使用,请使用将实际纹理着色器(例如 max_Bitmap)插入到的着色器 max_Bump(随 3ds Max 一起提供)。

示例:

    max_Bitmap  =>  max_Bump.Map  =>  mila_get_normal.shader => mila_layer.components[x].bump

车漆辅助对象着色器 mila_flakes_adapter

mila_flakes_adapter
declare shader 
   struct {
       vector "normal",
       color  "color"
   }
   "mila_flakes_adapter" (
        color  "tint",
        shader "flakeshader"
    )
    apply texture
    version 1
end declare

构建此着色器仅仅是为了与车漆库中的 mi_flakes_bump 着色器进行交互。该着色器具有非常特殊的行为,它将获取一种颜色,对其进行修改,然后返回该颜色通过单项操作修改法线。

此辅助对象着色器获取指定颜色并调用 flakeshader(必须是 mi_flakes_bump 的实例),并将修改后的颜色和法线作为单独的输出返回,以连接到分层着色器的相应输入。

车漆辅助对象着色器 mila_bump_flakes

>

该着色器在汽车组件组合中辅助模拟影响法线更改和可见性因子的油漆碎片。

有关使用案例,请参见此处的车漆示例。

declare shader
    struct {
        vector "normal",
        scalar "visibility"
    }
    "mila_bump_flakes" (
        scalar  "weight"       default 1.0,
        scalar  "density"      default 0.5,
        scalar  "perturbation" default 0.8,
        scalar  "scale"        default 0.2,
        integer "type"         default 0,    
        integer "cell_style"   default 0,    #: enum "edgy:circular"
        scalar  "circle_size"  default 0.5
    )
    apply texture
    version 4
end declare
weight
是传入权重,它乘以其他计算因子以最终确定扰动法线的传出可见性着色器。
density
用于影响可见性,增大或减小,仿佛它影响包含油漆碎片的油漆层对灯光的吸收。在场景中,通过底层来建模看到多少油漆碎片。
perturbation
是油漆碎片引起的整体法线更改量。扰动更少将使法线更改更少且油漆碎片更平。
scale
是指油漆碎片的大小规模。
type
是创建油漆碎片的大小规模的噪波类型:两种噪波类型(扭曲和细胞)上的 3 个变量:"distortion1:distortion2:distortion3:cellular1:cellular2:cellular3"。
cell_style
是使用细胞噪波时的细胞形状,锐利 (0) 或圆形 (1)。
circle_size
是圆的大小(如果使用圆形细胞样式)。

基础头发辅助对象着色器 mila_shift_normal

该着色器移动基础头发的各个组件的法线:主反射 (R)、透射 (TT)、次反射 (TRT)、次反射闪光右和左光锥 (TRT Glint R/L)。

declare shader 
    vector "mila_shift_normal" (
        integer "mode"          default 0, #: enum "hair_R:hair_TT:hair_TRT:hair_TRT_glint_R:hair_TRT_glint_L"
        scalar  "u_offset"      default 0.0,
        scalar  "v_offset"      default 1.0
    )
    version 1
    apply texture
end declare

基础头发辅助对象着色器 mila_hair_base_normal

该着色器移动最底层的法线以便从带状更改为圆柱形的头发形状几何体。在 mental ray 中,头发建模为朝向摄影机/眼睛的带状。这是一种通过更改法线模拟圆柱几何体的方法。如果为头发管使用完全建模的几何体则不需要。

declare shader 
    vector "mila_hair_base_normal" (
    )
    version 1
    apply texture
end declare

基础头发辅助对象着色器 mila_color_sqrt

该着色器采用颜色的平方根,对一半距离的头发颜色吸收非常有用。

declare shader 
    color "mila_color_sqrt" (
        color "color"
    )
    version 1
    apply texture
end declare

基础头发辅助对象着色器 mila_hair_color

该着色器从根部和发梢创建头发染色。

declare shader 
    color "mila_hair_color" (
        color "base_color"    default 0.3 0.3 0.2 1,
        scalar "base_noise"   default 0,
        color "tip_color"     default 0.6 0.6 0.4 1,
        scalar "tip_noise"    default 0        
    )
    version 1
    apply texture
end declare
base_color
是头发根部的颜色。
base_noise
根部颜色未实现的噪波因子。为了按头发进行改变。
tip_color
是发梢的颜色。
tip_noise
发梢颜色未实现的噪波因子。为了按头发进行改变。

基础头发辅助对象着色器 mila_hair_scalar

该着色器从根部和发梢创建头发色彩标量。

declare shader 
    scalar "mila_hair_scalar" (
        scalar "base_scalar"  default 0.,
        scalar "base_noise"   default 0,
        scalar "tip_scalar"   default 1,
        scalar "tip_noise"    default 0        
    )
    version 1
    apply texture
end declare
base_scalar
是头发根部的标量。
base_noise
根部标量未实现的噪波因子。为了按头发进行改变。
tip_scalar
是发梢的标量。
tip_noise
发梢标量未实现的噪波因子。为了按头发进行改变。

基础头发辅助对象着色器 mila_scalar_to_vector

该着色器可以从标量构成向量,方法是为矢量的 X、Y、Z 通道重复标量值。

declare shader 
    vector "mila_scalar_to_vector" (
        scalar "scale"
    )
    version 1
    apply texture
end declare
scale
是为矢量的所有三个维度进行重复的标量。

为 mila 材质匹配的物理光着色器 mila_light

该着色器可代替物理光,因为它还添加了进行纹理贴图以及分割典型灯光集成的颜色和强度的功能。

declare shader
	color "mila_light" (
		color		"color",
		scalar		"intensity",
		scalar		"cone",	
		scalar		"threshold",# accuracy threshold for optimization
		scalar		"cos_exp"   # cosine exponent (disc&rectangle)
	)
	version 1
	apply light
end declare
color
是灯光的颜色。
intensity
乘以灯光的颜色。
cone
是聚光灯的内部实体条件(当用作聚光灯着色器时)。
threshold
是优化的精度阈值(当灯光对最终渲染的图像贡献微小时)。
cos_exp
是圆形、矩形和对象区域光的余弦指数。因为余弦由区域光几何体的面而不是灯光的方向进行设置。此参数可以增强从直接朝向(因子 1.0)到掠射面(因子接近 0)的曲线。