Перечисление D3DTEXTUREOP
Определяет операции смешения текстур для каждого этапа.
Синтаксис
typedef enum D3DTEXTUREOP {
D3DTOP_DISABLE = 1,
D3DTOP_SELECTARG1 = 2,
D3DTOP_SELECTARG2 = 3,
D3DTOP_MODULATE = 4,
D3DTOP_MODULATE2X = 5,
D3DTOP_MODULATE4X = 6,
D3DTOP_ADD = 7,
D3DTOP_ADDSIGNED = 8,
D3DTOP_ADDSIGNED2X = 9,
D3DTOP_SUBTRACT = 10,
D3DTOP_ADDSMOOTH = 11,
D3DTOP_BLENDDIFFUSEALPHA = 12,
D3DTOP_BLENDTEXTUREALPHA = 13,
D3DTOP_BLENDFACTORALPHA = 14,
D3DTOP_BLENDTEXTUREALPHAPM = 15,
D3DTOP_BLENDCURRENTALPHA = 16,
D3DTOP_PREMODULATE = 17,
D3DTOP_MODULATEALPHA_ADDCOLOR = 18,
D3DTOP_MODULATECOLOR_ADDALPHA = 19,
D3DTOP_MODULATEINVALPHA_ADDCOLOR = 20,
D3DTOP_MODULATEINVCOLOR_ADDALPHA = 21,
D3DTOP_BUMPENVMAP = 22,
D3DTOP_BUMPENVMAPLUMINANCE = 23,
D3DTOP_DOTPRODUCT3 = 24,
D3DTOP_MULTIPLYADD = 25,
D3DTOP_LERP = 26,
D3DTOP_FORCE_DWORD = 0x7fffffff
} D3DTEXTUREOP, *LPD3DTEXTUREOP;
Константы
-
D3DTOP_DISABLE
-
Отключает выходные данные из этого этапа текстуры и всех этапов с более высоким индексом. Чтобы отключить сопоставление текстур, задайте его в качестве операции цвета для первого этапа текстуры (этап 0). Альфа-операции нельзя отключить, если включены цветовые операции. Задание альфа-операции D3DTOP_DISABLE при включенном наложении цвета приводит к неопределенному поведению.
-
D3DTOP_SELECTARG1
-
Используйте первый цвет или альфа-аргумент этого этапа текстуры без изменений в качестве выходных данных. Эта операция влияет на аргумент цвета при использовании с состоянием этапа текстуры D3DTSS_COLOROP и альфа-аргумент при использовании с D3DTSS_ALPHAOP.
-
D3DTOP_SELECTARG2
-
Используйте второй цвет или альфа-аргумент этого этапа текстуры без изменений в качестве выходных данных. Эта операция влияет на аргумент цвета при использовании с состоянием этапа текстуры D3DTSS_COLOROP и альфа-аргумент при использовании с D3DTSS_ALPHAOP.
-
D3DTOP_MODULATE
-
Умножьте компоненты аргументов.
-
D3DTOP_MODULATE2X
-
Умножьте компоненты аргументов и сместите продукты влево на 1 бит (эффективно умножая их на 2) для осветления.
-
D3DTOP_MODULATE4X
-
Умножьте компоненты аргументов и сместите продукты влево на 2 бита (эффективно умножая их на 4) для осветления.
-
D3DTOP_ADD
-
Добавьте компоненты аргументов.
-
D3DTOP_ADDSIGNED
-
Добавьте компоненты аргументов с смещением от до 0,5, что делает эффективным диапазон значений от – 0,5 до 0,5.
-
D3DTOP_ADDSIGNED2X
-
Добавьте компоненты аргументов с смещением до 0,5 и переместите продукты влево на 1 бит.
-
D3DTOP_SUBTRACT
-
Вычитает компоненты второго аргумента из компонентов первого аргумента.
-
D3DTOP_ADDSMOOTH
-
Добавьте первый и второй аргументы; затем вычесть их произведение из суммы.
-
D3DTOP_BLENDDIFFUSEALPHA
-
Линейно смешайте этот этап текстуры, используя интерполированный альфа из каждой вершины.
-
D3DTOP_BLENDTEXTUREALPHA
-
Линейное смешивание этого этапа текстуры с помощью альфа из текстуры этого этапа.
-
D3DTOP_BLENDFACTORALPHA
-
Линейно смешайте этот этап текстуры, используя скалярный альфа-набор с состоянием D3DRS_TEXTUREFACTOR отрисовки.
-
D3DTOP_BLENDTEXTUREALPHAPM
-
Линейное смешивание этапа текстуры, использующего предварительно добавленный альфа-канал.
-
D3DTOP_BLENDCURRENTALPHA
-
Линейное смешивание этого этапа текстуры с помощью альфа,взятого из предыдущего этапа текстуры.
-
D3DTOP_PREMODULATE
-
D3DTOP_PREMODULATE устанавливается в стадии n. Выходные данные этапа n — arg1. Кроме того, если текстура находится на этапе n + 1, любая D3DTA_CURRENT на стадии n + 1 предварительно смыкается текстурой на этапе n + 1.
-
D3DTOP_MODULATEALPHA_ADDCOLOR
-
Модулируйте цвет второго аргумента с помощью альфа первого аргумента; затем добавьте результат в аргумент 1. Эта операция поддерживается только для цветовых операций (D3DTSS_COLOROP).
-
D3DTOP_MODULATECOLOR_ADDALPHA
-
Модулируйте аргументы; затем добавьте альфа первого аргумента. Эта операция поддерживается только для цветовых операций (D3DTSS_COLOROP).
-
D3DTOP_MODULATEINVALPHA_ADDCOLOR
-
Аналогично D3DTOP_MODULATEALPHA_ADDCOLOR, но используйте обратный альфа первого аргумента. Эта операция поддерживается только для цветовых операций (D3DTSS_COLOROP).
-
D3DTOP_MODULATEINVCOLOR_ADDALPHA
-
Аналогично D3DTOP_MODULATECOLOR_ADDALPHA, но используйте обратный цвет первого аргумента. Эта операция поддерживается только для цветовых операций (D3DTSS_COLOROP).
-
D3DTOP_BUMPENVMAP
-
Выполняйте сопоставление ударов по пикселям, используя карту среды на следующем этапе текстуры без яркости. Эта операция поддерживается только для цветовых операций (D3DTSS_COLOROP).
-
D3DTOP_BUMPENVMAPLUMINANCE
-
Выполните сопоставление ударов по пикселям с помощью карты среды на следующем этапе текстуры с яркостью. Эта операция поддерживается только для цветовых операций (D3DTSS_COLOROP).
-
D3DTOP_DOTPRODUCT3
-
Модулируйте компоненты каждого аргумента как подписанные компоненты, добавьте их продукты; затем реплицируйте сумму во все цветовые каналы, включая альфа-каналы. Эта операция поддерживается для цветовых и альфа-операций.
В DirectX 6 и DirectX 7 операции многотекстовой обработки, указанные выше входные данные, смещены наполовину (y = x – 0,5) перед использованием для имитации подписанных данных, а скалярный результат автоматически прижимается к положительным значениям и реплицируется во все три выходных канала. Кроме того, обратите внимание, что в качестве цветовой операции это не обновляет альфа-канал, а только обновляет компоненты RGB.
Однако в шейдерах DirectX 8.1 можно указать, что выходные данные направляются в компоненты RGB, .a или и то, и другое (по умолчанию). Можно также указать отдельную скалярную операцию в альфа-канале.
-
D3DTOP_MULTIPLYADD
-
Выполняет операцию умножения и накопления. Он принимает два последних аргумента, умножает их вместе и добавляет их к оставшимся входным/исходным аргументам и помещает их в результат.
SRGBA = Arg1 + Arg2 * Arg3
-
D3DTOP_LERP
-
Линейно интерполирует второй и третий исходные аргументы по пропорции, указанной в первом исходном аргументе.
SRGBA = (Arg1) * Arg2 + (1- Arg1) * Arg3.
-
D3DTOP_FORCE_DWORD
-
Принудительно компилирует это перечисление до 32 бит в размере. Без этого значения некоторые компиляторы разрешали бы компиляцию этого перечисления до размера, отличного от 32 бит. Это значение не используется.
Комментарии
Члены этого типа используются при задании цветовых или альфа-операций с помощью D3DTSS_COLOROP или D3DTSS_ALPHAOP значений с помощью метода IDirect3Ddevice9::SetTextureStageState .
В приведенных выше формулах SRGBA — это цвет RGBA, созданный операцией текстуры, а Arg1, Arg2 и Arg3 представляют полный цвет RGBA аргументов текстуры. Отдельные компоненты аргумента отображаются с подстроками. Например, альфа-компонент для аргумента 1 будет отображаться как Arg1A.
Требования
Требование | Значение |
---|---|
Заголовок |
|
См. также раздел