Ejemplo n.º 1
0
        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>());
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
 private void OnDestroy()
 {
     if (this._renderTexture != null)
     {
         GraphicsUtils.ReleaseRenderTexture(this._renderTexture);
         this._renderTexture = null;
     }
 }
Ejemplo n.º 4
0
 protected override void OnDestroy()
 {
     if (this.__rplCameraBuffer != null)
     {
         GraphicsUtils.ReleaseRenderTexture(this.__rplCameraBuffer);
         this.__rplCameraBuffer = null;
     }
     base.OnDestroy();
 }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
 protected virtual void OnDisable()
 {
     if (this._reflectionRenderTex != null)
     {
         GraphicsUtils.ReleaseRenderTexture(this._reflectionRenderTex);
         this._reflectionRenderTex = null;
     }
     if (_reflectionCamera != null)
     {
         UnityEngine.Object.DestroyImmediate(_reflectionCamera.gameObject);
         _reflectionCamera = null;
     }
 }
Ejemplo n.º 7
0
 public void ReleaseRenderTexture()
 {
     if (this._renderTexture != null)
     {
         GraphicsUtils.ReleaseRenderTexture(this._renderTexture);
         this._renderTexture = null;
         GameObject obj2 = GameObject.Find("MainCamera");
         if (obj2 != null)
         {
             obj2.GetComponent <Camera>().targetTexture = null;
         }
     }
 }
Ejemplo n.º 8
0
 private void ReleaseBuffers()
 {
     if (this._farCameraBuffer != null)
     {
         GraphicsUtils.ReleaseRenderTexture(this._farCameraBuffer);
         this._farCameraBuffer = null;
     }
     if (this._farBackgroundBuffer1 != null)
     {
         GraphicsUtils.ReleaseRenderTexture(this._farBackgroundBuffer1);
         this._farBackgroundBuffer1 = null;
     }
     if (this._farBackgroundBuffer2 != null)
     {
         GraphicsUtils.ReleaseRenderTexture(this._farBackgroundBuffer2);
         this._farBackgroundBuffer2 = null;
     }
 }
Ejemplo n.º 9
0
        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);
        }
Ejemplo n.º 10
0
 private void ReleaseRenderTextures()
 {
     if (this.temp_buffer != null)
     {
         GraphicsUtils.ReleaseRenderTexture(this.temp_buffer);
         this.temp_buffer = null;
     }
     if (this.HighQuality)
     {
         for (int i = 0; i < this.blurLevel; i++)
         {
             if (this.temp_buffers[i] != null)
             {
                 GraphicsUtils.ReleaseRenderTexture(this.temp_buffers[i]);
                 this.temp_buffers[i] = null;
             }
         }
     }
 }
Ejemplo n.º 11
0
        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);
        }
Ejemplo n.º 12
0
        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);
        }
Ejemplo n.º 13
0
 public void CleanUp()
 {
     if (this._setupWeapon3dModelCoroutine != null)
     {
         if (Singleton <ApplicationManager> .Instance != null)
         {
             Singleton <ApplicationManager> .Instance.StopCoroutine(this._setupWeapon3dModelCoroutine);
         }
         this._setupWeapon3dModelCoroutine = null;
     }
     if (this._containerGo != null)
     {
         UnityEngine.Object.Destroy(this._containerGo);
         this._containerGo = null;
     }
     if (this._renderTexture != null)
     {
         GraphicsUtils.ReleaseRenderTexture(this._renderTexture);
         this._renderTexture = null;
     }
 }
Ejemplo n.º 14
0
 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;
     }
 }
Ejemplo n.º 15
0
 protected void ReleaseRenderTextures()
 {
     if (this.WriteAlpha)
     {
         GraphicsUtils.ReleaseRenderTexture(this.alpha_buffer);
     }
     GraphicsUtils.ReleaseRenderTexture(this.downsample4X_buffer);
     GraphicsUtils.ReleaseRenderTexture(this.gauss_buffer);
     if (this.UseDistortion)
     {
         GraphicsUtils.ReleaseRenderTexture(this.distortionMap);
     }
     if (this.UseRadialBlur)
     {
         GraphicsUtils.ReleaseRenderTexture(this.radial_blur_buffer);
         GraphicsUtils.ReleaseRenderTexture(this.radial_blur_buffer_temp);
     }
     for (int i = 0; i < 6; i++)
     {
         GraphicsUtils.ReleaseRenderTexture(this.compose_buffer[i]);
         GraphicsUtils.ReleaseRenderTexture(this.blur_bufferA[i]);
         GraphicsUtils.ReleaseRenderTexture(this.blur_bufferB[i]);
     }
 }
Ejemplo n.º 16
0
 private void OnDestroy()
 {
     GraphicsUtils.ReleaseRenderTexture(this._renderTexture);
 }