WPF или DirectX для панорамирования и масштабирования изображения 5000x5000? - PullRequest
1 голос
/ 24 марта 2011

мой текущий код - обычный WPF с настраиваемым изображением.Мне нужно панорамировать и масштабировать изображение с очень высоким разрешением, но, конечно, для этого требуется много ресурсов процессора.

Мой вопрос: если я изменю элемент управления с изображения на что-то вроде DirectXэто сильно увеличивает мой зум и панорамирование или нет такой большой разницы?(Используемая нами графическая карта - Nvidia ion2, а процессор - процессор Intel с частотой до 2 ГГц)

Ответы [ 3 ]

3 голосов
/ 24 марта 2011

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

0 голосов
/ 23 марта 2013

Графика WPF не очень мощная. Мы выполнили весь графический рендеринг в Direct3D9 и отображаем только 3D-сцену в элементе управления D3DImage.

Говоря о большом растровом рендеринге, мы нашли, что лучший способ - это создать текстуру Direct3D. Его создание достаточно быстрое, а само рендеринг очень быстрый, когда размеры изображения меньше, чем изначально поддерживается графическим процессором (caps.MaxTextureWidth, caps.MaxTextureHeight). Обычно это 8k x 8k или 16k x 16k. Говоря о растровых изображениях сотен МБ, и этого должно быть достаточно для вашего использования.

Чтобы увидеть производительность, которую можно получить с его помощью, вы можете загрузить наш элемент управления Chart , установить большое растровое изображение для фонового изображения на географической карте. Затем вы также увидите, насколько быстро он выполняет масштабирование, панорамирование и т. Д. Обязательно превосходит встроенную обработку изображений WPF :-)

(я один из разработчиков LightningChart в Arction)

0 голосов
/ 24 марта 2011

Насколько мне известно, WPF использует DirectX для рендеринга своего контента, поэтому я не думаю, что это даст вам прирост производительности.

Если у вас проблемы с производительностью, я думаю, что ответ заключается в просмотре вашего алгоритма кэширования.

...