Поделиться через


.

Устройство Direct3D — это компонент Direct3D, выполняющий отрисовку графики. Устройство инкапсулирует и сохраняет состояние отрисовки, выполняет операции преобразования и освещения и растеризует изображение на поверхность.

Архитектурные устройства Direct3D содержат модуль преобразования, модуль освещения и модуль растеризации, как показано на следующей схеме.

схема архитектуры устройства direct3d

Direct3D поддерживает два основных типа устройств Direct3D:

  • Устройство hal с аппаратно-ускоренной растеризацией и заливкой с помощью аппаратной и программной обработки вершин
  • Эталонное устройство

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

Устройство Direct3D, которое создает приложение, должно соответствовать возможностям оборудования, на котором работает приложение. Direct3D предоставляет возможности отрисовки, используя трехмерное оборудование, установленное на компьютере или эмулируя возможности трехмерного оборудования в программном обеспечении. Таким образом, Direct3D предоставляет устройства для аппаратного доступа и эмуляции программного обеспечения.

Устройства с аппаратным ускорением обеспечивают гораздо большую производительность, чем программные устройства. Тип устройства hal доступен во всех поддерживаемых графических адаптерах Direct3D. В большинстве случаев приложения предназначены для компьютеров с аппаратным ускорением и используют эмуляцию программного обеспечения для размещения компьютеров нижнего плана.

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

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

В этом разделе

Раздел Описание

Типы устройств

Типы устройств Direct3D включают устройства уровня абстракции оборудования (hal) и эталонный растризатор.

Окно и полноэкранный режим

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

Потерянные устройства

Устройство Direct3D может находиться в рабочем состоянии или в потерянном состоянии. Рабочее состояние — это нормальное состояние устройства, в котором выполняется устройство и отображает все отрисовки должным образом. Устройство переходит в потерянное состояние, когда событие, например потеря фокуса клавиатуры в полноэкранном приложении, приводит к невозможности отрисовки.

Цепочки буферов

Цепочка буферов — это коллекция буферов, которые используются для отображения кадров пользователю. Каждый раз, когда приложение представляет новый кадр для отображения, первый буфер в цепочке буферов занимает место отображаемого буфера. Этот процесс называется переключение или перевернутый.

Общие сведения о правилах растеризации

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

 

Руководство по обучению графики Direct3D