Устаревшие функции (Direct3D 10)

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

Самыми большими изменениями функций в Direct3D 10 являются:

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

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

  • Альфа-смесь. Альфа-смесь теперь запрограммирована независимо от цветовой смешивания. Direct3D 10 добавляет переключатель альфа-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. Форматы светимости больше не реализуются.

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

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

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

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

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

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

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

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

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

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

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

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