49 lines
1.3 KiB
C#
49 lines
1.3 KiB
C#
using XCEngine;
|
|
using XCEngine.Rendering;
|
|
|
|
namespace XCEngine.Rendering.Universal
|
|
{
|
|
public sealed class BuiltinVolumetricRendererFeature
|
|
: ScriptableRendererFeature
|
|
{
|
|
public RenderPassEvent passEvent =
|
|
RenderPassEvent.BeforeRenderingTransparents;
|
|
private readonly UniversalNativeSceneFeatureController m_controller =
|
|
new UniversalNativeSceneFeatureController(
|
|
NativeSceneFeaturePassId
|
|
.BuiltinVolumetric);
|
|
|
|
protected override int ComputeRuntimeStateHash()
|
|
{
|
|
int hash =
|
|
base.ComputeRuntimeStateHash();
|
|
return m_controller.AppendRuntimeStateHash(
|
|
hash,
|
|
passEvent);
|
|
}
|
|
|
|
public override void Create()
|
|
{
|
|
m_controller.Create(passEvent);
|
|
}
|
|
|
|
public override void AddRenderPasses(
|
|
ScriptableRenderer renderer,
|
|
RenderingData renderingData)
|
|
{
|
|
if (renderer == null ||
|
|
renderingData == null ||
|
|
!renderingData.isMainSceneStage)
|
|
{
|
|
return;
|
|
}
|
|
|
|
CreateInstance();
|
|
m_controller.EnqueuePass(
|
|
renderer,
|
|
renderingData,
|
|
passEvent);
|
|
}
|
|
}
|
|
}
|