Вопрос по wpf, rendering – WPF рендеринг в реальном времени

1

Я разрабатываю игру и думаю об использовании WPF для создания простого прототипа основного игрового процесса.

Можно ли рендерить базовую 2D-графику в WPF в режиме реального времени? Под базовой графикой я подразумеваю простые формы, такие как линии, круги и т. Д. Под «в реальном времени» Я имею в виду, что вещи отображаются на основе таких параметров, как скорость, ускорение и т. Д., Которые меняются в зависимости от входных данных игрока, что, как я предполагаю, означает, что я не могу использовать раскадровки для анимации.

Спасибо

Ваш Ответ

1   ответ
8

Высокопроизводительная графика с использованием визуального слоя WPF для хорошего связанного обсуждения. В то время как WPF предоставляет отличную основу для богатой векторной графики, ему не хватает некоторой производительности в реальном времени для 2D.

Есть обходные пути, например, в зависимости от сложности вашей сцены вы можете избежать использованияDrawingVisuals или виртуализированные классы Shape (WPF Vector graphics) для рисования ваших спрайтов. Пройдя немного ниже уровня, вы можете кэшировать спрайты, используяBitmapCache режим доступен в .NET4.0, или предварительно добавив их в растровые изображения и используя различныешаблоны оптимизации улучшить пропускную способность.

Еще более низкий уровень, вы можете смешивать векторную / растровую графику, используя фантастическиеWriteableBitmapEx проект, или векторная / графическая графика, используяD3DImage.

Что касается обновления вашей сцены, вам нужно написать примитивный игровой движок,CompositionTarget.Rendering Событие (запускается при перерисовке экрана), вы получаете обновленные параметры и вычисляете позиции / ориентации ваших спрайтов. Что-то, что может помочь с этимпроект Codeplex который объединяет физику WPF / Silverlight и Farseer.

Похожие вопросы