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


Функции API (Direct3D 10)

Графический конвейер Direct3D 10 представляет собой фундаментальное изменение архитектуры, перестроенное с нуля в аппаратном и программном обеспечении, чтобы обеспечить следующее поколение игр и трехмерных мультимедийных приложений. В ней используется модель драйвера дисплея Windows (WDDM), которая обеспечивает повышение производительности и поведение, например виртуальную память GPU.

Разработчики, знакомые с Direct3D 9, обнаружат ряд функциональных улучшений и улучшений производительности в Direct3D 10, в том числе:

  • Возможность обработки целых примитивов на новом этапе геометрического шейдера.
  • Возможность вывода данных вершин, созданных конвейером, в память с помощью этапа потокового вывода.
  • Организация состояния конвейера в 5 неизменяемых объектов состояния, что обеспечивает быструю настройку конвейера.
  • Организация констант шейдера в буферы констант, что сводит к минимуму затраты на пропускную способность для предоставления данных о константе шейдера.
  • Возможность переключения и настройки каждого примитивного материала с помощью геометрического шейдера.
  • Новые типы ресурсов (включая массивы текстур, которые можно индексировать из шейдеров) и форматы ресурсов.
  • Увеличено обобщение доступа к ресурсам с помощью представления.
  • Устаревшие биты возможностей оборудования (ограничения) были удалены в пользу расширенного набора гарантированных функций, предназначенных для оборудования Direct3D 10 класса (минимум).
  • Многоуровневая среда выполнения . API Direct3D 10 создается с помощью слоев, начиная с основных функциональных возможностей и создавая необязательные функции и функции поддержки разработчика (отладка и т. д.) во внешних слоях.
  • Полная интеграция HLSL. Все шейдеры Direct3D 10 написаны на языке HLSL и реализованы с помощью ядра common-shader.
  • Увеличение числа целевых объектов отрисовки, текстур и выборок. Ограничения на длину шейдера также отсутствуют.
  • Операции целых чисел и побитовых шейдеров.
  • Обратная запись поверхности глубины или трафарета или ресурса с несколькими выборками после того, как она больше не привязана в качестве целевого объекта отрисовки.
  • Поддержка нескольких выборок альфа-покрытия.

Существуют дополнительные различия в поведении, о которых разработчики Direct3D 9 также должны знать (см . раздел Рекомендации по Использованию Direct3D 9 в Direct3D 10).

Ниже приведен список функций Direct3D 9, которые больше не поддерживаются или были изменены в Direct3D 10 (см. раздел Устаревшие функции).

Руководство по программированию для Direct3D 10