Ejemplo n.º 1
0
        protected void UpdateDownsamplerCommandBuffer()
        {
            RtDownsampler.Release();

#if UNITY_2017_2_OR_NEWER
            if (UnityEngine.XR.XRSettings.eyeTextureWidth > 0 && UnityEngine.XR.XRSettings.eyeTextureHeight != 0)
            {
                if (RtDownsampler.width != UnityEngine.XR.XRSettings.eyeTextureWidth * 2 ||
                    RtDownsampler.height != UnityEngine.XR.XRSettings.eyeTextureHeight)
                {
                    RtDownsampler.Release();
                    RtDownsampler.width  = UnityEngine.XR.XRSettings.eyeTextureWidth * 2;
                    RtDownsampler.height = UnityEngine.XR.XRSettings.eyeTextureHeight;
                    RtDownsampler.Create();
                }
            }
#else
            if (UnityEngine.XR.XRSettings.eyeTextureWidth > 0 && UnityEngine.XR.XRSettings.eyeTextureHeight > 0)
            {
                if (RtDownsampler.width != UnityEngine.VR.VRSettings.eyeTextureWidth ||
                    RtDownsampler.height != UnityEngine.VR.VRSettings.eyeTextureHeight)
                {
                    RtDownsampler.Release();
                    RtDownsampler.width  = UnityEngine.VR.VRSettings.eyeTextureWidth;
                    RtDownsampler.height = UnityEngine.VR.VRSettings.eyeTextureHeight;
                    RtDownsampler.Create();
                }
            }
#endif

            // fix for VR black screen
            MaterialCurrent.SetOverrideTag("RenderType", "Opaque");
            MaterialCurrent.SetInt("_SrcBlend", (int)BlendMode.One);
            MaterialCurrent.SetInt("_DstBlend", (int)BlendMode.Zero);
            MaterialCurrent.SetInt("_ZWrite", 1);
            MaterialCurrent.renderQueue = -1;

            MaterialDefault.SetOverrideTag("RenderType", "Opaque");
            MaterialDefault.SetInt("_SrcBlend", (int)BlendMode.One);
            MaterialDefault.SetInt("_DstBlend", (int)BlendMode.Zero);
            MaterialDefault.SetInt("_ZWrite", 1);
            MaterialDefault.renderQueue = -1;

#if UNITY_2017_2_OR_NEWER
            MaterialCurrent.SetFloat("_ResizeWidth", UnityEngine.XR.XRSettings.eyeTextureWidth);
            MaterialCurrent.SetFloat("_ResizeHeight", UnityEngine.XR.XRSettings.eyeTextureHeight);
#else
            MaterialCurrent.SetFloat("_ResizeWidth", UnityEngine.VR.VRSettings.eyeTextureWidth);
            MaterialCurrent.SetFloat("_ResizeHeight", UnityEngine.VR.VRSettings.eyeTextureHeight);
#endif
            MaterialCurrent.SetFloat("_Sharpness", DownsamplerSharpness);
            MaterialCurrent.SetFloat("_SampleDistance", DownsamplerDistance);

            MaterialFXAA.SetVector("_QualitySettings", new Vector3(1.0f, 0.063f, 0.0312f));
            MaterialFXAA.SetVector("_ConsoleSettings", new Vector4(0.5f, 2.0f, 0.125f, 0.04f));
            MaterialFXAA.SetFloat("_Intensity", 1);
        }
Ejemplo n.º 2
0
        protected override void OnInitialize()
        {
            if (currentCamera == null)
            {
                currentCamera = GetComponent <Camera>();
            }

            // fix for VR black screen
            MaterialBicubic.SetOverrideTag("RenderType", "Opaque");
            MaterialBicubic.SetInt("_SrcBlend", (int)BlendMode.One);
            MaterialBicubic.SetInt("_DstBlend", (int)BlendMode.Zero);
            MaterialBicubic.SetInt("_ZWrite", 1);
            MaterialBicubic.renderQueue = -1;

            MaterialBilinear.SetOverrideTag("RenderType", "Opaque");
            MaterialBilinear.SetInt("_SrcBlend", (int)BlendMode.One);
            MaterialBilinear.SetInt("_DstBlend", (int)BlendMode.Zero);
            MaterialBilinear.SetInt("_ZWrite", 1);
            MaterialBilinear.renderQueue = -1;

            MaterialDefault.SetOverrideTag("RenderType", "Opaque");
            MaterialDefault.SetInt("_SrcBlend", (int)BlendMode.One);
            MaterialDefault.SetInt("_DstBlend", (int)BlendMode.Zero);
            MaterialDefault.SetInt("_ZWrite", 1);
            MaterialDefault.renderQueue = -1;

            MaterialCurrent = MaterialDefault;
            MaterialOld     = MaterialCurrent;

            if (Pipeline == RenderPipelineUtils.PipelineType.BuiltInPipeline)
            {
                SetupDownsamplerCommandBuffer();
            }
#if SSAA_URP && UNITY_2019_3_OR_NEWER
            UniversalCamDataCurrent = GetComponent <UniversalAdditionalCameraData>();
            if (!UniversalCamDataCurrent)
            {
                UniversalCamDataCurrent = gameObject.AddComponent <UniversalAdditionalCameraData>();
            }
#elif SSAA_URP
            LwrpCamDataCurrent = GetComponent <LWRPAdditionalCameraData>();
            if (!LwrpCamDataCurrent)
            {
                LwrpCamDataCurrent = gameObject.AddComponent <LWRPAdditionalCameraData>();
            }
#elif SSAA_HDRP
            HdCamDataCurrent = GetComponent <HDAdditionalCameraData>();
            if (!HdCamDataCurrent)
            {
                HdCamDataCurrent = gameObject.AddComponent <HDAdditionalCameraData>();
            }
#endif
            Initialized = true;
        }