# 着色器: rendinst_simple_emissive_anim / dynamic_illum_anim ## 概述 此着色器支持切换、调整自发光强度和控制自发光颜色。 ## 参数 **rendinst_simple_emissive_anim**: - `class:t="rendinst_simple_emissive_anim"` - `script:t="illum_scroll_speed=0.1"` – 控制整个自发光纹理程序中“扫描”效果的滚动速度。反转此变量的符号会更改扫描方向。 - `script:t="use_additive_blend=1"` – 设置混合模式:'0' 表示albedo上的乘法自发光,'1' 表示加法混合。 - `tex0:t="diffuse_map_tex_d.tif"` – Alpha 通道定义自发光强度。 - `tex2:t="normal_map_tex_n.tif"` – Normal map. - `tex3:t="program_map_program.tif"` – 自发光纹理程序。最小纹理大小为 4x4。 - `tex4:t="shift_map_shift.tif"` – Emission shift 纹理。 **dynamic_illum_anim**: - `script:t="illum_scroll_speed=0.1"` – 控制整个自发光纹理程序中“扫描”效果的滚动速度。反转此变量的符号会更改扫描方向。 - `script:t="use_additive_blend=1"` – 设置混合模式:'0' 表示albedo上的乘法自发光,'1' 表示加法混合。 - `tex0:t="diffuse_map_tex_d.tif"` – Alpha 通道定义自发光强度。 - `tex2:t="program_map_program.tif"` – Emission texture 程序。最小纹理大小为 4x4。 - `tex3:t="shift_map_shift.tif"` – Emission shift 纹理。 着色器以两种模式运行: *乘法* 和 *加法*。自发光程序纹理修改 G 缓冲区中的两个通道:albedo和自发光。在此上下文中,自发光通道为 8 位(灰度)。 这意味着有三种选项可用于实现彩色自发光。选择最适合您情况的那个: - 在乘法模式下,使用彩色albedo和灰度程序纹理,以避免使albedo黯然失色。 - 在乘法模式下,使用彩色程序纹理。这将修改基本albedo贴图,并从中减去它。 - 乘法模式是默认模式。 ## Textures 要为灯光的打开和关闭制作动画,您需要一个用于灯光和两个纹理的“.dag”文件: - `tex0:t="emis_anim_shader_tex_d.tif"` – 漫反射纹理定义灯的颜色。 - `tex3:t="emis_anim_shader_program.tif"` – 程序纹理定义灯何时发光(独立于 UV 映射)。
### tex0:t="emis_anim_shader_tex_d.tif" 定义灯的颜色和自发光级别: - RGB 通道:albedo(如果在程序纹理中没有定义其他颜色,则为自发光的颜色 (`tex3:t="emis_anim_shader_program.tif"`)). - A channel:自发光强度,其中白色是最大自发光,黑色表示无自发光。 ### tex3:t="emis_anim_shader_program.tif" 自发光程序纹理定义: 1. 自发光时间(白色区域发光,黑色区域不发光)。 2. Emission color (自发光的颜色可以在此处定义)。 3. 自发光强度(非白色会降低自发光强度)。 - RGB channels:如果不是黑色,则将发出定义的颜色。 - A 频道:未使用。 使用这两个纹理,可以创建简单的自发光动画。不需要为每个灯单独映射。 **示例:** 灯的颜色在程序纹理 (`tex0:t="emis_anim_shader_program.tif`) 中定义,为了防止漫反射和程序纹理之间的颜色冲突,漫反射纹理中的灯被涂成白色。
### tex4:t="emis_anim_shader_shift.tif" - R 通道:控制程序纹理上的水平位移: - 白色:无位移。 - 黑色:最大位移。 - G 通道:控制程序纹理上的垂直位移: - 白色:无位移。 - 黑色:最大位移。 - B 通道:控制速度: - 白色:速度增加(视觉上增加约 2 倍)。 - 黑色:速度由 `script:t="illum_scroll_speed=0.1"` 参数控制。 ## 用法 对于复杂的动画,请使用 `tex4:t="emis_anim_shader_shift.tif"`. **示例:** 在下面的示例中,仅使用 R 通道来控制程序的偏移。绿色和白色灯(在偏移纹理 (`tex4:t="emis_anim_shader_shift.tif`) 中用箭头标记)根据灯的 UV 壳进行绘制。这会导致接缝处出现明显的伪影。最好像使用红色/蓝色灯一样粉刷该区域。 ```{eval-rst} .. video:: _images/rendinst_simple_emissive_anim_04.webm :width: 60% ``` **示例:** 对于滚动文本,您需要一个用于横幅的“.dag”文件和三个纹理。 ```{eval-rst} .. video:: _images/rendinst_simple_emissive_anim_05.webm :width: 60% ```

tex0:t="text_anim_tex_d"

tex3:t="text_anim_program"

tex4:t="text_anim_shift"

对于滚动文本效果,纹理的渐变(应该是线性的)和 Gamma 值 (`gamma:r=1`)都至关重要。
如果不满足这些条件,将导致动画质量不佳。例如,使用灰度系数为 '2.2' 的 *Photoshop* 渐变将产生低于标准的结果: ```{eval-rst} .. video:: _images/rendinst_simple_emissive_anim_10.webm :width: 60% ```