// Update is called once per frame
    void Update()
    {
        if (Input.GetKeyUp(KeyCode.Space))
        {
            m_bLightning = !m_bLightning;
            ScreenSpaceAmbientOcclusion aoFilter = CameraPivot.GetComponentInChildren <ScreenSpaceAmbientOcclusion>();
            if (aoFilter)
            {
                aoFilter.enabled = this.m_bLightning;
            }
        }

        if (Input.GetKeyUp(KeyCode.Z))
        {
            m_bZoomed = !m_bZoomed;
            if (m_bZoomed)
            {
                Camera.transform.position = Camera.transform.position + Camera.transform.forward * 2f;
            }
            else
            {
                Camera.transform.position = Camera.transform.position - Camera.transform.forward * 2f;
            }
        }

        if (Input.GetKeyUp(KeyCode.A))
        {
            int iAnim = (m_iDefaultAnim++) % 3;
            foreach (Animator anim in CharacterAnim)
            {
                anim.SetInteger("Animation", iAnim);
            }
        }

        Vector3 positionToReach = m_bLightning ? LightningPivot.position : ToonPivot.position;

        if (Vector3.Distance(CameraPivot.transform.position, positionToReach) < .01f) // Camera reach position
        {
            CameraPivot.transform.position = positionToReach;
        }
        else
        {
            CameraPivot.transform.position = Vector3.Lerp(CameraPivot.transform.position, positionToReach, Time.deltaTime * 2f);
        }

        if (Input.GetKeyUp(KeyCode.S))
        {
            for (int i = 0; i < Princesses.Length; i++)
            {
                Princesses[i].Activate(i == m_iPrincess);
            }

            m_iPrincess = (m_iPrincess + 1) % Princesses.Length;
        }

        if (Input.GetKeyUp(KeyCode.Escape))
        {
            Application.Quit();
        }
    }
        private bool RendererIsDeferred()
        {
            ScreenSpaceAmbientOcclusion  ssaoFeature   = (ScreenSpaceAmbientOcclusion)this.target;
            UniversalRenderPipelineAsset pipelineAsset = (UniversalRenderPipelineAsset)GraphicsSettings.renderPipelineAsset;

            if (ssaoFeature == null || pipelineAsset == null)
            {
                return(false);
            }

            // We have to find the renderer related to the SSAO feature, then test if it is in deferred mode.
            var rendererDataList = pipelineAsset.m_RendererDataList;

            for (int rendererIndex = 0; rendererIndex < rendererDataList.Length; ++rendererIndex)
            {
                ScriptableRendererData rendererData = (ScriptableRendererData)rendererDataList[rendererIndex];
                if (rendererData == null)
                {
                    continue;
                }

                var rendererFeatures = rendererData.rendererFeatures;
                foreach (var feature in rendererFeatures)
                {
                    if (feature is ScreenSpaceAmbientOcclusion && (ScreenSpaceAmbientOcclusion)feature == ssaoFeature)
                    {
                        return(rendererData is UniversalRendererData && ((UniversalRendererData)rendererData).renderingMode == RenderingMode.Deferred);
                    }
                }
            }

            return(false);
        }
	// Use this for initialization
	void Start () {
        noiseAndGrain = GetComponent<NoiseAndGrain>();
        occlusion = GetComponent<ScreenSpaceAmbientOcclusion>();
        bloom = GetComponent<BloomOptimized>();

        qualityChanges();
	}
Esempio n. 4
0
    // Use this for initialization
    void Start()
    {
        noiseAndGrain = GetComponent <NoiseAndGrain>();
        occlusion     = GetComponent <ScreenSpaceAmbientOcclusion>();
        bloom         = GetComponent <BloomOptimized>();

        qualityChanges();
    }
 void Awake()
 {
     m_Bloom     = Camera.main.GetComponent <BloomOptimized>();
     m_Depth     = Camera.main.GetComponent <DepthOfField>();
     m_SSAO      = Camera.main.GetComponent <ScreenSpaceAmbientOcclusion>();
     m_SunShafts = Camera.main.GetComponent <SunShafts>();
     m_CCC       = Camera.main.GetComponent <ColorCorrectionCurves>();
 }
Esempio n. 6
0
    public void DisableSSAO()
    {
        ScreenSpaceAmbientOcclusion ssao = HeadCamera.GetComponent <ScreenSpaceAmbientOcclusion>();

        if (ssao != null)
        {
            ssao.enabled = false;
        }
    }
Esempio n. 7
0
 // Use this for initialization
 void Start()
 {
     _SSAO = GetComponent <ScreenSpaceAmbientOcclusion> ();
     PlayerPrefs.SetInt("SSAO", 0);
     _CE = GetComponent <ContrastEnhance> ();
     PlayerPrefs.SetInt("CE", 0);
     _Bloom = GetComponent <BloomOptimized> ();
     PlayerPrefs.SetInt("Bloom", 0);
     _Vignette = GetComponent <VignetteAndChromaticAberration> ();
     PlayerPrefs.SetInt("Vignette", 0);
 }
    private void Start()
    {
        musicManager   = GameObject.FindObjectOfType <MusicManager>();
        soundFXManager = GameObject.FindObjectOfType <SoundFXManager>();
        motionBlur     = camera.GetComponent <MotionBlur>();
        depthOfField   = camera.GetComponent <DepthOfField>();
        SSAO           = camera.GetComponent <ScreenSpaceAmbientOcclusion>();
        noiseAndGrain  = camera.GetComponent <NoiseAndGrain>();
        bloom          = camera.GetComponent <Bloom>();
        antiAliasing   = camera.GetComponent <Antialiasing>();
        fpsCap         = GameObject.FindObjectOfType <FPS_Cap>();

        musicScrollbar.value          = PlayerPrefsManager.GetMusicVolume();
        soundFXScrollbar.value        = PlayerPrefsManager.GetSoundFXVolume();
        motionBlurScrollbar.value     = PlayerPrefsManager.GetMotionBlur();
        depthOfFieldScrollbar.value   = PlayerPrefsManager.GetDepthOfField();
        SSAOScrollbar.value           = PlayerPrefsManager.GetSSAO();
        noiseAndGrainToggle.isOn      = PlayerPrefsManager.GetNoiseAndGrain();
        bloomToggle.isOn              = PlayerPrefsManager.GetBloom();
        antiAliasingDropdown.value    = PlayerPrefsManager.GetAntiAliasing();
        targetFrameRateDropdown.value = PlayerPrefsManager.GetTargetFramerate();
    }
Esempio n. 9
0
        private static ShaderFeatures GetSupportedShaderFeatures(UniversalRenderPipelineAsset pipelineAsset)
        {
            ShaderFeatures shaderFeatures;

            shaderFeatures = ShaderFeatures.MainLight;

            if (pipelineAsset.supportsMainLightShadows)
            {
                shaderFeatures |= ShaderFeatures.MainLightShadows;
            }

            if (pipelineAsset.additionalLightsRenderingMode == LightRenderingMode.PerVertex)
            {
                shaderFeatures |= ShaderFeatures.VertexLighting;
            }
            else if (pipelineAsset.additionalLightsRenderingMode == LightRenderingMode.PerPixel)
            {
                shaderFeatures |= ShaderFeatures.AdditionalLights;

                if (pipelineAsset.supportsAdditionalLightShadows)
                {
                    shaderFeatures |= ShaderFeatures.AdditionalLightShadows;
                }
            }

            bool anyShadows = pipelineAsset.supportsMainLightShadows ||
                              (shaderFeatures & ShaderFeatures.AdditionalLightShadows) != 0;

            if (pipelineAsset.supportsSoftShadows && anyShadows)
            {
                shaderFeatures |= ShaderFeatures.SoftShadows;
            }

            if (pipelineAsset.supportsMixedLighting)
            {
                shaderFeatures |= ShaderFeatures.MixedLighting;
            }

            if (pipelineAsset.supportsTerrainHoles)
            {
                shaderFeatures |= ShaderFeatures.TerrainHoles;
            }

            if (pipelineAsset.useFastSRGBLinearConversion)
            {
                shaderFeatures |= ShaderFeatures.UseFastSRGBLinearConversion;
            }

            if (pipelineAsset.supportsLightLayers)
            {
                shaderFeatures |= ShaderFeatures.LightLayers;
            }

            bool hasScreenSpaceShadows         = false;
            bool hasScreenSpaceOcclusion       = false;
            bool hasDeferredRenderer           = false;
            bool withAccurateGbufferNormals    = false;
            bool withoutAccurateGbufferNormals = false;

            int rendererCount = pipelineAsset.m_RendererDataList.Length;

            for (int rendererIndex = 0; rendererIndex < rendererCount; ++rendererIndex)
            {
                ScriptableRenderer renderer = pipelineAsset.GetRenderer(rendererIndex);
                if (renderer is UniversalRenderer)
                {
                    UniversalRenderer universalRenderer = (UniversalRenderer)renderer;
                    if (universalRenderer.renderingMode == RenderingMode.Deferred)
                    {
                        hasDeferredRenderer           |= true;
                        withAccurateGbufferNormals    |= universalRenderer.accurateGbufferNormals;
                        withoutAccurateGbufferNormals |= !universalRenderer.accurateGbufferNormals;
                    }
                }

                // Check for Screen Space Ambient Occlusion Renderer Feature
                ScriptableRendererData rendererData = pipelineAsset.m_RendererDataList[rendererIndex];
                if (rendererData != null)
                {
                    for (int rendererFeatureIndex = 0; rendererFeatureIndex < rendererData.rendererFeatures.Count; rendererFeatureIndex++)
                    {
                        ScriptableRendererFeature rendererFeature = rendererData.rendererFeatures[rendererFeatureIndex];

                        ScreenSpaceShadows ssshadows = rendererFeature as ScreenSpaceShadows;
                        hasScreenSpaceShadows |= ssshadows != null;

                        ScreenSpaceAmbientOcclusion ssao = rendererFeature as ScreenSpaceAmbientOcclusion;
                        hasScreenSpaceOcclusion |= ssao != null;
                    }
                }
            }

            if (hasDeferredRenderer)
            {
                shaderFeatures |= ShaderFeatures.DeferredShading;
            }

            // We can only strip accurateGbufferNormals related variants if all DeferredRenderers use the same option.
            if (withAccurateGbufferNormals)
            {
                shaderFeatures |= ShaderFeatures.DeferredWithAccurateGbufferNormals;
            }

            if (withoutAccurateGbufferNormals)
            {
                shaderFeatures |= ShaderFeatures.DeferredWithoutAccurateGbufferNormals;
            }

            if (hasScreenSpaceShadows)
            {
                shaderFeatures |= ShaderFeatures.ScreenSpaceShadows;
            }

            if (hasScreenSpaceOcclusion)
            {
                shaderFeatures |= ShaderFeatures.ScreenSpaceOcclusion;
            }

            return(shaderFeatures);
        }
Esempio n. 10
0
        private static ShaderFeatures GetSupportedShaderFeatures(UniversalRenderPipelineAsset pipelineAsset)
        {
            ShaderFeatures shaderFeatures;

            shaderFeatures = ShaderFeatures.MainLight;

            if (pipelineAsset.supportsMainLightShadows)
            {
                shaderFeatures |= ShaderFeatures.MainLightShadows;
            }

            if (pipelineAsset.additionalLightsRenderingMode == LightRenderingMode.PerVertex)
            {
                shaderFeatures |= ShaderFeatures.VertexLighting;
            }
            else if (pipelineAsset.additionalLightsRenderingMode == LightRenderingMode.PerPixel)
            {
                shaderFeatures |= ShaderFeatures.AdditionalLights;
            }

            bool anyShadows = pipelineAsset.supportsMainLightShadows ||
                              (shaderFeatures & ShaderFeatures.AdditionalLightShadows) != 0;

            if (pipelineAsset.supportsSoftShadows && anyShadows)
            {
                shaderFeatures |= ShaderFeatures.SoftShadows;
            }

            if (pipelineAsset.supportsMixedLighting)
            {
                shaderFeatures |= ShaderFeatures.MixedLighting;
            }

            if (pipelineAsset.supportsTerrainHoles)
            {
                shaderFeatures |= ShaderFeatures.TerrainHoles;
            }

            if (pipelineAsset.useFastSRGBLinearConversion)
            {
                shaderFeatures |= ShaderFeatures.UseFastSRGBLinearConversion;
            }

            if (pipelineAsset.supportsLightLayers)
            {
                shaderFeatures |= ShaderFeatures.LightLayers;
            }

            bool hasScreenSpaceShadows         = false;
            bool hasScreenSpaceOcclusion       = false;
            bool hasDeferredRenderer           = false;
            bool withAccurateGbufferNormals    = false;
            bool withoutAccurateGbufferNormals = false;
            bool clusteredRendering            = false;
            bool onlyClusteredRendering        = false;
            bool usesRenderPass = false;

            int rendererCount = pipelineAsset.m_RendererDataList.Length;

            for (int rendererIndex = 0; rendererIndex < rendererCount; ++rendererIndex)
            {
                ScriptableRenderer renderer = pipelineAsset.GetRenderer(rendererIndex);
                if (renderer is UniversalRenderer)
                {
                    UniversalRenderer universalRenderer = (UniversalRenderer)renderer;
                    if (universalRenderer.renderingMode == RenderingMode.Deferred)
                    {
                        hasDeferredRenderer           |= true;
                        withAccurateGbufferNormals    |= universalRenderer.accurateGbufferNormals;
                        withoutAccurateGbufferNormals |= !universalRenderer.accurateGbufferNormals;
                        usesRenderPass |= universalRenderer.useRenderPassEnabled;
                    }
                }

                var rendererClustered = false;

                ScriptableRendererData rendererData = pipelineAsset.m_RendererDataList[rendererIndex];
                if (rendererData != null)
                {
                    for (int rendererFeatureIndex = 0; rendererFeatureIndex < rendererData.rendererFeatures.Count; rendererFeatureIndex++)
                    {
                        ScriptableRendererFeature rendererFeature = rendererData.rendererFeatures[rendererFeatureIndex];

                        ScreenSpaceShadows ssshadows = rendererFeature as ScreenSpaceShadows;
                        hasScreenSpaceShadows |= ssshadows != null;

                        // Check for Screen Space Ambient Occlusion Renderer Feature
                        ScreenSpaceAmbientOcclusion ssao = rendererFeature as ScreenSpaceAmbientOcclusion;
                        hasScreenSpaceOcclusion |= ssao != null;

                        // Check for Decal Renderer Feature
                        DecalRendererFeature decal = rendererFeature as DecalRendererFeature;
                        if (decal != null)
                        {
                            var technique = decal.GetTechnique(renderer);
                            switch (technique)
                            {
                            case DecalTechnique.DBuffer:
                                shaderFeatures |= GetFromDecalSurfaceData(decal.GetDBufferSettings().surfaceData);
                                break;

                            case DecalTechnique.ScreenSpace:
                                shaderFeatures |= GetFromNormalBlend(decal.GetScreenSpaceSettings().normalBlend);
                                shaderFeatures |= ShaderFeatures.DecalScreenSpace;
                                break;

                            case DecalTechnique.GBuffer:
                                shaderFeatures |= GetFromNormalBlend(decal.GetScreenSpaceSettings().normalBlend);
                                shaderFeatures |= ShaderFeatures.DecalGBuffer;
                                break;
                            }
                        }
                    }

                    if (rendererData is UniversalRendererData universalRendererData)
                    {
                        rendererClustered = universalRendererData.renderingMode == RenderingMode.Forward &&
                                            universalRendererData.clusteredRendering;
                    }
                }

                clusteredRendering     |= rendererClustered;
                onlyClusteredRendering &= rendererClustered;
            }

            if (hasDeferredRenderer)
            {
                shaderFeatures |= ShaderFeatures.DeferredShading;
            }

            // We can only strip accurateGbufferNormals related variants if all DeferredRenderers use the same option.
            if (withAccurateGbufferNormals)
            {
                shaderFeatures |= ShaderFeatures.DeferredWithAccurateGbufferNormals;
            }

            if (withoutAccurateGbufferNormals)
            {
                shaderFeatures |= ShaderFeatures.DeferredWithoutAccurateGbufferNormals;
            }

            if (hasScreenSpaceShadows)
            {
                shaderFeatures |= ShaderFeatures.ScreenSpaceShadows;
            }

            if (hasScreenSpaceOcclusion)
            {
                shaderFeatures |= ShaderFeatures.ScreenSpaceOcclusion;
            }

            if (usesRenderPass)
            {
                shaderFeatures |= ShaderFeatures.RenderPassEnabled;
            }

            if (pipelineAsset.reflectionProbeBlending)
            {
                shaderFeatures |= ShaderFeatures.ReflectionProbeBlending;
            }

            if (pipelineAsset.reflectionProbeBoxProjection)
            {
                shaderFeatures |= ShaderFeatures.ReflectionProbeBoxProjection;
            }

            if (clusteredRendering)
            {
                shaderFeatures |= ShaderFeatures.ClusteredRendering;
            }

            if (onlyClusteredRendering)
            {
                shaderFeatures &= ~(ShaderFeatures.AdditionalLights | ShaderFeatures.VertexLighting);
            }

            if (pipelineAsset.additionalLightsRenderingMode == LightRenderingMode.PerPixel || clusteredRendering)
            {
                if (pipelineAsset.supportsAdditionalLightShadows)
                {
                    shaderFeatures |= ShaderFeatures.AdditionalLightShadows;
                }
            }

            return(shaderFeatures);
        }
Esempio n. 11
0
 // Use this for initialization
 void Start()
 {
     ssao = GetComponent <ScreenSpaceAmbientOcclusion>();
 }
Esempio n. 12
0
 // Use this for initialization
 void Start()
 {
     effect    = GetComponentInChildren <ScreenSpaceAmbientOcclusion>();
     maxEffect = effect.m_OcclusionIntensity;
 }
Esempio n. 13
0
 public override void Start()
 {
     bloom = gameObject.GetComponent <BloomOptimized>();
     dof   = gameObject.GetComponent <DepthOfField>();
     ssao  = gameObject.GetComponent <ScreenSpaceAmbientOcclusion>();
 }