Parameters that configure a culling operation in the Scriptable Render Pipeline.
Obtain a ScriptableCullingParameters struct by calling Camera.TryGetCullingParameters.
Note that you can obtain and view a ScriptableCullingParameters struct from a Camera in the Built-in Render Pipeline; however, changing the values has no effect.
The following Scriptable Render Pipeline code demonstrates how to obtain a ScriptableCullingParameters struct from a Camera using Camera.TryGetCullingParameters, configure the struct, and then pass the struct to ScriptableRenderContext.Cull to obtain a CullingResults struct. You can then use the CullingResults struct in a call to ScriptableRenderContext.DrawRenderers.
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(); } } }
See Also: Camera.TryGetCullingParameters, ScriptableRenderContext.Cull, CullingResults, ScriptableRenderContext.DrawRenderers.
| cullingJobsLowerLimit | The lower limit to the value ScriptableCullingParameters.maximumPortalCullingJobs. |
| cullingJobsUpperLimit | The upper limit to the value ScriptableCullingParameters.maximumPortalCullingJobs. |
| layerCount | The amount of layers available. |
| maximumCullingPlaneCount | Maximum amount of culling planes that can be specified. |
| accurateOcclusionThreshold | This parameter determines query distance for occlusion culling. |
| cameraProperties | Camera Properties used for culling. |
| conservativeEnclosingSphere | This property enables a conservative method for calculating the size and position of the minimal enclosing sphere around the frustum cascade corner points for shadow culling. |
| cullingMask | The mask for the culling operation. |
| cullingMatrix | The matrix for the culling operation. |
| cullingOptions | Flags to configure a culling operation in the Scriptable Render Pipeline. |
| cullingPlaneCount | Number of culling planes to use. |
| isOrthographic | Is the cull orthographic. |
| lodParameters | LODParameters for culling. |
| maximumPortalCullingJobs | This parameter controls how many active jobs contribute to occlusion culling. |
| maximumVisibleLights | This parameter controls how many visible lights are allowed. |
| numIterationsEnclosingSphere | |
| origin | Position for the origin of the cull. |
| reflectionProbeSortingCriteria | Reflection Probe Sort options for the cull. |
| shadowDistance | Shadow distance to use for the cull. |
| shadowNearPlaneOffset | Offset to apply to the near camera plane when performing shadow map rendering. |
| stereoProjectionMatrix | The projection matrix generated for single-pass stereo culling. |
| stereoSeparationDistance | Distance between the virtual eyes. |
| stereoViewMatrix | The view matrix generated for single-pass stereo culling. |
| GetCullingPlane | Fetch the culling plane at the given index. |
| GetLayerCullingDistance | Get the distance for the culling of a specific layer. |
| SetCullingPlane | Set the culling plane at a given index. |
| SetLayerCullingDistance | Set the distance for the culling of a specific layer. |