private void DisposeSceneCamera() { if (m_postProcessing != null) { DestroyImmediate(m_postProcessing); } m_sceneCamera = null; m_postProcessing = null; m_appliedToSceneCamera = false; }
private void UpdateSceneCamera() { if (m_attachedToSceneCamera) { return; } if (!ApplyToSceneCamera) { DisposeSceneCamera(); return; } if (m_appliedToSceneCamera) { return; } var window = EditorWindow.GetWindow <SceneView>(false, "", false); var camera = window ? window.camera : null; if (m_sceneCamera && m_sceneCamera != camera) { DisposeSceneCamera(); } m_sceneCamera = camera; if (camera == null) { return; } var pp = (PostProcessingBase)camera.GetComponent(GetType()); if (pp && pp != m_postProcessing) { DestroyImmediate(pp); pp = null; } if (pp == null) { pp = (PostProcessingBase)camera.gameObject.AddComponent(GetType()); pp.m_attachedToSceneCamera = true; } EditorUtility.CopySerialized(this, pp); m_postProcessing = pp; m_appliedToSceneCamera = true; }
private void RenderTargetInitializer() { RenderTextureFormat rtf = openBloom ? PostProcessingBase.ChangeRenderTextureFormat(RenderTextureFormat.RGB111110Float) : RenderTextureFormat.ARGB32; string msaalevel = openMSAA ? "MSAAx4" : "Base"; renderTarget = new RenderTexture(resolutionWidth[(int)devLevel], resolutionHeight[(int)devLevel], 24, rtf, RenderTextureReadWrite.Linear) { antiAliasing = openMSAA ? 4 : 1, name = "PostProcessing_" + msaalevel, filterMode = FilterMode.Bilinear, wrapMode = TextureWrapMode.Clamp }; renderTarget.Create(); }
void ChangePostEffectType() { if (lateBloom != openBloom) { if (openBloom) { postBase = new PostProcessingBloomBase(); postBase.Enable(this); postBaseDic.Add((int)EffectType.Bloom, postBase); } else { blendMat.DisableKeyword("BLOOM"); blendMat.DisableKeyword("QUALITYBLOOM"); postBaseDic[(int)EffectType.Bloom].Disable(); postBaseDic.Remove((int)EffectType.Bloom); } lateBloom = openBloom; } if (lateFXAA != openFXAA) { if (openFXAA) { blendMat.EnableKeyword("FXAA"); postBase = new PostProcessingFXAA(); postBase.Enable(this); postBaseDic.Add((int)EffectType.FXAA, postBase); } else { blendMat.DisableKeyword("FXAA"); postBaseDic[(int)EffectType.FXAA].Disable(); postBaseDic.Remove((int)EffectType.FXAA); } lateFXAA = openFXAA; } if (lateDOF != openDepthOfFiled) { if (openDepthOfFiled) { postBase = new PostProcessingDepthOfFiledBase(); postBase.Enable(this, mainCamera); postBaseDic.Add((int)EffectType.DepthOfFiled, postBase); } else { blendMat.DisableKeyword("DOF"); blendMat.DisableKeyword("QUALITYDOF"); postBaseDic[(int)EffectType.DepthOfFiled].Disable(mainCamera); postBaseDic.Remove((int)EffectType.DepthOfFiled); } lateDOF = openDepthOfFiled; } if (lateLUT != openLUT) { if (openLUT) { blendMat.EnableKeyword("LUT"); postBase = new PostProcessingLUT(); postBase.Enable(this); postBaseDic.Add((int)EffectType.LUT, postBase); } else { blendMat.DisableKeyword("LUT"); postBaseDic[(int)EffectType.LUT].Disable(); postBaseDic.Remove((int)EffectType.LUT); } lateLUT = openLUT; } if (lateMeanBlur != openMeanBlur) { if (openMeanBlur) { blendMat.EnableKeyword("MEANBLUR"); postBase = new PostProcessingMeanBlur(); postBase.Enable(this); postBaseDic.Add((int)EffectType.MeanBlur, postBase); } else { blendMat.DisableKeyword("MEANBLUR"); postBaseDic[(int)EffectType.MeanBlur].Disable(); postBaseDic.Remove((int)EffectType.MeanBlur); } lateMeanBlur = openMeanBlur; } if (lateMotionBlur != openMotionBlur) { if (openMotionBlur) { blendMat.EnableKeyword("MOTIONBLUR"); postBase = new PostProcessingMotionBlur(); postBase.Enable(this); postBaseDic.Add((int)EffectType.MotionBlur, postBase); } else { blendMat.DisableKeyword("MOTIONBLUR"); postBaseDic[(int)EffectType.MotionBlur].Disable(); postBaseDic.Remove((int)EffectType.MotionBlur); } lateMotionBlur = openMotionBlur; } if (lateRediaBlur != openRediaBlur) { if (openRediaBlur) { blendMat.EnableKeyword("RADIABLUR"); postBase = new PostProcessingRadiaBlur(); postBase.Enable(this); postBaseDic.Add((int)EffectType.RediaBlur, postBase); } else { blendMat.DisableKeyword("RADIABLUR"); postBaseDic[(int)EffectType.RediaBlur].Disable(); postBaseDic.Remove((int)EffectType.RediaBlur); } lateRediaBlur = openRediaBlur; } if (lateWideScreen != openWideScreenVignette) { if (openWideScreenVignette) { blendMat.EnableKeyword("WINDSCREEN"); postBase = new PostProcessingWideScreen(); postBase.Enable(this); postBaseDic.Add((int)EffectType.WideScreenVignette, postBase); } else { blendMat.DisableKeyword("WINDSCREEN"); postBaseDic[(int)EffectType.WideScreenVignette].Disable(); postBaseDic.Remove((int)EffectType.WideScreenVignette); } lateWideScreen = openWideScreenVignette; } if (openBloom && openDepthOfFiled) { blendMat.EnableKeyword("MULTIPASS"); } else { blendMat.DisableKeyword("MULTIPASS"); } //if (lateSSAO != openSSAO) //{ // if (openSSAO) // { // blendMat.EnableKeyword("SSAO"); // postBase = new PostProcessingSSAO(); // postBase.Enable(this,mainCamera); // postBaseDic.Add(EffectType.SSAO, postBase); // } // else // { // blendMat.DisableKeyword("SSAO"); // postBaseDic[EffectType.SSAO].Disable(mainCamera); // postBaseDic.Remove(EffectType.SSAO); // } // lateSSAO = openSSAO; //} }