配置可脚本化渲染管线中剔除操作的参数。
通过调用 Camera.TryGetCullingParameters 获取 ScriptableCullingParameters 结构体。
请注意,您可以在内置渲染管线中从 Camera 获取并查看 ScriptableCullingParameters 结构体;但是,更改其值无效。
以下可脚本化渲染管线代码演示了如何使用 Camera.TryGetCullingParameters 从 Camera 获取 ScriptableCullingParameters 结构体,配置该结构体,然后将该结构体传递给 ScriptableRenderContext.Cull 以获取 CullingResults 结构体。然后,您可以在调用 ScriptableRenderContext.DrawRenderers 中使用 CullingResults 结构体。
using UnityEngine; using UnityEngine; using UnityEngine.Rendering;
public class ExampleRenderPipelineInstance : RenderPipeline { public ExampleRenderPipelineInstance() { }
protected override void Render(ScriptableRenderContext context, Camera[] cameras) { // Get the culling parameters from the desired Camera if (cameras[0].TryGetCullingParameters(out var cullingParameters)) { // Change culling parameters to configure the culling operation cullingParameters.cullingOptions &= ~CullingOptions.OcclusionCull; cullingParameters.isOrthographic = false;
// Schedule the cull operation CullingResults cullingResults = context.Cull(ref cullingParameters);
// Place code that schedules drawing operations using the CullingResults struct here // See ScriptableRenderContext.DrawRenderers for details and examples // …
// Execute all of the scheduled operations, in order context.Submit(); } } }
其他资源:Camera.TryGetCullingParameters、ScriptableRenderContext.Cull、CullingResults、ScriptableRenderContext.DrawRenderers。
cullingJobsLowerLimit | ScriptableCullingParameters.maximumPortalCullingJobs 值的下限。 |
cullingJobsUpperLimit | ScriptableCullingParameters.maximumPortalCullingJobs 值的上限。 |
layerCount | 可用的图层数量。 |
maximumCullingPlaneCount | 可以指定的剔除平面的最大数量。 |
accurateOcclusionThreshold | 此参数确定遮挡剔除的查询距离。 |
cameraProperties | 用于剔除的摄像机属性。 |
conservativeEnclosingSphere | 此属性启用一种保守的方法来计算围绕视锥体级联角点的最小外接球的大小和位置,用于阴影剔除。 |
cullingMask | 剔除操作的遮罩。 |
cullingMatrix | 剔除操作的矩阵。 |
cullingOptions | 标志,用于在可脚本化渲染管线中配置剔除操作。 |
cullingPlaneCount | 要使用的剔除平面的数量。 |
isOrthographic | 剔除是否为正交。 |
lodParameters | 用于剔除的 LOD 参数。 |
maximumPortalCullingJobs | 此参数控制有多少个活动作业参与遮挡剔除。 |
maximumVisibleLights | 此参数控制允许多少个可见光源。 |
numIterationsEnclosingSphere | |
origin | 剔除原点的坐标。 |
reflectionProbeSortingCriteria | 剔除的反射探针排序选项。 |
shadowDistance | 用于剔除的阴影距离。 |
shadowNearPlaneOffset | 执行阴影贴图渲染时应用于近摄像机平面的偏移量。 |
stereoProjectionMatrix | 为单通道立体剔除生成的投影矩阵。 |
stereoSeparationDistance | 虚拟眼睛之间的距离。 |
stereoViewMatrix | 为单通道立体剔除生成的视图矩阵。 |
GetCullingPlane | 获取给定索引处的剔除平面。 |
GetLayerCullingDistance | 获取特定图层的剔除距离。 |
SetCullingPlane | 设置给定索引处的剔除平面。 |
SetLayerCullingDistance | 设置特定图层的剔除距离。 |