Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Внутренняя архитектура WPF включает в себя два конвейера отрисовки: аппаратный и программный. В этом разделе содержатся сведения об этих конвейерах отрисовки, которые помогают принимать решения о оптимизации производительности приложений.
Конвейер отрисовки оборудования
Одним из наиболее важных факторов определения производительности WPF является то, что она привязана к отрисовке— чем больше пикселей, тем больше затрат на производительность. Тем не менее, чем больше рендеринга можно выгрузить на графический процессор (GPU), тем больше преимуществ с точки зрения производительности вы можете получить. Конвейер отрисовки оборудования приложения WPF использует все преимущества функций Microsoft DirectX на оборудовании, поддерживающем минимум Microsoft DirectX версии 7.0. Дополнительные оптимизации можно получить оборудованием, поддерживающим функции Microsoft DirectX версии 7.0 и PixelShader 2.0+.
Конвейер отрисовки программного обеспечения
Конвейер отрисовки программного обеспечения WPF полностью привязан к ЦП. WPF использует наборы инструкций SSE и SSE2 в ЦП, чтобы реализовать оптимизированный полнофункциональный растризатор программного обеспечения. Переход к программному обеспечению происходит плавно в любое время, когда функциональность приложения не может быть реализована с помощью аппаратного конвейера отрисовки.
Самая большая проблема с производительностью при отрисовке в режиме программного обеспечения связана с скоростью заполнения, которая определяется как количество пикселей, которые вы отрисовывают. Если вы обеспокоены производительностью в программном режиме отрисовки, попробуйте свести к минимуму количество раз, когда пиксель перерисовывается. Например, если у вас есть приложение с синим фоном, который затем отрисовывает немного прозрачное изображение над ним, вы отрисовываете все пиксели в приложении дважды. В результате это займет в два раза больше времени для отрисовки приложения с изображением, чем если бы у вас был только синий фон.
Уровни отрисовки графики
Может быть очень трудно предсказать конфигурацию оборудования, на которую будет работать ваше приложение. Однако вам может потребоваться рассмотреть проект, позволяющий приложению легко переключать функции при работе на другом оборудовании, чтобы использовать все преимущества каждой разной конфигурации оборудования.
Для этого WPF предоставляет функциональные возможности для определения графической возможности системы во время выполнения. Возможности графики определяются путем классификации видеокарты как одного из трех уровней возможностей отрисовки. WPF предоставляет API, позволяющий приложению запрашивать уровень возможностей отрисовки. Затем приложение может принимать различные пути кода во время выполнения в зависимости от уровня отрисовки, поддерживаемого оборудованием.
Функции графического оборудования, наиболее влияющие на уровни отрисовки:
ОЗУ видео Объем памяти видео на графическом оборудовании определяет размер и количество буферов, которые можно использовать для создания графики.
Пиксельный шейдер Пиксельный шейдер — это функция обработки графики, которая вычисляет эффекты на уровне пикселя. В зависимости от разрешения отображаемой графики может быть несколько миллионов пикселей, которые должны обрабатываться для каждого кадра отображения.
шейдер вершин шейдер вершин — это функция обработки графики, которая выполняет математические операции с данными вершин объекта.
Поддержка мультитекстурирования Поддержка мультитекстурирования подразумевает возможность применения двух или более различных текстур во время операции смешивания на трехмерном графическом объекте. Степень поддержки мультитекстов определяется числом единиц многотекстовых элементов на графическом оборудовании.
Шейдер пикселей, шейдер вершин и многотекстовые функции используются для определения определенных уровней версий DirectX, которые, в свою очередь, используются для определения различных уровней отрисовки в WPF.
Функции графического оборудования определяют возможность отрисовки приложения WPF. Система WPF определяет три уровня отрисовки:
Уровень отрисовки 0 Нет аппаратного ускорения графики. Уровень версии DirectX меньше версии 7.0.
Рендеринга уровня 1 частичное аппаратное ускорение графики. Уровень версии DirectX больше или равен версии 7.0, а меньше версии 9.0.
уровень отрисовки 2 Большинство графических функций используют ускорение графического оборудования. Уровень версии DirectX больше или равен версии 9.0.
Дополнительные сведения о уровнях отрисовки WPF см. в уровнях отрисовки графики.
См. также
.NET Desktop feedback