着色器: rendinst_flag_colored

概述

这是专为布料模拟而设计的简单着色器。

参数:

  • script:t="frequency_amplitude=1,1,1,1" – 随机频率和振幅的间隔;

  • script:t="wave_length=1" – 波长;

  • script:t="wind_direction=0,0,1,0" – 风向;

  • script:t="use_painting=1" – main 参数启用绘画;

  • script:t="paint_palette_row=1" – 在基于 daNetGame 的项目中绘制参数,类似于 rendinst_simple_painted 着色器;

  • script:t="paint_white_point=0.1"

  • script:t="paint_black_point=0.05"

  • script:t="paint_mult=1"

  • script:t="micro_detail_layer=0" – 微细节设置;

  • script:t="micro_detail_layer_v_scale=1"

  • script:t="micro_detail_layer_uv_scale=1"

功能

此着色器使用两个纹理(漫反射和法线)来启用基本几何体动画。您可以为顶点位移配置正弦参数,从而在较密集的网格上获得更平滑的结果。

Important

确保仅将着色器应用于使用顶点颜色绘制的几何体,否则使用着色器可能会导致游戏错误。

动画几何

要设置动画的网格区域由顶点颜色的 R 通道定义。不使用 G 和 B 通道。

Vertex Color

Result

Note

始终将未使用的顶点颜色通道重置为黑色,因为它们默认为白色(所有通道都设置为最大值)。

参数

  • script:t="frequency_amplitude=1,1,1,1" – 定义频率和振幅间隔。(在这种情况下,频率控制波振荡的速度,而不是波长):

    • 第 1 和第 2 个分量 – 频率范围(最小值、最大值),

    • 第 3 和第 4 个分量 – 振幅范围 (最小值、最大值)。

在任务开始时,从这些间隔中选择随机值,并在整个游戏中保持不变。该位置的不同资产将使用不同的值进行动画处理。

Frequency = 1

Amplitude = 1

Frequency = 3

Amplitude = 3

随机值在 Asset Viewer 中不可见,因此请首先验证组件 1 和 3 中的最大值(因为这些值显示在 Asset Viewer中)。 之后,将这些值移动到组件 2 和 4,并在组件 1 和 3 中设置最小值。

  • script:t="wave_length=1" – 定义波长。

较长的波长会减少振荡细节,因为正弦波会拉伸,而模型只能捕获其中的一小部分。

Wavelength = 1

Wavelength = 0.5

Wavelength = 5

  • script:t="wind_direction=0,0,1,0" (临时参数) – 风向由临时参数定义,因为规划了一个全局风系统。在 Asset ViewerdaEditor 中,风向基于全局轴运行,因此请确保在游戏中验证波向:

    • 第 1 个组件控制沿 X 轴的振荡;

    • 第 2 个组件控制沿 Z 轴(垂直)的振荡;

    • 第 3 个组件控制沿 Y 轴的振荡。

wind_direction=1,0,0,0

wind_direction=0,0,1,0

  • script:t="use_painting=1" – 基于 daNetGame 的项目绘制参数的工作方式类似于 rendinst_simple_painted 着色器,不同之处在于此着色器默认不绘制。要启用绘画,请按如下方式设置参数:

    • ‘1’ – 启用绘画;

    • ‘0’ – 禁用绘画(可选)。

在基于 daNetGame 的项目中与 Global Wind 合作

此着色器还支持使用全局风图和一组附加参数的风动画。以前的算法仍然可用,风行为由 shadervar wind_type参数控制。

新算法是首选算法,因为它考虑了风强度变化,包括风发射器。

参数:

  • wind_type = 0 – 使用旧的动画算法,不受外部因素的影响,并使用 frequency_amplitude, wind_direction, wind_strength, 和 wave_length进行配置。

  • wind_type = 1 – 忽略顶点中的 R 通道的新算法 color,而是使用距 Flagpole 轴的标准化距离(范围从连接点的 ‘0’ 到 Flag 末端的 ‘1’)。

  • wind_type = 2 – 在顶点颜色中使用 R 通道的新算法。 为了正确作,R 通道必须从连接点的 ‘0’ 持续增加到标志末端的 ‘1’,尽管增加不需要是线性的。如果标志的大部分颜色均匀,则可能会出现不正确的行为。

  • flagpole_pos_0, flagpole_pos_1 – 在模型的坐标系中定义连接标志的线段。沿此线段的点保持静止。对于单个固定点,可以使用非常短的段。

  • flag_length – 定义标志的长度,或从轴到标志末端的距离。此值不需要精确;将其设置为比实际大小大 10-15% 是可以接受的,但不建议将其设置为更小。

其他可选参数包括:

  • flag_movement_scale = 1 – 控制风从其静止位置弯曲和移动旗帜的程度。

  • stiffness = 0.1 – 确定标志的抗弯曲阻力。

  • stretch = 0.1 – 控制标志的拉伸程度:

    • 0 – 无拉伸,

    • 1 – 无限拉伸。

  • sway_speed = 1 – 定义标志弯曲的速度。

  • bend = 2 – 塑造旗帜的弯曲方式。

  • deviation = 4 – 控制标志偏离其平衡位置时的形状。

See also

您可以查看具有不同参数配置的着色器结果 此处.