71 lines
1.9 KiB
C#
71 lines
1.9 KiB
C#
using System;
|
|
using XCEngine;
|
|
using XCEngine.Rendering;
|
|
|
|
namespace XCEngine.Rendering.Universal
|
|
{
|
|
public class UniversalRendererData : ScriptableRendererData
|
|
{
|
|
public UniversalMainSceneData mainScene;
|
|
public ShadowCasterBlockData shadowCaster;
|
|
public DepthPrepassBlockData depthPrepass;
|
|
|
|
public UniversalRendererData()
|
|
{
|
|
mainScene = UniversalMainSceneData.CreateDefault();
|
|
shadowCaster = ShadowCasterBlockData.CreateDefault();
|
|
depthPrepass = DepthPrepassBlockData.CreateDefault();
|
|
ResetRendererFeaturesToDefault();
|
|
}
|
|
|
|
protected override ScriptableRenderer CreateRenderer()
|
|
{
|
|
return new UniversalRenderer(this);
|
|
}
|
|
|
|
protected override ScriptableRendererFeature[]
|
|
CreateDefaultRendererFeatures()
|
|
{
|
|
return new ScriptableRendererFeature[]
|
|
{
|
|
new BuiltinGaussianSplatRendererFeature(),
|
|
new BuiltinVolumetricRendererFeature()
|
|
};
|
|
}
|
|
|
|
internal UniversalMainSceneData GetMainSceneInstance()
|
|
{
|
|
if (mainScene == null)
|
|
{
|
|
mainScene =
|
|
UniversalMainSceneData.CreateDefault();
|
|
}
|
|
|
|
return mainScene;
|
|
}
|
|
|
|
internal ShadowCasterBlockData GetShadowCasterBlockInstance()
|
|
{
|
|
if (shadowCaster == null)
|
|
{
|
|
shadowCaster =
|
|
ShadowCasterBlockData.CreateDefault();
|
|
}
|
|
|
|
return shadowCaster;
|
|
}
|
|
|
|
internal DepthPrepassBlockData GetDepthPrepassBlockInstance()
|
|
{
|
|
if (depthPrepass == null)
|
|
{
|
|
depthPrepass =
|
|
DepthPrepassBlockData.CreateDefault();
|
|
}
|
|
|
|
return depthPrepass;
|
|
}
|
|
}
|
|
}
|
|
|