使用 Sorting Filter 防止过度绘制。¶
在 Kanzi 节点中,节点的渲染顺序是从项目树的顶部到底部,如 Kanzi Studio Node Tree 窗口中所示。您可以使用过滤器更改3D节点的渲染。
当在后台缓冲区中首先将一个节点绘制到某个区域的像素中,然后显示另一个挡住了第一个节点的节点并再次填充这些像素时,就会出现过度绘制问题。过度的过度绘制会以增加填充率的形式降低GPU的性能。如果您将节点排序,使得遮挡节点先被绘制,由于深度缓冲,遮挡的像素不必再次渲染。
您可以通过在渲染之前将带有 Sorting Filter 的 3D 节点排序为从前到后的顺序,并隐藏已知的不可见项目来防止过度绘制。这会给 CPU 增加一些开销,因为节点在绘制之前被排序,并且在场景中的变换发生变化时(例如,通过动画)进行更新。
查看节点的过度绘制¶
Overdraw 可视化表示 Kanzi 多次渲染到同一像素的区域。较浅的绿色表示较高的过度绘制量。
Kanzi 使用模板缓冲区来计算它绘制到同一像素的次数。如果您使用模板缓冲区来渲染内容,Overdraw 可视化可能会返回意外结果。
过度绘制可视化不显示:
对您渲染到合成的3D节点进行过度绘制,然后将其渲染到纹理。在这种情况下,Overdraw 可视化将您渲染到纹理的合成内容显示为单个四边形。
当您在其祖先节点中将 Clip Children 属性设置为启用时,被裁剪的节点部分。
完全透明的节点或不可见的节点,包括它们的子节点。
要在您的应用程序中查看过度绘制,请在 Kanzi Studio Preview 中单击
以进入 Analyze 模式,右键单击
,然后选择 Overdraw。
使用 Sorting Filter 从前到后进行渲染。¶
要使用 Sorting Filter 从前到后进行渲染:
在 Library 按 Alt 并右键单击 Rendering > Object Sources 中选择 Sorting Filter。
在 Properties 集中:
Sorting Type 到 View z
启用 Reverse Order 属性。
在 Library > Rendering > Render Pass Prefabs 中选择您用于渲染场景的 Draw Objects 渲染通道。
在 Properties 中,将 Object Source 属性设置为您在此过程的第一步中创建的排序过滤器。
默认情况下,Sorting Filter 以从前到后的顺序重新排列场景。但是,您可以在项目中仅选择场景的一部分。如果 GPU 填充率、照明、纹理或片段着色器是您应用程序中已知的性能瓶颈,这将非常有用。请参阅 使用 Tag Filter。
测量这两种情况下的帧速率,以测试排列对整体性能的影响。请参阅 排除应用程序性能问题。