You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

61 lines
2.5 KiB
C#

using System.Collections.Generic;
using UnityEngine.Serialization;
#if ENVIRO_LWRP && ENVIRO_HD
namespace UnityEngine.Rendering.LWRP
{
public class EnviroDistanceBlurLWRP : UnityEngine.Rendering.Universal.ScriptableRendererFeature
{
EnviroDistanceBlurPass blitPass;
private Camera myCam;
private Material postProcessMat;
private Texture2D distributionTexture;
private void CreateMaterialsAndTextures()
{
if (postProcessMat == null)
postProcessMat = new Material(Shader.Find("Hidden/EnviroDistanceBlur"));
if (distributionTexture == null)
distributionTexture = Resources.Load("tex_enviro_linear", typeof(Texture2D)) as Texture2D;
}
public override void Create()
{
if (EnviroSkyMgr.instance == null || EnviroSky.instance == null)
return;
CreateMaterialsAndTextures();
blitPass = new EnviroDistanceBlurPass(UnityEngine.Rendering.Universal.RenderPassEvent.BeforeRenderingTransparents, postProcessMat, distributionTexture);
}
public override void AddRenderPasses(UnityEngine.Rendering.Universal.ScriptableRenderer renderer, ref UnityEngine.Rendering.Universal.RenderingData renderingData)
{
if (renderingData.cameraData.camera.cameraType == CameraType.Preview || renderingData.cameraData.camera.cameraType == CameraType.Reflection)
return;
myCam = renderingData.cameraData.camera;
if (EnviroSkyMgr.instance != null && EnviroSky.instance != null && EnviroSkyMgr.instance.useDistanceBlur)
{
if(EnviroSky.instance.RenderEnviroOnThisCam(renderingData.cameraData.camera) == false)
return;
if (renderingData.cameraData.isSceneViewCamera && !EnviroSky.instance.showDistanceBlurInEditor)
return;
// var src = renderer.cameraColorTarget;
var dest = UnityEngine.Rendering.Universal.RenderTargetHandle.CameraTarget;
CreateMaterialsAndTextures();
if(blitPass == null)
blitPass = new EnviroDistanceBlurPass(UnityEngine.Rendering.Universal.RenderPassEvent.BeforeRenderingTransparents, postProcessMat, distributionTexture);
blitPass.Setup(myCam, renderer, dest);
renderer.EnqueuePass(blitPass);
}
}
}
}
#endif