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; }
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; }