剔除结果(可见对象、光源、反射探针)。
在脚本化渲染循环中,渲染过程通常会对每个摄像机进行剔除 (ScriptableRenderContext.Cull),然后渲染可见对象 (ScriptableRenderContext.DrawRenderers) 的子集并处理可见光源(visibleLights、visibleReflectionProbes)。
CullingResults 还提供了一些可辅助阴影渲染的函数(ComputeDirectionalShadowMatricesAndCullingPrimitives、ComputeSpotShadowMatricesAndCullingPrimitives、ComputePointShadowMatricesAndCullingPrimitives)。
| lightAndReflectionProbeIndexCount | 获取每个对象的光源和反射探针的索引数。 |
| lightIndexCount | 获取每个对象的光源索引数。 |
| reflectionProbeIndexCount | 获取每个对象的反射探针索引数。 |
| visibleLights | 可见光源的数组。 |
| visibleOffscreenVertexLights | 仍会影响可见场景顶点的屏幕外光源。 |
| visibleReflectionProbes | 可见反射探针的数组。 |
| ComputeDirectionalShadowMatricesAndCullingPrimitives | 计算方向光的视图和投影矩阵以及阴影分割数据。 |
| ComputePointShadowMatricesAndCullingPrimitives | 计算点光源的视图和投影矩阵以及阴影分割数据。 |
| ComputeSpotShadowMatricesAndCullingPrimitives | 计算聚光灯的视图和投影矩阵以及阴影分割数据。 |
| FillLightAndReflectionProbeIndices | 使用每个对象的光源索引填充计算缓冲区。 |
| GetLightIndexMap | 如果 RenderPipeline 对 VisibleLight 列表进行排序或以其他方式进行修改,则需要重新映射索引,以正确使用每个对象的光源列表。 |
| GetReflectionProbeIndexMap | 如果 RenderPipeline 对 VisibleReflectionProbe 列表进行排序或以其他方式进行修改,则需要重新映射索引,以正确使用每个对象的反射探针列表。 |
| GetShadowCasterBounds | 返回封装了可见阴影投射物的包围盒。例如,这可用于动态调整级联范围。 |
| SetLightIndexMap | 如果 RenderPipeline 对 VisibleLight 列表进行排序或以其他方式进行修改,则需要重新映射索引,以正确使用每个对象的光源列表。 如果数组的某个元素被设置为 -1,则与该元素对应的光源将被禁用。 |
| SetReflectionProbeIndexMap | 如果 RenderPipeline 对 VisibleReflectionProbe 列表进行排序或以其他方式进行修改,则需要重新映射索引,以正确使用每个对象的反射探针列表。 如果数组的某个元素被设置为 -1,则与该元素对应的反射探针将被禁用。 |