void OnEnable()
 {
     myCam = GetComponent <Camera>();
     CreateMaterialsAndTextures();
     SetReprojectionPixelSize(reprojectionResolution);
     currentReprojectionPixelSize = reprojectionResolution;
 }
    void Update()
    {
        if (EnviroSky.instance == null)
        {
            return;
        }

        if (currentReprojectionPixelSize != reprojectionResolution)
        {
            currentReprojectionPixelSize = reprojectionResolution;
            SetReprojectionPixelSize(reprojectionResolution);
        }
    }
    public void SetReprojectionPixelSize(EnviroVolumeCloudsQualitySettings.ReprojectionPixelSize pSize)
    {
        switch (pSize)
        {
        case EnviroVolumeCloudsQualitySettings.ReprojectionPixelSize.Off:
            reprojectionPixelSize = 1;
            break;

        case EnviroVolumeCloudsQualitySettings.ReprojectionPixelSize.Low:
            reprojectionPixelSize = 2;
            break;

        case EnviroVolumeCloudsQualitySettings.ReprojectionPixelSize.Medium:
            reprojectionPixelSize = 4;
            break;

        case EnviroVolumeCloudsQualitySettings.ReprojectionPixelSize.High:
            reprojectionPixelSize = 8;
            break;
        }

        frameList = CalculateFrames(reprojectionPixelSize);
    }
Ejemplo n.º 4
0
        public override void AddRenderPasses(UnityEngine.Rendering.Universal.ScriptableRenderer renderer, ref UnityEngine.Rendering.Universal.RenderingData renderingData)
        {
            if (EnviroSkyMgr.instance != null && EnviroSky.instance != null && EnviroSkyMgr.instance.useVolumeClouds && EnviroSky.instance.PlayerCamera != null)
            {
                if (renderingData.cameraData.camera.cameraType == CameraType.Preview)
                {
                    return;
                }

                myCam = renderingData.cameraData.camera;

                var src  = renderer.cameraColorTarget;
                var dest = UnityEngine.Rendering.Universal.RenderTargetHandle.CameraTarget;

                if (currentReprojectionPixelSize != EnviroSky.instance.cloudsSettings.cloudsQualitySettings.reprojectionPixelSize)
                {
                    currentReprojectionPixelSize = EnviroSky.instance.cloudsSettings.cloudsQualitySettings.reprojectionPixelSize;
                    SetReprojectionPixelSize(EnviroSky.instance.cloudsSettings.cloudsQualitySettings.reprojectionPixelSize);
                }

                if (renderingData.cameraData.isSceneViewCamera && !EnviroSky.instance.showVolumeCloudsInEditor)
                {
                    return;
                }

                RenderVolumeClouds(renderingData.cameraData.cameraTargetDescriptor);

                if (blitPass == null)
                {
                    Create();
                }

                blitPass.Setup(src, dest);

                renderer.EnqueuePass(blitPass);
            }
        }