着色器: rendinst_flag_layered
概述
此着色器专为织物动画而设计,具有基于顶点颜色的细节混合。
参数
script:t="frequency_amplitude=1,1,1,1"– 设置随机频率和振幅间隔。script:t="wave_length=1"– 定义波长。script:t="wind_direction=0,0,1,0"– 指定风向。script:t="details_tile=1,1,1,0"– 控制细节的平铺。script:t="invert_heights=0,0.5,0,0"– 反转细节的高度图(可以是分数)。script:t="paint_details=1,0,0,1"– 指定细节的颜色。script:t="overlay_color_from=0,0,0,0"– 使用顶点颜色的蓝色通道作为遮罩,通过线性插值 (lerp) 定义用于混合的“from”和“to”颜色。script:t="overlay_color_to=0,0,0,0"– 指定从 ‘0’ (RGB 值 ‘0’) 到 ‘1’ (RGB 值 ‘255’) 的颜色范围。script:t="micro_detail_layer=0"– 微细节的参数。script:t="micro_detail_layer_v_scale=1"script:t="micro_detail_layer_uv_scale=1"script:t="atest=1"和script:t="details_alphatest=0,0,0,0"– 一起使用。第一个参数启用 Alpha 测试,而第二个参数定义每个细节的 Alpha 测试强度。
功能
此着色器的运行原理与其父着色器相同:
Shader rendinst_flag_colored – 控制动画行为。
Shader rendinst_vcolor_layered – 管理细节绘制、叠加、Alpha 测试、平铺和高度贴图反转。
所有这些参数在相关的着色器文档中都有完整的描述,因此这里不再赘述 - 有关详细信息,请参阅相应的部分。
唯一的关键区别在于用于细节混合的通道。由于此着色器不仅处理三个细节,还包括动画,因此混合由与 rendinst_vcolor_layered 不同的通道控制。
红色通道 – 控制动画。
绿色通道 – 从第一个细节中减去第二个细节。
蓝色通道 – 从前两个细节中减去第三个细节。
Important
蓝色通道还控制叠加层(参见 rendinst_vcolor_layered)。因此,您必须决定哪个方面对于特定资产更重要 - 叠加或其他细节。
如果需要叠加,请为蓝色通道分配与第一个(或第二个)细节相同的细节,具体取决于哪个细节优先。