Ejemplo n.º 1
0
        public bool Bake(TextureCube texture, RenderWrap renderWrap, ref object tag)
        {
            var tex = renderWrap.GetTex2D(Source);

            if (tex == null || tex.Status != GraphicsObjectStatus.loaded)
            {
                return(false);
            }
            renderWrap.SetRootSignature("Csu");
            int width  = texture.width;
            int height = texture.height;
            var writer = renderWrap.Writer;

            writer.Write(width);
            writer.Write(height);
            writer.SetCBV(0);
            renderWrap.SetSRVs(new string[] { Source });
            renderWrap.SetUAV(texture, 0, 0);
            renderWrap.Dispatch("ConvertToCube.hlsl", null, width / 8, height / 8, 6);
            for (int i = 1; i < texture.mipLevels; i++)
            {
                int mipPow = 1 << i;
                renderWrap.SetSRVLim(texture, i - 1, 0);
                renderWrap.SetUAV(texture, i, 0);
                writer.Write(width / mipPow);
                writer.Write(height / mipPow);
                writer.Write(i - 1);
                writer.SetCBV(0);
                renderWrap.Dispatch("GenerateCubeMipMap.hlsl", null, width / mipPow / 8, height / mipPow / 8, 6);
            }
            return(true);
        }
Ejemplo n.º 2
0
        public void Execute(RenderWrap renderWrap)
        {
            renderWrap.SetRootSignature("Csssu");

            List <(string, string)> keywords = new List <(string, string)>();

            keywords.Add(("ENABLE_TAA", "1"));
            if (DebugRenderType == DebugRenderType.TAA)
            {
                keywords.Add(("DEBUG_TAA", "1"));
            }

            var tex    = renderWrap.GetTex2D(target);
            var writer = renderWrap.Writer;

            renderWrap.Write(cbv, writer);
            writer.SetCBV(0);

            renderWrap.SetSRVs(new string[] { depth, history, historyDepth });
            renderWrap.SetUAV(renderWrap.GetRenderTexture2D(target), 0);
            renderWrap.Dispatch("TAA.hlsl", keywords, (tex.width + 7) / 8, (tex.height + 7) / 8);
        }