着色器: 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 壳进行绘制。这会导致接缝处出现明显的伪影。最好像使用红色/蓝色灯一样粉刷该区域。

示例: 对于滚动文本,您需要一个用于横幅的“.dag”文件和三个纹理。

tex0:t="text_anim_tex_d"

tex3:t="text_anim_program"

tex4:t="text_anim_shift"

对于滚动文本效果,纹理的渐变(应该是线性的)和 Gamma 值 (gamma:r=1)都至关重要。


如果不满足这些条件,将导致动画质量不佳。例如,使用灰度系数为 ‘2.2’ 的 Photoshop 渐变将产生低于标准的结果: