着色器系列: rendinst_layered

概述

在撰写本文时,rendinst_layered系列包括四个着色器:

  • rendinst_layered: 系列的基础着色器。

  • dynamic_layered: 专为 destrs 设计的动态版本。

  • rendinst_layered_atest: 支持对细节纹理进行 alpha 测试的版本。

  • rendinst_layered_hmap_blend: 包含高度贴图混合功能的版本。

让我们检查一下每个着色器的参数。

rendinst_layered

See also

有关详细信息,请参阅rendinst_layered 着色器。

dynamic_layered

此着色器的功能类似于rendinst_layered,但它针对动态对象 (destrs) 进行了优化。

rendinst_layered_atest

此版本支持对一个或两个细节纹理进行 alpha 测试。

参数

  • blended_atest: 0/1 (禁用/启用)

  • detail1_atest_weight: 第一个细节纹理的 Alpha 测试级别(默认值:127)

  • detail2_atest_weight: 第二个细节纹理的 Alpha 测试级别(默认值:127)

rendinst_layered_lightmap

这是标准的 rendinst_layered 着色器,增加了对自发光贴图的支持。

See also

有关详细信息,请参阅rendinst_layered_lightmap着色器。

rendinst_layered_hmap_blend

此版本引入了高度贴图混合功能,允许在模型和地形之间无缝过渡。它还支持使用自上而下的投影将裁剪图投影到模型上。裁剪图通过两个图层混合到材质中:第一个图层从地面混合到指定高度,第二个图层在具有正法线的水平表面上应用 Perlin 噪声遮罩,也可以通过与地面的距离进行修改。

此着色器非常适合岩石、悬崖和碎屑堆等需要融入地形或隐藏与地面接缝的对象。

以下是说明该效果的屏幕截图:

Without heightmap blend

With heightmap blend

Without clipmap projection

With clipmap projection

参数

Note

hmp_blend_height参数已弃用!如果您遇到它,请将其删除。

  • land_blend_dist: 指定裁剪图混合的第一个图层从地面开始的高度(以米为单位)。如果未指定,则默认值为 0.3 米。

  • land_perlin_height: 指定裁剪图投影的第二个图层的最大高度(以米为单位),该图层使用 Perlin 噪声并应用于具有正法线的水平表面。

  • land_perlin_scale: 控制 Perlin 杂色的比例。值越低,杂色越粗糙。从值 0.2 开始进行优化。

  • land_perlin_blend: 定义 Perlin 噪声从 land_blend_perlin_height 参数开始从 1 到 0 淡化的范围(以米为单位)。例如,如果 land_blend_perlin_height 设置为 20 米,并且您希望 Perlin 噪声在离地面 1 米处开始淡化,请将 land_blend_perlin_blend 设置为 19。

  • land_blend_normal_start: 裁剪图投影开始的法线值。默认值为 1。大于 1 的值会降低完全水平表面上的不透明度。

  • land_blend_normal_end: 裁剪图投影结束的法线值。默认值为 0.5。

下图显示了 Perlin 噪声强度梯度如何从 land_blend_perlin_height(上限) 到 land_blend_perlin_blend (下限) 运行:


盐沉积物

rendinst_layered_hmap_blend着色器通常用于岩石和悬崖。它包括一个名为 Salt Sediments (盐沉积物) 的功能,用于模拟水线痕迹、铁锈或藻类生长等效果。此效果如下所示:


在上面的示例中,使用了以下纹理:


此纹理具有控制透明度的 Alpha 通道。它替换了第一个细节纹理和叠加层的组合反照率。

Note

它仅影响第一个细节纹理。

在该示例中,效果在石头上可见,但橙色苔藓(第二个细节纹理)保持不变。

使用叠加层的 AlbedoAO 减去纹理,并在水位以下无限向下拉伸。如果不需要此效果,请将纹理中像素的底部两行完全透明。


参数:

level.blk 中,设置以下内容:

  • saltSedimentsStart:r=-0.25: 沉淀物效果的起始高度。

  • saltSedimentsEnd:r=4: 沉淀物效果的结束高度。

  • saltSedimentsTile:r=15: 纹理的水平平铺比例(以米为单位)。

  • saltSedimentsTex:t="waterline_grdnt_a_tex_d": 投影纹理的名称。

着色器还支持可选命令:

  • script:t="salt_sediments_opacity=1": 控制纹理的 Alpha 通道的乘数。您可以使用其他值,但通常没有必要。