Ejemplo n.º 1
0
        public void Execute(RenderWrap renderWrap)
        {
            var outputTexture = renderWrap.GetRenderTexture2D("intermedia2");

            renderWrap.ClearTexture(outputTexture);
            if (EnableBloom)
            {
                generateMipPass.input  = inputColor;
                generateMipPass.output = "intermedia3";
                generateMipPass.Execute(renderWrap);
                var inputTexture = renderWrap.GetRenderTexture2D(inputColor);

                int  r = 0;
                uint n = (uint)(inputTexture.height / 1024);
                while (n > 0)
                {
                    r++;
                    n >>= 1;
                }
                bloomPass.mipLevel  = r;
                bloomPass.inputSize = (inputTexture.width / 2, inputTexture.height / 2);

                //bloomPass.input = inputColor;
                bloomPass.input  = "intermedia3";
                bloomPass.output = "intermedia2";
                bloomPass.Execute(renderWrap);
                postProcess.srvs[0] = inputColor;
                postProcess.srvs[1] = "intermedia2";
            }
            else
            {
                postProcess.srvs[0] = inputColor;
                postProcess.srvs[1] = "intermedia2";
            }

            postProcess.renderTargets[0] = output;
            postProcess.Execute(renderWrap);
        }