49 lines
1.0 KiB
C#
49 lines
1.0 KiB
C#
|
|
using System;
|
||
|
|
using UnityEngine;
|
||
|
|
using UnityEngine.Rendering;
|
||
|
|
using UnityEngine.Rendering.Universal;
|
||
|
|
|
||
|
|
[DisallowMultipleRendererFeature("Moment Based Order-Independent Transparency")]
|
||
|
|
public class MOITFeature : ScriptableRendererFeature
|
||
|
|
{
|
||
|
|
[Serializable]
|
||
|
|
class Settings
|
||
|
|
{
|
||
|
|
}
|
||
|
|
|
||
|
|
[SerializeField]
|
||
|
|
Settings settings;
|
||
|
|
|
||
|
|
MOITPass pass;
|
||
|
|
|
||
|
|
public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData)
|
||
|
|
{
|
||
|
|
var cam = renderingData.cameraData;
|
||
|
|
if (cam.cameraType != CameraType.Game && cam.cameraType != CameraType.SceneView)
|
||
|
|
{
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
renderer.EnqueuePass(pass);
|
||
|
|
}
|
||
|
|
|
||
|
|
public override void Create()
|
||
|
|
{
|
||
|
|
pass = new(settings);
|
||
|
|
}
|
||
|
|
|
||
|
|
class MOITPass : ScriptableRenderPass
|
||
|
|
{
|
||
|
|
private Settings settings;
|
||
|
|
|
||
|
|
public MOITPass(Settings settings)
|
||
|
|
{
|
||
|
|
this.settings = settings;
|
||
|
|
}
|
||
|
|
|
||
|
|
public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData)
|
||
|
|
{
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|