Пример #1
0
        private void SwapRT()
        {
            TemporaryRenderTexture rt = this._RT1;

            this._RT1 = this._RT2;
            this._RT2 = rt;
        }
Пример #2
0
        protected void ApplyComputeShader(RenderTexture target)
        {
            if (this._ShaderWeights == null)
            {
                this._ShaderWeights = new ComputeBuffer(4, 16);
                this._ShaderWeights.SetData(new Color[]
                {
                    new Color(0.324f, 0.324f, 0.324f, 1f),
                    new Color(0.232f, 0.232f, 0.232f, 1f),
                    new Color(0.0855f, 0.0855f, 0.0855f, 1f),
                    new Color(0.0205f, 0.0205f, 0.0205f, 1f)
                });
            }
            int width = target.width;
            int num   = (width != 128) ? ((width != 256) ? (this._ComputeShaderKernelIndex + 4) : (this._ComputeShaderKernelIndex + 2)) : this._ComputeShaderKernelIndex;
            TemporaryRenderTexture temporary = RenderTexturesCache.GetTemporary(target.width, target.height, 0, target.format, true, true, false);

            this._BlurComputeShader.SetBuffer(num, "weights", this._ShaderWeights);
            this._BlurComputeShader.SetTexture(num, "_MainTex", target);
            this._BlurComputeShader.SetTexture(num, "_Output", temporary);
            this._BlurComputeShader.Dispatch(num, 1, target.height, 1);
            num++;
            this._BlurComputeShader.SetBuffer(num, "weights", this._ShaderWeights);
            this._BlurComputeShader.SetTexture(num, "_MainTex", temporary);
            this._BlurComputeShader.SetTexture(num, "_Output", target);
            this._BlurComputeShader.Dispatch(num, target.width, 1, 1);
            temporary.Dispose();
        }
Пример #3
0
        public override void ComputeFFT(Texture tex, RenderTexture target)
        {
            TemporaryRenderTexture temporary = this._RenderTexturesSet.GetTemporary();

            if (!target.IsCreated())
            {
                target.enableRandomWrite = true;
                target.Create();
            }
            this._Shader.SetTexture(this._KernelIndex, "_ButterflyTex", base.Butterfly);
            this._Shader.SetTexture(this._KernelIndex, "_SourceTex", tex);
            this._Shader.SetTexture(this._KernelIndex, "_TargetTex", temporary);
            this._Shader.Dispatch(this._KernelIndex, 1, tex.height, 1);
            this._Shader.SetTexture(this._KernelIndex + 1, "_ButterflyTex", base.Butterfly);
            this._Shader.SetTexture(this._KernelIndex + 1, "_SourceTex", temporary);
            this._Shader.SetTexture(this._KernelIndex + 1, "_TargetTex", target);
            this._Shader.Dispatch(this._KernelIndex + 1, 1, tex.height, 1);
            temporary.Dispose();
        }