コード例 #1
0
ファイル: DissolveGlowManager.cs プロジェクト: zwong91/Titan
        public override void Awake()
        {
            InstanceList.Add(this);
            DissloveObj             = new GameObject();
            DissloveObj.name        = "DissloveGlowCamera";
            DissloveObj.hideFlags   = HideFlags.HideAndDontSave;
            DissloveCam             = DissloveObj.AddComponent <Camera>();
            DissloveCam.cullingMask = (1 << LayerMask.NameToLayer("LightingEffectOnly"));
            DissloveCam.enabled     = false;
            if (settings == null)
            {
                settings = new GlowSettings();
            }
            settings.baseResolution  = Resolution.Half;
            settings.boostStrength   = 3;
            settings.downsampleSteps = 1;

            HostCamera    = GetComponent <Camera>();
            highPrecision = _highPrecsion;

            if (Application.isPlaying)
            {
                Shader shader = ImageEffectManager.API_GetShader("ImageEffect/DissloveGlowMask");
                if (mat)
                {
                    Destroy(mat);
                    mat = null;
                }
                mat = new Material(shader);
            }

            base.Awake();
            InitRender();
            InitCamera();
        }
コード例 #2
0
ファイル: WarFog.cs プロジェクト: zwong91/Titan
        public void Init()
        {
            if (FogShader == null)
            {
                FogShader = ImageEffectManager.API_GetShader("ImageEffect/WarFog");
            }

            if (FogShader)
            {
                if (FogShader.isSupported)
                {
                    if (mat)
                    {
                        Destroy(mat);
                        mat = null;
                    }
                    mat = new Material(FogShader);
                    //mat.hideFlags = HideFlags.HideAndDontSave;
                }
                else
                {
                    enabled = false;
                }
            }
            else
            {
                enabled = false;
            }
        }
コード例 #3
0
ファイル: SunShafts.cs プロジェクト: zwong91/Titan
        public override bool CheckResources()
        {
            CheckSupport(true);

            if (null == sunShaftsShader)
            {
                sunShaftsShader = ImageEffectManager.API_GetShader("ImageEffect/SunShaft/SunShaftsComposite");
            }
            if (null == simpleClearShader)
            {
                simpleClearShader = ImageEffectManager.API_GetShader("ImageEffect/Common/SimpleClear");
            }
            sunShaftsMaterial   = CheckShaderAndCreateMaterial(sunShaftsShader, sunShaftsMaterial);
            simpleClearMaterial = CheckShaderAndCreateMaterial(simpleClearShader, simpleClearMaterial);

            if (!isSupported)
            {
                ReportAutoDisable();
            }
            canUseMask = false;
            var skybox = RenderSettings.skybox;

            if (skybox)
            {
                if (skybox.HasProperty("_Tint"))
                {
                    canUseMask = true;
                }
            }
            return(isSupported);
        }
コード例 #4
0
        public override bool CheckResources()
        {
            CheckSupport(false, true);

            Shader tonemapper = null;

            if (!tonemapper)
            {
                tonemapper = ImageEffectManager.API_GetShader("Hidden/Tonemapper");
            }

            tonemapMaterial = CheckShaderAndCreateMaterial(tonemapper, tonemapMaterial);
            if (!curveTex && type == TonemapperType.UserCurve)
            {
                curveTex            = new Texture2D(256, 1, TextureFormat.ARGB32, false, true);
                curveTex.filterMode = FilterMode.Bilinear;
                curveTex.wrapMode   = TextureWrapMode.Clamp;
                curveTex.hideFlags  = HideFlags.DontSave;
                curveTex.name       = "curveTex";
            }

            if (!isSupported)
            {
                ReportAutoDisable();
            }
            return(isSupported);
        }
コード例 #5
0
ファイル: SSAOPro.cs プロジェクト: zwong91/Titan
        public bool prepareMaterials()
        {
            if (mAOShader == null)
            {
                mAOShader = ImageEffectManager.API_GetShader(k_ShaderString);

                if (mAOShader != null)
                {
                    if (mAOMat == null)
                    {
                        mAOMat           = new Material(mAOShader);
                        mAOMat.hideFlags = HideFlags.HideAndDontSave;
                    }
                }
            }

            if (mBlitShader == null)
            {
                mBlitShader = ImageEffectManager.API_GetShader(k_BlitShaderString);

                if (mBlitShader != null)
                {
                    if (mBlitMat == null)
                    {
                        mBlitMat           = new Material(mBlitShader);
                        mBlitMat.hideFlags = HideFlags.HideAndDontSave;
                    }
                }
            }

            return(mAOMat != null && mBlitMat != null);
        }
コード例 #6
0
ファイル: FXAA.cs プロジェクト: zwong91/Titan
        public override bool CheckResources()
        {
            if (!shader)
            {
                shader = ImageEffectManager.API_GetShader("Hidden/FXAA Preset 2");
            }
            CheckSupport(true);

            if (mat == null)
            {
                mat = CheckShaderAndCreateMaterial(shader, mat);
            }

            if (!isSupported)
            {
                ReportAutoDisable();
            }

            //新的支持头顶文字不反锯齿
            if (topNameShader == null)
            {
                topNameShader = ImageEffectManager.API_GetShader("Effect/BillBoradFXAA");
            }

            if (blendShader == null)
            {
                blendShader = ImageEffectManager.API_GetShader("Hidden/BlendNameShader");
                blendMat    = CheckShaderAndCreateMaterial(blendShader, blendMat);
            }

            if (topNameCam == null)
            {
                obj        = new GameObject("CpyCam");
                topNameCam = obj.AddComponent <Camera>();
            }

            if (updateCamera)
            {
                obj.transform.position = gameObject.transform.position;
                obj.transform.rotation = gameObject.transform.rotation;

                topNameCam.CopyFrom(GetComponent <Camera>());
                topNameCam.renderingPath = RenderingPath.VertexLit;

                topNameCam.clearFlags      = CameraClearFlags.Color;
                topNameCam.backgroundColor = new Color(0, 0, 0, 0);
                topNameCam.enabled         = false;
                topNameCam.cullingMask     = LayerMask.GetMask("TopName"); //1 << 21;;
            }

            if (topNameShader == null)
            {
                Debug.Log("头顶文字Shader没有!!");
            }
            //end新的支持头顶文字不反锯齿

            return(isSupported);
        }
コード例 #7
0
 public void InitRender()
 {
     m_CommandBuffer      = new CommandBuffer();
     m_CommandBuffer.name = "GlowOutLineCommandBuffer";
     if (Application.isPlaying)
     {
         Shader s = ImageEffectManager.API_GetShader("Effect/Glow/GlowOutLineObjects");
         GlowOutLineMaterial = new Material(s);
     }
 }
コード例 #8
0
        private static Material CreateMaterial(string shadername)
        {
            if (string.IsNullOrEmpty(shadername))
            {
                return(null);
            }
            Material material = new Material(ImageEffectManager.API_GetShader(shadername));

            //material.hideFlags = HideFlags.HideAndDontSave;
            return(material);
        }
コード例 #9
0
        public override bool CheckResources()
        {
            CheckSupport(true);      // only requires depth, not HDR

            dofHdrMaterial = CheckShaderAndCreateMaterial(ImageEffectManager.API_GetShader("ImageEffect/DepthOfField"), dofHdrMaterial);

            if (!isSupported)
            {
                ReportAutoDisable();
            }

            return(isSupported);
        }
コード例 #10
0
ファイル: DefaultBlur.cs プロジェクト: zwong91/Titan
        public DefaultBlur()
        {
            Shader shader = ImageEffectManager.API_GetShader("ImageEffect/Glow/Compose Max");

            if (!shader.isSupported)
            {
                shader      = ImageEffectManager.API_GetShader("ImageEffect/Glow/Compose Max Fallback");
                maxFallback = true;
            }
            composeMaxMaterial = new Material(shader);
            //composeMaxMaterial.hideFlags = HideFlags.DontSave;
            InitHighQualityGlow();
        }
コード例 #11
0
        public override bool CheckResources()
        {
            CheckSupport(true);

            Shader sh = ImageEffectManager.API_GetShader("ImageEffect/ColorCorrection/Lut Generator");

            lutMaterial = CheckShaderAndCreateMaterial(sh, lutMaterial);

            sh           = ImageEffectManager.API_GetShader("ImageEffect/ColorCorrection/Uber Shader");
            uberMaterial = CheckShaderAndCreateMaterial(sh, uberMaterial);


            return(isSupported);
        }
コード例 #12
0
ファイル: GlowManager_Render.cs プロジェクト: zwong91/Titan
        public void InitRender()
        {
            m_CommandBuffer      = new CommandBuffer();
            m_CommandBuffer.name = "GlowCommandBuffer";

            if (Application.isPlaying)
            {
                OpaqueGlow          = new Material(ImageEffectManager.API_GetShader("Effect/Glow/GlowOpaqueObjects"));
                AlphaGlow           = new Material(ImageEffectManager.API_GetShader("Effect/Glow/GlowAlphaObjects"));
                CutOutGlow          = new Material(ImageEffectManager.API_GetShader("Effect/Glow/GlowCutOutObjects"));
                DefaultGlowMaterial = new Material(OpaqueGlow);
                DefaultGlowMaterial.EnableKeyword("GLOW_GLOWCOLOR");
            }
        }
コード例 #13
0
        public override bool CheckResources()
        {
            CheckSupport(false);

            Shader BloomShader = ImageEffectManager.API_GetShader("ImageEffect/BloomAndFlare/OptmizedBloom");

            BloomMaterial = CheckShaderAndCreateMaterial(BloomShader, BloomMaterial);

            if (!isSupported)
            {
                ReportAutoDisable();
            }
            return(isSupported);
        }
コード例 #14
0
        public void InitRender()
        {
            m_CommandBuffer      = new CommandBuffer();
            m_CommandBuffer.name = "DissolveGlowCommandBuffer";
            if (Application.isPlaying)
            {
                Shader s = ImageEffectManager.API_GetShader("Effect/Glow/GlowDissloveOpaqueObjects");
                GlowDissloveOpaqueMaterial = new Material(s);

                s = ImageEffectManager.API_GetShader("Effect/Glow/GlowDissloveAlphaObjects");
                GlowDissloveAlphaMaterial = new Material(s);

                DefaultDissolveGlowMaterial = new Material(s);
            }
        }
コード例 #15
0
        public override bool CheckResources()
        {
            if (!fogShader)
            {
                fogShader = ImageEffectManager.API_GetShader("ImageEffect/GlobalFog");
            }
            CheckSupport(true);

            fogMaterial = CheckShaderAndCreateMaterial(fogShader, fogMaterial);

            if (!isSupported)
            {
                ReportAutoDisable();
            }
            return(isSupported);
        }
コード例 #16
0
ファイル: GlowOutLineBlur.cs プロジェクト: zwong91/Titan
        public GlowOutLineBlur()
        {
            Shader shader = ImageEffectManager.API_GetShader("ImageEffect/Glow/Compose Max");

            if (!shader.isSupported)
            {
                shader      = ImageEffectManager.API_GetShader("ImageEffect/Glow/Compose Max Fallback");
                maxFallback = true;
            }
            composeMaxMaterial = new Material(shader);
            //composeMaxMaterial.hideFlags = HideFlags.DontSave;

            Shader BlendShader = ImageEffectManager.API_GetShader("ImageEffect/Glow/GlowOutLine/BlendToScreen");

            BlendToScreen = new Material(BlendShader);
            //BlendToScreen.hideFlags = HideFlags.DontSave;
        }
コード例 #17
0
        public override bool CheckResources()
        {
            CheckSupport(false);

            vignetteShader        = ImageEffectManager.API_GetShader("ImageEffect/Chromatic_Vignette");
            separableBlurShader   = ImageEffectManager.API_GetShader("ImageEffect/Chromatic_Blur");
            chromAberrationShader = ImageEffectManager.API_GetShader("ImageEffect/ChromaticAberration");

            vignetteMaterial        = CheckShaderAndCreateMaterial(vignetteShader, vignetteMaterial);
            separableBlurMaterial   = CheckShaderAndCreateMaterial(separableBlurShader, separableBlurMaterial);
            chromAberrationMaterial = CheckShaderAndCreateMaterial(chromAberrationShader, chromAberrationMaterial);

            if (!isSupported)
            {
                ReportAutoDisable();
            }
            return(isSupported);
        }
コード例 #18
0
        public override bool CheckResources()
        {
            if (!shader)
            {
                shader = ImageEffectManager.API_GetShader("Hidden/EdgeDetect");
            }

            CheckSupport(true);

            edgeDetectMaterial = CheckShaderAndCreateMaterial(shader, edgeDetectMaterial);
            SetCameraFlag();

            if (!isSupported)
            {
                ReportAutoDisable();
            }
            return(isSupported);
        }
コード例 #19
0
        void InitHighQualityGlow()
        {
            if (Application.isPlaying && GlowManager.isSupportedHighQualityGlow)
            {
                HighQualityGlowShader = ImageEffectManager.API_GetShader("ImageEffect/Glow/HighQualityGlow");
                if (!HighQualityGlowShader)
                {
                    Debug.LogError("找不到HighQualityGlowShader - ImageEffect/Glow/HighQualityGlow");
                    return;
                }

                if (!HighQualityGlowMaterial)
                {
                    HighQualityGlowMaterial = new Material(HighQualityGlowShader);
                    //HighQualityGlowMaterial.hideFlags = HideFlags.HideAndDontSave;
                }
            }
        }
コード例 #20
0
ファイル: BlurBase.cs プロジェクト: zwong91/Titan
        public BlurBase()
        {
            Shader compaseShader = ImageEffectManager.API_GetShader("ImageEffect/Glow/Compose");
            Shader blurShader    = ImageEffectManager.API_GetShader("ImageEffect/Glow/Blur GL");

            if (!blurShader.isSupported)
            {
                glMode     = false;
                blurShader = ImageEffectManager.API_GetShader("ImageEffect/Glow/Blur");
            }
            Shader downSampleShader = ImageEffectManager.API_GetShader("ImageEffect/Glow/Downsample");

            composeMaterial = new Material(compaseShader);
            //composeMaterial.hideFlags = HideFlags.DontSave;
            blurMaterial = new Material(blurShader);
            // blurMaterial.hideFlags = HideFlags.DontSave;
            downsampleMaterial = new Material(downSampleShader);
            // downsampleMaterial.hideFlags = HideFlags.DontSave;
        }
コード例 #21
0
ファイル: CameraMotionBlur.cs プロジェクト: zwong91/Titan
        public override bool CheckResources()
        {
            if (!shader)
            {
                shader = ImageEffectManager.API_GetShader("Hidden/CameraMotionBlur");
            }

            CheckSupport(true, true);      // depth & hdr needed
            motionBlurMaterial = CheckShaderAndCreateMaterial(shader, motionBlurMaterial);

            if (supportDX11 && filterType == MotionBlurFilter.ReconstructionDX11)
            {
                dx11MotionBlurMaterial = CheckShaderAndCreateMaterial(dx11MotionBlurShader, dx11MotionBlurMaterial);
            }

            if (!isSupported)
            {
                ReportAutoDisable();
            }

            return(isSupported);
        }
コード例 #22
0
ファイル: FullScreenSaturation.cs プロジェクト: zwong91/Titan
        public void Init()
        {
            if (simpleColorCorrectionCurvesShader == null)
            {
                simpleColorCorrectionCurvesShader = ImageEffectManager.API_GetShader("ImageEffect/FullScreenSaturation");
            }

            if (simpleColorCorrectionCurvesShader)
            {
                if (simpleColorCorrectionCurvesShader.isSupported)
                {
                    ccMaterial = CheckShaderAndCreateMaterial(simpleColorCorrectionCurvesShader, ccMaterial);
                }
                else
                {
                    enabled = false;
                }
            }
            else
            {
                enabled = false;
            }
        }
コード例 #23
0
        public override void Awake()
        {
            base.Awake();
            CustomDepth_SHADER  = ImageEffectManager.API_GetShader("ImageEffect/SSRR/DepthSSRR");
            CustomNormal_SHADER = ImageEffectManager.API_GetShader("ImageEffect/SSRR/WorldNormal");

            d3d = SystemInfo.graphicsDeviceVersion.IndexOf("Direct3D") > -1;

            if (!RTcustom_CAMERA)
            {
                GameObject go = new GameObject("RenderCamPos", typeof(Camera));
                go.hideFlags    = HideFlags.HideAndDontSave;
                RTcustom_CAMERA = go.GetComponent <Camera>();
                RTcustom_CAMERA.CopyFrom(m_Camera);
                RTcustom_CAMERA.clearFlags      = CameraClearFlags.Color;
                RTcustom_CAMERA.renderingPath   = RenderingPath.Forward;
                RTcustom_CAMERA.backgroundColor = new Color(0, 0, 0, 0);
                RTcustom_CAMERA.enabled         = false;
            }

            SSRR_MATERIAL           = new Material(ImageEffectManager.API_GetShader("ImageEffect/SSRR/Core"));
            SSRR_MATERIAL.hideFlags = HideFlags.HideAndDontSave;

            POST_COMPOSE_MATERIAL           = new Material(ImageEffectManager.API_GetShader("ImageEffect/SSRR/Compose"));
            POST_COMPOSE_MATERIAL.hideFlags = HideFlags.HideAndDontSave;

            TOKSVIG_MAT           = new Material(ImageEffectManager.API_GetShader("ImageEffect/SSRR/Toksvig"));
            TOKSVIG_MAT.hideFlags = HideFlags.HideAndDontSave;

            LUMACOMP_MAT           = new Material(ImageEffectManager.API_GetShader("ImageEffect/SSRR/LumaComp"));
            LUMACOMP_MAT.hideFlags = HideFlags.HideAndDontSave;

            if (mat_gaussblur == null)
            {
                mat_gaussblur = CreateMaterial("ImageEffect/SSRR/GausFast");
            }
        }
コード例 #24
0
        public void Init()
        {
            if (shader == null)
            {
                shader = ImageEffectManager.API_GetShader("ImageEffect/VolumetricLightScattering");
            }

            if (shader)
            {
                if (shader.isSupported)
                {
                    mat = new Material(shader);
                    // mat.hideFlags = HideFlags.HideAndDontSave;
                }
                else
                {
                    enabled = false;
                }
            }
            else
            {
                enabled = false;
            }
        }
コード例 #25
0
ファイル: ModifyGameBrightness.cs プロジェクト: zwong91/Titan
 public void Init()
 {
     mat = new Material(ImageEffectManager.API_GetShader("ImageEffect/Common/ModifyGameBrightness"));
     //mat.hideFlags = HideFlags.HideAndDontSave;
 }