Ejemplo n.º 1
0
    void CreateUniformFogCamera()
    {
        UniformFogCameraGO = GameObject.Find("Uniform Fog Volume Camera");
        if (UniformFogCameraGO == null)
        {
            UniformFogCameraGO      = new GameObject();
            UniformFogCameraGO.name = "Uniform Fog Volume Camera";
            if (UniformFogCamera == null)
            {
                UniformFogCamera = UniformFogCameraGO.AddComponent <Camera>();
            }

            UniformFogCamera.backgroundColor = new Color(0, 0, 0, 0);
            UniformFogCamera.clearFlags      = CameraClearFlags.SolidColor;
            UniformFogCamera.renderingPath   = RenderingPath.Forward;
            UniformFogCamera.enabled         = false;
            UniformFogCamera.farClipPlane    = SceneCamera.farClipPlane;
            _CameraRender = UniformFogCameraGO.AddComponent <SPSRRT_helper>();

#if UNITY_5_6_OR_NEWER
            UniformFogCamera.GetComponent <Camera>().allowMSAA = false;
#endif
        }
        else
        {
            UniformFogCamera = UniformFogCameraGO.GetComponent <Camera>();
            _CameraRender    = UniformFogCameraGO.GetComponent <SPSRRT_helper>();
        }

        //UniformFogCamera.depthTextureMode = DepthTextureMode.Depth;
        // UniformFogCameraGO.hideFlags = HideFlags.None;
        UniformFogCameraGO.hideFlags = HideFlags.HideInHierarchy;

        if (_CameraRender == null)
        {
            _CameraRender = UniformFogCameraGO.AddComponent <SPSRRT_helper>();
        }

        _CameraRender.SceneCamera     = SceneCamera;
        _CameraRender.SecondaryCamera = UniformFogCamera;
        initFOV = SceneCamera.fieldOfView;
    }
Ejemplo n.º 2
0
    void OnEnable()
    {
        nullTex = MakeTex(Color.black);
        if (SystemInfo.SupportsRenderTextureFormat(rt_DepthFormat))
        {
            rt_DepthFormat = RenderTextureFormat.RHalf;//not of the liking of small machines
        }
        else
        {
            rt_DepthFormat = RenderTextureFormat.Default;
        }

        // SceneCamera = Camera.main;
        _FogVolumeDataGO = GameObject.Find("Fog Volume Data");
        if (_FogVolumeDataGO)
        {
            _FogVolumeData = _FogVolumeDataGO.GetComponent <FogVolumeData>();
        }


        if (_FogVolumeData)
        {
            SceneCamera = _FogVolumeData.GetFogVolumeCamera;
        }

        if (SceneCamera == null)
        {
            Debug.Log("FogVolumeCamera.cs can't get a valid camera from 'Fog Volume Data'\n Assigning Camera.main");
            SceneCamera = Camera.main;
        }

        ShaderLoad();
        SetUpsampleMode(_upsampleMode);
        ShowBilateralEdge(_showBilateralEdge);
        _FogVolumeRenderer = SceneCamera.GetComponent <FogVolumeRenderer>();

        if (SceneCamera.gameObject.GetComponent <FogVolumeRenderer>() == null)
        {
            //    Combiner = SceneCamera.gameObject.GetComponent<FogVolumeRenderer>();
            //else
            SceneCamera.gameObject.AddComponent <FogVolumeRenderer>();
        }

        ThisCamera = GetComponent <Camera>();
        //ThisCamera.depthTextureMode = DepthTextureMode.Depth;
        ThisCamera.enabled = false;

        ThisCamera.clearFlags      = CameraClearFlags.SolidColor;
        ThisCamera.backgroundColor = new Color(0, 0, 0, 0);
        ThisCamera.farClipPlane    = SceneCamera.farClipPlane;

        _CameraRender = GetComponent <SPSRRT_helper>();

        if (_CameraRender == null)
        {
            _CameraRender = gameObject.AddComponent <SPSRRT_helper>();
        }

        _CameraRender.SceneCamera     = SceneCamera;
        _CameraRender.SecondaryCamera = ThisCamera;
    }