Нерекомендуемые функции (Direct3D 10)

Список функций, доступных в Direct3D 10, приведен здесь. На этой странице перечислены функции Direct3D 9, которые больше не поддерживаются в Direct3D 10.

Ниже перечислены самые важные изменения функций в Direct3D 10.

  • Direct3D 10 больше не поддерживает конвейер преобразования и освещения с фиксированной функцией.
  • Direct3D 10 больше не поддерживает блендер текстур с фиксированной функцией (иногда называемый пиксельным шейдером с фиксированной функцией).
  • Direct3D 10 реализует новые правила растеризации, которые проще и чище, чем устаревшие правила GDI, реализованные в Direct3D 9. Например, элемент управления "последний пиксель" для строк больше не поддерживается.

Ниже приведен полный список функций Direct3D 9, которые были устарели в Direct3D 10.

  • Альфа-смесь. Альфа-смесь теперь запрограммирована независимо от наложения цвета. Direct3D 10 добавляет переключатель alpha-blend-enable, который включен по умолчанию. Дополнительные сведения см. в разделе Объекты состояния (Direct3D 10).

  • Альфа-тест. Альфа-тест — это поведение пикселей с фиксированной функцией для Direct3D 9. Альфа-тест перемещается в программируемые шейдеры пикселей для Direct3D 10 и более поздних версий. Сведения об эмуляции функций альфа-теста Direct3D 9 в Direct3D 10 и более поздних версиях см. в примере FixedFuncEMU в пакете SDK для DirectX за июнь 2010 г.

  • Параметры режима наложения. BOTHSRCALPHA удален из D3D10_BLEND, так как он является избыточным с BOTHINVSRCALPHA. Дополнительные сведения см . в разделе D3D10_BLEND .

  • Форматы блочного сжатия. В Direct3D 10 не существует различий между предварительно умноженным альфа-каналом и непреобразованным альфа-каналом. Эти форматы Direct3D 9 соответствуют следующим форматам Direct3D 10:

    Direct3D 9 Direct3D 10
    DXT1 BC1*
    DXT2,DXT3 BC2*
    DXT4,DXT5 BC3*

     

    Дополнительные сведения см. в разделе Сжатие блоков (Direct3D 10).

  • Плоскости клипа. Вместо использования плоскостей клипа Direct3D 10 реализует расстояния обрезки и расстояния отсвердения, при этом до 8 компонентов каждый содержит до 2 элементов атрибутов вершин. Дополнительные сведения см. в разделе Семантика (DirectX HLSL). Пример FixedFuncEMU содержит пример эмуляции плоскостей клипа в Direct3D 10.

  • Dithering. Direct3D 10 не поддерживает запись нитейных данных в целевой объект отрисовки.

  • Недоступен конвейер преобразования и освещения с фиксированной функцией. Вместо этого необходимо использовать шейдеры. Дополнительные сведения см. в разделе Этапы шейдера (Direct3D 10).

  • Блендер текстур с фиксированной функцией (также называемый пиксельным шейдером фиксированной функции). Вместо этого необходимо использовать шейдеры. Дополнительные сведения см. в разделе Этапы шейдера (Direct3D 10).

  • Изменились режимы заполнения . Direct3D 10 реализует режимы заливки сплошных и проволочной рамки. Точка D3DFILLMODE удалена. При необходимости используйте геометрический шейдер для эмуляции режима точек. Пример FixedFuncEMU содержит пример эмуляции точки D3DFILLMODE в Direct3D 10. Дополнительные сведения см. в разделе этапы D3D10_FILL_MODE и шейдера (Direct3D 10).

  • Форматы. Оборудование может использовать форматы, предоставляемые API. Форматы яркости больше не реализуются.

  • Фильтрация MIP-карт. Удален параметр для выбора режима без фильтрации. Вместо этого используйте текстуру только с одной MIP-картой или установите для параметра MaxLOD sampler состояние 0. Дополнительные сведения см. в разделе Объекты состояния (Direct3D 10).

  • Палитры. Приложения должны использовать зависимое чтение текстуры.

  • Модели шейдеров пикселей и вершин: 1_x, 2_x и 3_0. Direct3D 10 поддерживает модель шейдера 4. Дополнительные сведения см. в разделе Модель шейдера 4 .

  • Спрайты точек. Вместо этого используйте геометрический шейдер. Дополнительные сведения см. в разделе Этапы шейдера (Direct3D 10).

  • Правила растеризации. Устаревшие правила растеризации линий GDI заменяются более понятными и простыми правилами. Элемент управления "последний пиксель" для строк больше не поддерживается. Дополнительные сведения см. в разделе Правила растеризации (Direct3D 10).

  • Режимы затенения. D3DSHADEMODE (который поддерживает заливку flat/gouraud/phong) удален. Direct3D 10 реализует два модификатора интерполяций для выходных данных вершинного шейдера. Пример эмуляции режимов gouraud Direct3D 9 и плоских оттенков в Direct3D 10 см. в разделе Пример FixedFuncEMU .

  • Инструкция texldp. Приложение должно реализовать прогнозную нагрузку текстуры с дополнительными инструкциями HLSL. Дополнительные сведения см. в разделе Справочник по HLSL . Пример FixedFuncEMU содержит пример эмуляции texldp в Direct3D 10.

  • Состояние текстуры с индексом координат (TCI) (D3DTSS_TEXCOORDINDEX) больше не поддерживается.

  • Вентиляторы треугольников. Приложение должно преобразовывать существующие треугольники-вентиляторы в списки треугольников или полосы треугольников. Чтобы эмулировать некоторые поведения с помощью DrawPrimitive в старых API, попробуйте использовать DrawIndexed в Direct3D 10. Дополнительные сведения см. в разделе Примитивные топологии (Direct3D 10).

  • W-буферизация. Поддержка оборудования не гарантируется; Рекомендуется, чтобы приложение использовало буферы глубины высокой точности. Дополнительные сведения см. в разделе Настройка функций Depth-Stencil (Direct3D 10).

  • Режимы переноса (обтекание координатами текстуры). Оболочка адреса текстуры (например, оболочка, зеркало, зажим и т. д.) по-прежнему существует. См . D3D10_SAMPLER_DESC и D3D10_TEXTURE_ADDRESS_MODE.

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