Нерекомендуемые функции (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.
Связанные темы