Adaug proiectul Unity

This commit is contained in:
2026-11-01 23:39:55 +02:00
parent cb14d9d37d
commit 863eac8f2c
23463 changed files with 5412601 additions and 0 deletions
@@ -0,0 +1,79 @@
using UnityEngine;
using UnityEngine.Rendering;
using UnityEngine.Rendering.Universal;
//-----------------------------------------------------------------------
// Author: Colby-O
// File: CRTRendererFeature.cs
//-----------------------------------------------------------------------
namespace ColbyO.VNTG.CRT
{
public sealed class CRTRendererFeature : ScriptableRendererFeature
{
[Header("References")]
[SerializeField] private Shader _shader;
[Header("Options")]
[SerializeField] private RenderPassEvent _injectionPoint = RenderPassEvent.BeforeRenderingPostProcessing;
private Material _material;
private CRTRendererPass _crtPass;
public override void Create()
{
if (_shader == null)
{
_shader = Shader.Find("Hidden/CRTFilter_URP");
}
if (_material == null && _shader != null)
{
_material = CoreUtils.CreateEngineMaterial(_shader);
}
if (_crtPass == null)
{
_crtPass = new CRTRendererPass(_material);
_crtPass.renderPassEvent = _injectionPoint;
}
}
protected override void Dispose(bool disposing)
{
if (_material != null) CoreUtils.Destroy(_material);
_crtPass?.Cleanup();
_material = null;
_crtPass = null;
}
public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData)
{
if (_material == null || _crtPass == null) return;
VolumeStack stack = VolumeManager.instance.stack;
CRTSettings settings = stack.GetComponent<CRTSettings>();
bool isGameCamera = renderingData.cameraData.cameraType == CameraType.Game;
bool isSceneView = renderingData.cameraData.cameraType == CameraType.SceneView && settings.ShowInSceneView.value;
if (
settings != null &&
settings.IsActive() &&
(isGameCamera || isSceneView)
)
{
_crtPass.Setup(_material);
_crtPass.ConfigureInput(ScriptableRenderPassInput.Color);
renderer.EnqueuePass(_crtPass);
}
else
{
#if UNITY_6000_4_OR_NEWER
_crtPass.Cleanup(renderingData.cameraData.camera.GetEntityId());
#else
_crtPass.Cleanup(renderingData.cameraData.camera.GetInstanceID());
#endif
}
}
}
}