着色器系列: 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 通道的乘数。您可以使用其他值,但通常没有必要。