用于在可编程渲染管道中配置剔除操作的标志。
Unity 会使用默认值设置某些 CullingOptions 标志,而另一些会根据您从中获取 ScriptableCullingParameters 结构的 相机 属性进行设置。您可以在执行剔除操作前覆盖这些值。
以下示例演示如何从相机中获取 ScriptableCullingParameters 对象,通过取消设置 CullingOptions.OcclusionCull 标志禁用 ScriptableCullingParameters 对象上的遮挡剔除,然后在剔除操作中使用 ScriptableCullingParameters 对象。
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)) { // Disable occlusion culling cullingParameters.cullingOptions &= ~CullingOptions.OcclusionCull;
// 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(); } } }