Все ли преобразования WPF выполняются с двойной точностью? - PullRequest
1 голос
/ 24 ноября 2008

WPF хранит все свои данные с двойной точностью. Я просто хочу подтвердить, что все преобразования и т. Д. Выполняются с двойной точностью.

Я работаю над холстом WPF, который очень большой (40 000 000 x 40 000 000), перевожу и масштабирую, чтобы увеличить его - размещая на нем плитки, содержащие спутниковые изображения. Для масштабирования и перевода я использую TransformGroup, содержащую ScaleTransform и TranslateTransform.

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

Есть ли способ контролировать точность преобразований рендера? Или, по крайней мере, подтвердить, что он использует двойную точность, а не одинарную точность?

Спасибо.

1 Ответ

3 голосов
/ 24 ноября 2009

Некоторое время назад я заметил точно такую ​​же вещь: рендеринг растровых изображений будет сильно искажен при использовании экстремальных преобразований. Некоторые тесты, которые я тогда проводил, убедили меня, что WPF действительно перенаправляет преобразования в графический процессор, который затем использует обработку с одинарной точностью вместо двойной точности.

Единственный обходной путь, который я нашел, - это упрощение преобразований. Например, вместо того, чтобы придавать изображению размер 100 000 на 100 000 единиц и коэффициент масштабирования 0,0001, присвойте ему размер 1 единица и коэффициент масштабирования 10. То же самое относится и к переводу.

В зависимости от вашего дизайна, это может означать, что ваша логика компоновки станет намного более сложной, поскольку вам придется выполнять некоторые вычисления вручную, которые в противном случае сделает WPF для вас. Для приложения, допускающего большой диапазон уровней масштабирования (например, от обзора всей земли до одного здания), просто нет другого выхода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...