private void DoSetupRenderTexture() { if (this._renderTexture != null) { GraphicsUtils.ReleaseRenderTexture(this._renderTexture); this._renderTexture = null; } base.transform.GetComponent <RawImage>().enabled = true; float scaleFactor = 1f; Canvas component = Singleton <MainUIManager> .Instance.SceneCanvas.GetComponent <Canvas>(); if ((component != null) && (component.renderMode != RenderMode.WorldSpace)) { scaleFactor = component.scaleFactor; } float width = ((RectTransform)base.transform).rect.width; float height = ((RectTransform)base.transform).rect.height; this._renderTexture = GraphicsUtils.GetRenderTexture((int)(width * scaleFactor), (int)(height * scaleFactor), 0x18, RenderTextureFormat.ARGB32); this._renderTexture.content.filterMode = FilterMode.Point; base.transform.GetComponent <RawImage>().texture = (Texture)this._renderTexture; GameObject obj2 = GameObject.Find("MainCamera"); if (obj2 != null) { this._renderTexture.BindToCamera(obj2.GetComponent <Camera>()); } }
protected void CreateRenderTextures(int w, int h) { if (this.WriteAlpha) { this.alpha_buffer = GraphicsUtils.GetRenderTexture(w, h, 0, RenderTextureFormat.R8); } this.downsample4X_buffer = GraphicsUtils.GetRenderTexture(w / 4, h / 4, 0x10, this.internalBufferFormat); if (this.UseDistortion) { this.CreateDistortionMap(w, h); } if (this.UseRadialBlur) { int radialBlurDownScale = (int)this.RadialBlurDownScale; this.radial_blur_buffer = GraphicsUtils.GetRenderTexture(w / radialBlurDownScale, h / radialBlurDownScale, 0, this.internalBufferFormat); this.radial_blur_buffer_temp = GraphicsUtils.GetRenderTexture(w / radialBlurDownScale, h / radialBlurDownScale, 0, this.internalBufferFormat); } int internalBufferSize = (int)this.internalBufferSize; int width = (int)this.internalBufferSize; this.gauss_buffer = GraphicsUtils.GetRenderTexture(width, width, 0, RenderTextureFormat.ARGBHalf); this.gauss_buffer.content.filterMode = FilterMode.Bilinear; for (int i = 0; i < 6; i++) { this.compose_buffer[i] = GraphicsUtils.GetRenderTexture(internalBufferSize, width, 0, this.internalBufferFormat); this.blur_bufferA[i] = GraphicsUtils.GetRenderTexture(internalBufferSize, width, 0, this.internalBufferFormat); this.blur_bufferB[i] = GraphicsUtils.GetRenderTexture(internalBufferSize, width, 0, this.internalBufferFormat); internalBufferSize /= 2; width /= 2; } }
public void OnPostRender() { RenderTexture source = (RenderTexture)this._rplCameraBuffer; RenderTexture targetTexture = base._camera.targetTexture; if (((this.CameraResScale == CAMERA_RES_SCALE.RES_400) && (this.CameraResWidth == 0)) && (this.CameraResHeight == 0)) { RenderTextureWrapper wrapper = GraphicsUtils.GetRenderTexture(source.width, source.height, 0, base.internalBufferFormat); if (this.OnlyResScale) { Graphics.Blit(source, (RenderTexture)wrapper); base.CheckResources(); } else { base.DoPostProcess(source, (RenderTexture)wrapper); } base.DownSample4X.SetVector(PostFXBase.HASH_TEXEL_SIZE, new Vector2(1f / ((float)source.width), 1f / ((float)source.height))); Graphics.Blit((Texture)wrapper, targetTexture, base.DownSample4X, 0); GraphicsUtils.ReleaseRenderTexture(wrapper); } else if (this.OnlyResScale) { Graphics.Blit((Texture)this._rplCameraBuffer, targetTexture); } else { base.DoPostProcess((RenderTexture)this._rplCameraBuffer, targetTexture); } }
protected override void CreateDistortionMap(int w, int h) { if (this.distortionUseDepthOfInnerBuffer) { base.distortionMap = GraphicsUtils.GetRenderTexture(w, h, base.DistortionMapDepthBit, base.DistortionMapFormat); } else { base.distortionMap = GraphicsUtils.GetRenderTexture(w / 2, h / 2, base.DistortionMapDepthBit, base.DistortionMapFormat); } }
private void ApplyHexBlur() { if (this._hexBlurMat == null) { this._hexBlurMat = new Material(this.hexBlurShader); } RenderTextureWrapper wrapper = GraphicsUtils.GetRenderTexture(this._reflectionRenderTex.width, this._reflectionRenderTex.height, 0, this.bufferFormat); ReflectionTool.ApplyHexBlur(this._hexBlurMat, (RenderTexture)this._reflectionRenderTex, (RenderTexture)wrapper, this.hexBlurFactor, 0f, 0.5f, 1); ReflectionTool.ApplyHexBlur(this._hexBlurMat, (RenderTexture)wrapper, (RenderTexture)this._reflectionRenderTex, this.hexBlurFactor, 0f, 0.5f, 1); GraphicsUtils.ReleaseRenderTexture(wrapper); }
private void Start() { this._innerCamera = base.GetComponentInChildren <Camera>(); this._innerCamera.enabled = true; this._innerCamera.SetReplacementShader(this.Shader, string.Empty); this._renderTexture = GraphicsUtils.GetRenderTexture(this.size, this.size, 0, this.format); this._innerCamera.targetTexture = (RenderTexture)this._renderTexture; this._projector = base.GetComponent <Projector>(); Material material = new Material(this.ProjectorShader); material.SetTexture("_Cookie", (Texture)this._renderTexture); material.SetTexture("_FalloffTex", this.FallOffTex); this._projector.material = material; this._rootNodeTransform = base.GetComponentInParent <BaseMonoAnimatorEntity>().RootNode; }
private void CreateRenderTextures(int w, int h) { if (!this.HighQuality) { this.temp_buffer = GraphicsUtils.GetRenderTexture(w, h, 0, this.internalBufferFormat); } else { this.temp_buffer = GraphicsUtils.GetRenderTexture(w, h, 0, this.internalBufferFormatHQ); this.temp_buffers = new RenderTextureWrapper[this.blurLevel]; for (int i = 0; i < this.blurLevel; i++) { this.temp_buffers[i] = GraphicsUtils.GetRenderTexture(w, h, 0, this.internalBufferFormatHQ); } } }
private void CreateBuffers() { int width = this._width / 2; int height = this._height / 2; if (this._farCameraBuffer == null) { this._farCameraBuffer = GraphicsUtils.GetRenderTexture(width, height, 0x10, this.bufferFormat); } if (this._farBackgroundBuffer1 == null) { this._farBackgroundBuffer1 = GraphicsUtils.GetRenderTexture(width, height, 0, this.bufferFormat); } if (this._farBackgroundBuffer2 == null) { this._farBackgroundBuffer2 = GraphicsUtils.GetRenderTexture(width / 2, height / 2, 0, this.bufferFormat); } }
private RenderTexture ApplyDOFtoBackground() { RenderTexture texture; RenderTexture texture2; int num3; this.CreateBuffers(); this.FarCamera.Render(); int num = (int)(this._width * this._bufferSizeScale); int num2 = (int)(this._height * this._bufferSizeScale); if (this.BackgroundBlurFactor < (maxBlurFactor / 2f)) { texture = (RenderTexture)this._farCameraBuffer; texture2 = (RenderTexture)this._farBackgroundBuffer1; num3 = 2; } else { texture = (RenderTexture)this._farBackgroundBuffer1; Graphics.Blit((Texture)this._farCameraBuffer, texture, this._downSampleMat, 0); texture2 = (RenderTexture)this._farBackgroundBuffer2; num3 = 2; } if (this.BokehQuality == BokehQualityEnum.Normal) { RenderTextureWrapper wrapper = GraphicsUtils.GetRenderTexture(num / num3, num2 / num3, 0, this.bufferFormat); this.ApplyHexBlur((RenderTexture)this._farCameraBuffer, (RenderTexture)wrapper, this.BackgroundBlurFactor, this.BokehIntensity, 1f / ((float)num3), 0); this.ApplyHexBlur((RenderTexture)wrapper, texture2, this.BackgroundBlurFactor, this.BokehIntensity, 2f / ((float)num3), 0); GraphicsUtils.ReleaseRenderTexture(wrapper); return(texture2); } if (this.BokehQuality == BokehQualityEnum.High) { RenderTextureWrapper wrapper2 = GraphicsUtils.GetRenderTexture(num / num3, num2 / num3, 0, this.bufferFormat); RenderTextureWrapper wrapper3 = GraphicsUtils.GetRenderTexture(num / num3, num2 / num3, 0, this.bufferFormat); this.ApplyHexBlur((RenderTexture)this._farCameraBuffer, (RenderTexture)wrapper2, this.BackgroundBlurFactor, this.BokehIntensity, 0.5f / ((float)num3), 0); this.ApplyHexBlur((RenderTexture)wrapper2, (RenderTexture)wrapper3, this.BackgroundBlurFactor, this.BokehIntensity, 1f / ((float)num3), 0); this.ApplyHexBlur((RenderTexture)wrapper3, texture2, this.BackgroundBlurFactor, this.BokehIntensity, 2f / ((float)num3), 0); GraphicsUtils.ReleaseRenderTexture(wrapper2); GraphicsUtils.ReleaseRenderTexture(wrapper3); } return(texture2); }
private void SaveImage(string fileName) { RenderTextureWrapper wrapper = GraphicsUtils.GetRenderTexture(this.imageSize, this.imageSize, 0, RenderTextureFormat.ARGB32); this.mainCamera.targetTexture = (RenderTexture)wrapper; this._postFX.WriteAlpha = true; this.mainCamera.Render(); this._postFX.WriteAlpha = false; this.mainCamera.targetTexture = null; RenderTexture.active = (RenderTexture)wrapper; Texture2D textured = new Texture2D(wrapper.width, wrapper.height, TextureFormat.ARGB32, false); textured.ReadPixels(new Rect(0f, 0f, (float)wrapper.width, (float)wrapper.height), 0, 0); textured.Apply(); byte[] bytes = textured.EncodeToPNG(); File.WriteAllBytes(string.Format("{0}/{1}.png", this.outputPath, fileName), bytes); UnityEngine.Object.Destroy(textured); GraphicsUtils.ReleaseRenderTexture(wrapper); }
private void CreateBuffers() { int width = ((int)(this._width * this._bufferSizeScale)) / 2; int height = ((int)(this._height * this._bufferSizeScale)) / 2; if (this._farCameraBuffer == null) { this._farCameraBuffer = GraphicsUtils.GetRenderTexture(width, height, 0x10, this.bufferFormat); } if (this._farBackgroundBuffer1 == null) { this._farBackgroundBuffer1 = GraphicsUtils.GetRenderTexture(width, height, 0, this.bufferFormat); } if (this._farBackgroundBuffer2 == null) { this._farBackgroundBuffer2 = GraphicsUtils.GetRenderTexture(width / 2, height / 2, 0, this.bufferFormat); } this._compositionMat.SetTexture("_FarTex", (Texture)this._farCameraBuffer); this.FarCamera.targetTexture = (RenderTexture)this._farCameraBuffer; }
private RenderTexture ApplyDOF(RenderTexture texture) { RenderTexture texture2; RenderTexture texture3; int num3; int num = this._width; int num2 = this._height; if (this.backgroundBlurFactor < (_maxBlurFactor / 2f)) { texture2 = (RenderTexture)this._farCameraBuffer; texture3 = (RenderTexture)this._farBackgroundBuffer1; num3 = 2; } else { texture2 = (RenderTexture)this._farBackgroundBuffer1; Graphics.Blit((Texture)this._farCameraBuffer, texture2, this._downSampleMat, 0); texture3 = (RenderTexture)this._farBackgroundBuffer2; num3 = 2; } if (this.bokehQuality == BokehQualityEnum.Normal) { RenderTextureWrapper wrapper = GraphicsUtils.GetRenderTexture(num / num3, num2 / num3, 0, this.bufferFormat); this.ApplyHexBlur(texture2, (RenderTexture)wrapper, this.backgroundBlurFactor, this.bokehIntensity, 1f / ((float)num3), 0); this.ApplyHexBlur((RenderTexture)wrapper, texture3, this.backgroundBlurFactor, this.bokehIntensity, 2f / ((float)num3), 0); GraphicsUtils.ReleaseRenderTexture(wrapper); return(texture3); } if (this.bokehQuality == BokehQualityEnum.High) { RenderTextureWrapper wrapper2 = GraphicsUtils.GetRenderTexture(num / num3, num2 / num3, 0, this.bufferFormat); RenderTextureWrapper wrapper3 = GraphicsUtils.GetRenderTexture(num / num3, num2 / num3, 0, this.bufferFormat); this.ApplyHexBlur(texture2, (RenderTexture)wrapper2, this.backgroundBlurFactor, this.bokehIntensity, 0.5f / ((float)num3), 0); this.ApplyHexBlur((RenderTexture)wrapper2, (RenderTexture)wrapper3, this.backgroundBlurFactor, this.bokehIntensity, 1f / ((float)num3), 0); this.ApplyHexBlur((RenderTexture)wrapper3, texture3, this.backgroundBlurFactor, this.bokehIntensity, 2f / ((float)num3), 0); GraphicsUtils.ReleaseRenderTexture(wrapper2); GraphicsUtils.ReleaseRenderTexture(wrapper3); } return(texture3); }
protected virtual void CreateObjects(Camera srcCam, ref RenderTextureWrapper renderTex, ref Camera destCam) { if ((renderTex == null) || (this._oldTexResScale != this.texResScale)) { if (renderTex != null) { GraphicsUtils.ReleaseRenderTexture(renderTex); } renderTex = GraphicsUtils.GetRenderTexture((srcCam.pixelWidth * this.texResScale) / 100, (srcCam.pixelHeight * this.texResScale) / 100, 0x10, this.bufferFormat); renderTex.content.name = "__RefRenderTexture" + renderTex.content.GetInstanceID(); renderTex.content.hideFlags = HideFlags.DontSave; this._oldTexResScale = this.texResScale; } if (destCam == null) { System.Type[] components = new System.Type[] { typeof(Camera) }; GameObject obj2 = new GameObject("__RefCamera for " + srcCam.GetInstanceID(), components); destCam = obj2.GetComponent <Camera>(); destCam.enabled = false; destCam.transform.position = base.transform.position; destCam.transform.rotation = base.transform.rotation; obj2.hideFlags = HideFlags.HideAndDontSave; } }
protected virtual void CreateDistortionMap(int w, int h) { this.distortionMap = GraphicsUtils.GetRenderTexture(w / 2, h / 2, this.DistortionMapDepthBit, this.DistortionMapFormat); }