feat(srp): add descriptor-driven object draw authoring
- bridge renderer list descriptors into ScriptableRenderContext scene draw calls - reuse DrawObjectsPass across Universal and project custom renderers - add RenderObjectsRendererFeature for package-level object draw extension
This commit is contained in:
@@ -119,33 +119,44 @@ namespace ProjectScripts
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class ProjectCustomOpaquePass
|
||||
: ScriptableRenderPass
|
||||
public sealed class ProjectRenderObjectsFeaturePipelineAsset
|
||||
: UniversalRenderPipelineAsset
|
||||
{
|
||||
public ProjectCustomOpaquePass()
|
||||
public ProjectRenderObjectsFeaturePipelineAsset()
|
||||
{
|
||||
renderPassEvent =
|
||||
RenderPassEvent.RenderOpaques;
|
||||
}
|
||||
|
||||
protected override bool RecordRenderGraph(
|
||||
ScriptableRenderContext context,
|
||||
RenderingData renderingData)
|
||||
{
|
||||
return context != null &&
|
||||
renderingData != null &&
|
||||
renderingData.isMainSceneStage &&
|
||||
context.DrawRenderers(
|
||||
SceneRenderPhase.Opaque,
|
||||
RendererListType.Opaque);
|
||||
rendererDataList = new ScriptableRendererData[]
|
||||
{
|
||||
new UniversalRendererData
|
||||
{
|
||||
renderOpaque = false,
|
||||
renderSkybox = false,
|
||||
renderTransparent = false,
|
||||
rendererFeatures = new ScriptableRendererFeature[]
|
||||
{
|
||||
new RenderObjectsRendererFeature
|
||||
{
|
||||
passEvent =
|
||||
RenderPassEvent.RenderOpaques,
|
||||
scenePhase =
|
||||
SceneRenderPhase.Opaque,
|
||||
rendererListType =
|
||||
RendererListType.Opaque
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class ProjectCustomRenderer
|
||||
: ScriptableRenderer
|
||||
{
|
||||
private readonly ProjectCustomOpaquePass m_opaquePass =
|
||||
new ProjectCustomOpaquePass();
|
||||
private readonly DrawObjectsPass m_opaquePass =
|
||||
new DrawObjectsPass(
|
||||
RenderPassEvent.RenderOpaques,
|
||||
SceneRenderPhase.Opaque,
|
||||
RendererListDesc.CreateDefault(
|
||||
RendererListType.Opaque));
|
||||
|
||||
protected override void AddRenderPasses(
|
||||
RenderingData renderingData)
|
||||
|
||||
Reference in New Issue
Block a user