渲染贴花¶
使用 Pipeline State Render Pass 在3D对象的表面上渲染贴花而不发生z-fighting。您可以设置要应用于由 Pipeline State Render Pass 渲染的元素的多边形深度偏移。
要渲染贴花:
创建您要在其表面渲染贴花的 3D 内容。
例如:在 Node Tree 中创建一个 Plane 节点。
创建要作为贴花渲染的内容。
例如:在您在上一步中创建的 Plane 节点中创建一个 Plane 节点,将其命名为 Decal,并设置为显示纹理。
在 Preview 中,您可以看到节点之间的深度冲突。
标记您想要渲染为贴花的节点。请参阅 标记节点。
例如,将 Decal 节点标记为标签 Decal。
创建一个 Tag Filter 来选择您想要渲染为贴花的节点,以及另一个 Tag Filter 来选择除您想要渲染为贴花的节点之外的所有节点。请参阅 使用 Tag Filter。
使用渲染通道来渲染您的内容和贴花,以避免 z-fighting。
例如,要修改并使用 Default Render Pass 渲染通道预设来渲染内容和贴花:
在 Library 按 Alt 并右键单击 Rendering 中,选择 Default Render Pass 渲染通道预设。请参阅 使用 Kanzi Studio 渲染通道预设。
要使用 Default Render Pass 渲染通道预设,请选择包含您要渲染的 3D 内容和贴花的 Viewport 2D 节点,并在 Properties 中将 Render Pass Prefab 属性设置为 Default Render Pass。
在 Default Render Pass 渲染通道预设中的 Library 中,选择 Draw Objects Opaque 渲染通道,并在 Properties 中将 Objects Source 属性设置为选择除您想要作为贴花渲染的节点之外的所有节点的 Tag Filter。
您将此 Draw Objects Render Pass 设置为渲染 Viewport 2D 节点中的所有节点,除了贴花节点。
在 Default Render Pass 渲染通道预设中,选择 Draw Objects Transparent 渲染通道,并在 Properties 中将 Objects Source 属性设置为选择您要渲染为贴花的节点的 Tag Filter。
您将此 Draw Objects Render Pass 设置为仅渲染贴花节点。
在 Default Render Pass > Gather Lights Render Pass 中创建一个 Pipeline State Render Pass,并将渲染贴花节点的 Draw Objects Render Pass 拖到 Pipeline State Render Pass。
选择 Pipeline State Render Pass,并在 Properties 中添加并设置 Polygon Depth Offset 属性字段为提供所需渲染结果的值:
Derivate Multiplier 设置每个像素深度变化导数的乘数。
Constant Multiplier 乘以深度的最小可测量单位,具体取决于目标平台。
Kanzi 通常会将具有负深度偏移的多边形显示得更靠近摄像机。