(XNA) Переключение цели визуализации приводит к снижению производительности - PullRequest
1 голос
/ 20 января 2012

У меня следующая проблема. Я пытаюсь вырезать части текстуры, используя Stencil, AlphaTestEffect и RenderTarget, но это сильно сказывается на производительности. Без него у меня будет около 30 кадров в секунду, а с ним он падает до 4 кадров в секунду.

Я пытался изолировать корень проблемы, и, находясь с ним, я заметил, что даже если я ничего не делаю, но переключаю активную цель рендеринга на свою пользовательскую цель рендеринга, а затем сразу же, если я переключаю ее обратно backBuffer, мой fps падает почти до 10fps. Все, что я делаю, это:

            graphicsDevice.SetRenderTarget(renderTargetA);
            graphicsDevice.SetRenderTarget(null);

Пока цель рендеринга создается таким образом:

        renderTargetA = new RenderTarget2D(KnightGame.CurrentGame.ScreenManager.GraphicsDevice, 800, 480,
                                           false, SurfaceFormat.Color, DepthFormat.Depth24Stencil8,
                                           0, RenderTargetUsage.PreserveContents);

Я пытался использовать DiscardContents разных размеров, но он всегда сбрасывает fps. Я прокомментировал все части, которые связаны с обрезкой части изображения, и все же, просто переключая цель рендеринга, это сказывается на производительности. Кто-нибудь может направить меня к причине этой проблемы?

Lucas

...