着色器: rendinst_tree_perlin_layered

概述

rendinst_tree_perlin_layered 着色器专为树木的高级渲染而设计,使用曲面细分来增强视觉保真度。此着色器支持置换和平滑模式,允许对树几何体进行详细控制。曲面细分可以在运行时动态启用或禁用,使其适应各种性能设置。

曲面细分概述

此着色器中的曲面细分可以在运行时通过 shader 变量进行切换。通过在控制台中将 ‘pn_triangulation’ 设置为 ‘1’,将对配置为曲面细分的所有树以及具有默认设置的 ‘rendinst_clipmap’ 对象进行曲面细分。将来,此功能将合并到图形设置中。

在资源中启用曲面细分

  1. **默认设置:默认情况下,曲面细分处于禁用状态。要启用它,请将 ‘material_pn_triangulation’ 设置为 ‘1’ 或 ‘2’。

  2. 通用参数:

    • max_tessellation_factor: 控制镶嵌因子,该因子随距离而变化。此参数设置摄像机靠近对象时的最大系数。

  3. Tessellation Modes:

    • Mode 2: 仅平滑。此模式没有任何其他可配置参数。

    • Mode 1: 位移模式。在此模式下,着色器从三个漫反射纹理的 Alpha 分量中读取置换强度。这些纹理根据像素着色器混合规则进行混合。

    Displacement Mode Parameters:

    • rendinst_displacement_min: 定义漫反射纹理的 Alpha 为 ‘0’ 时的置换。’.xyz’ 组件对应于三个漫反射纹理,而 ‘.w’ 未使用。

    • rendinst_displacement_max: 定义漫反射纹理的 Alpha 为 ‘1’ 时的位移。’.xyz’ 组件对应于三个漫反射纹理,而 ‘.w’ 未使用。

    • rendinst_displacement_lod: 指定用于在置换期间对漫反射纹理进行采样的 mip 级别。较低的值会产生更多的噪波,而较高的值会产生更平滑的置换。’.xyz’ 组件对应于三个漫反射纹理,而 ‘.w’ 未使用。

    • rendinst_displacement_mod: ‘is_pivoted’ 设置为 ‘1’,则此着色器变量允许根据顶点层次结构指定乘数。 ‘.x’ 组件是主干的乘数,而 ‘.yzw’ 组件按分层顺序应用于分支。

其他说明

  • Tessellation Factor Limit: 由于 API 限制,最大分割因子为 12。将 ‘max_tessellation_factor’ 设置得更高只会在更远的距离达到这个最大值。但是,通常没有必要将其设置得太高,因为树三角形通常很小。

  • rendinst_displacement_lod Setting: 应对此进行调整,以便在所选 mip 级别采样的纹素在世界大小方面对应于分割后的单个三角形。不需要精确的计算 – 调整直到视觉结果令人满意。

  • daEditor配置: 当使用daEditor时,确保选中 PN triangulation 复选框以立即查看镶嵌结果。