перечисление D3DSHADER_INSTRUCTION_OPCODE_TYPE (d3d9types.h)
В этом разделе перечислены коды операций шейдера, которые могут содержаться в первых 16 битах (от 0 до 15) маркера инструкции. В следующих разделах описывается формат маркера инструкций, соответствующих кодам операций.
Синтаксис
typedef enum _D3DSHADER_INSTRUCTION_OPCODE_TYPE {
D3DSIO_NOP,
D3DSIO_MOV,
D3DSIO_ADD,
D3DSIO_SUB,
D3DSIO_MAD,
D3DSIO_MUL,
D3DSIO_RCP,
D3DSIO_RSQ,
D3DSIO_DP3,
D3DSIO_DP4,
D3DSIO_MIN,
D3DSIO_MAX,
D3DSIO_SLT,
D3DSIO_SGE,
D3DSIO_EXP,
D3DSIO_LOG,
D3DSIO_LIT,
D3DSIO_DST,
D3DSIO_LRP,
D3DSIO_FRC,
D3DSIO_M4x4,
D3DSIO_M4x3,
D3DSIO_M3x4,
D3DSIO_M3x3,
D3DSIO_M3x2,
D3DSIO_CALL,
D3DSIO_CALLNZ,
D3DSIO_LOOP,
D3DSIO_RET,
D3DSIO_ENDLOOP,
D3DSIO_LABEL,
D3DSIO_DCL,
D3DSIO_POW,
D3DSIO_CRS,
D3DSIO_SGN,
D3DSIO_ABS,
D3DSIO_NRM,
D3DSIO_SINCOS,
D3DSIO_REP,
D3DSIO_ENDREP,
D3DSIO_IF,
D3DSIO_IFC,
D3DSIO_ELSE,
D3DSIO_ENDIF,
D3DSIO_BREAK,
D3DSIO_BREAKC,
D3DSIO_MOVA,
D3DSIO_DEFB,
D3DSIO_DEFI,
D3DSIO_TEXCOORD,
D3DSIO_TEXKILL,
D3DSIO_TEX,
D3DSIO_TEXBEM,
D3DSIO_TEXBEML,
D3DSIO_TEXREG2AR,
D3DSIO_TEXREG2GB,
D3DSIO_TEXM3x2PAD,
D3DSIO_TEXM3x2TEX,
D3DSIO_TEXM3x3PAD,
D3DSIO_TEXM3x3TEX,
D3DSIO_RESERVED0,
D3DSIO_TEXM3x3SPEC,
D3DSIO_TEXM3x3VSPEC,
D3DSIO_EXPP,
D3DSIO_LOGP,
D3DSIO_CND,
D3DSIO_DEF,
D3DSIO_TEXREG2RGB,
D3DSIO_TEXDP3TEX,
D3DSIO_TEXM3x2DEPTH,
D3DSIO_TEXDP3,
D3DSIO_TEXM3x3,
D3DSIO_TEXDEPTH,
D3DSIO_CMP,
D3DSIO_BEM,
D3DSIO_DP2ADD,
D3DSIO_DSX,
D3DSIO_DSY,
D3DSIO_TEXLDD,
D3DSIO_SETP,
D3DSIO_TEXLDL,
D3DSIO_BREAKP,
D3DSIO_PHASE,
D3DSIO_COMMENT,
D3DSIO_END,
D3DSIO_FORCE_DWORD
} D3DSHADER_INSTRUCTION_OPCODE_TYPE;
Константы
D3DSIO_NOP Инструкция NOP выполняет операцию без операции или без операции. Формат маркер инструкции , содержащий D3DSIO_NOP. |
D3DSIO_MOV Инструкция MOV перемещает данные между регистрами. Формат маркер инструкции , содержащий D3DSIO_MOV. Длина инструкции составляет 2. токен конечного параметра. маркер параметра источника. Комментарии Может использоваться для данных с плавающей запятой и обновления регистров адресов. При использовании для обновления регистров адресов значения преобразуются из числа с плавающей запятой с помощью округления в ближайшие. |
D3DSIO_ADD Инструкция ADD добавляет два исходных вектора и сохраняет результат в назначении. Формат маркер инструкции , содержащий D3DSIO_ADD. токен конечного параметра. первый маркер исходного параметра. второй маркер исходного параметра. |
D3DSIO_SUB Инструкция SUB вычитает два исходных вектора и сохраняет результат в назначении. Формат маркер инструкции , содержащий D3DSIO_SUB. Длина инструкции — 3. токен конечного параметра. первый маркер исходного параметра. второй маркер исходного параметра. |
D3DSIO_MAD Инструкция MAD умножает первый и второй источники и добавляет третий источник. Формат маркер инструкции , содержащий D3DSIO_MAD. Длина инструкции — 4. токен конечного параметра. первый маркер исходного параметра. второй маркер исходного параметра. третий маркер исходного параметра. |
D3DSIO_MUL Инструкция MUL умножает два исходных вектора и сохраняет результат в назначении. Формат маркер инструкции , содержащий D3DSIO_MUL. Длина инструкции — 3. токен конечного параметра. первый маркер исходного параметра. второй маркер исходного параметра. |
D3DSIO_RCP Инструкция RCP вычисляет ответ источника и сохраняет результат в назначении. Формат маркер инструкции , содержащий D3DSIO_RCP. Длина инструкции — 2. токен конечного параметра. маркер параметра источника. Требует явного использования репликации swizzle, то есть необходимо указать компонент Swizzle X, Y, Z или W (или эквивалент R, G, B или A). |
D3DSIO_RSQ Инструкция RSQ вычисляет обратный квадратный корень источника и сохраняет результат в назначении. Формат маркер инструкции , содержащий D3DSIO_RSQ. Длина инструкции — 2. токен конечного параметра. маркер параметра источника. Требует явного использования репликации swizzle, то есть необходимо указать компонент Swizzle X, Y, Z или W (или эквивалент R, G, B или A). |
D3DSIO_DP3 Инструкция DP3 вычисляет точечное произведение из трех компонентов (RGB) исходных регистров и сохраняет результат в назначении. Формат маркер инструкции , содержащий D3DSIO_DP3. Длина инструкции — 3. токен конечного параметра. первый маркер исходного параметра. второй маркер исходного параметра. |
D3DSIO_DP4 Инструкция DP4 вычисляет точечное произведение из четырех компонентов (RGBA) исходных регистров и сохраняет результат в назначении. Формат маркер инструкции , содержащий D3DSIO_DP4. Длина инструкции — 3. токен конечного параметра. первый маркер исходного параметра. второй маркер исходного параметра. |
D3DSIO_MIN Инструкция MIN определяет минимальное количество источников и сохраняет минимальный источник в назначении. Формат маркер инструкции , содержащий D3DSIO_MIN. Длина инструкции — 3. токен конечного параметра. первый маркер исходного параметра. второй маркер исходного параметра. |
D3DSIO_MAX Инструкция MAX определяет максимальное число источников и сохраняет максимальный источник в назначении. Формат маркер инструкции , содержащий D3DSIO_MAX. Длина инструкции — 3. токен конечного параметра. первый маркер исходного параметра. второй маркер исходного параметра. |
D3DSIO_SLT Инструкция SLT определяет, меньше ли первый источник второго источника, и сохраняет знак (1.0f для TRUE и 0.0f для FALSE) в назначении. Формат маркер инструкции , содержащий D3DSIO_SLT. Длина инструкции — 3. токен конечного параметра. первый маркер исходного параметра. второй маркер исходного параметра. |
D3DSIO_SGE Инструкция SGE определяет, больше или равен ли первый источник второму источнику, и сохраняет знак (1,0f для TRUE и 0,0f для FALSE) в назначении. Формат маркер инструкции , содержащий D3DSIO_SGE. Длина инструкции — 3. маркер параметра назначения. первый токен исходного параметра. второй токен исходного параметра. |
D3DSIO_EXP Инструкция EXP обеспечивает экспоненциальную полную точность 2x. Формат маркер инструкции , содержащий D3DSIO_EXP. Длина инструкции — 2. маркер параметра назначения. токен исходного параметра. Требует явного использования репликации swizzle, то есть необходимо указать компонент Swizzle X, Y, Z или W (либо эквивалент R, G, B или A). Комментарии Инструкция EXP предоставляет по крайней мере 21 бит точности. |
D3DSIO_LOG Инструкция LOG вычисляет log полной точности (x). Формат маркер инструкции , содержащий D3DSIO_LOG. Длина инструкции — 2. маркер параметра назначения. токен исходного параметра. Маркер исходного параметра требует явного использования репликации swizzle, то есть необходимо указать компонент X, Y, Z или W swizzle (либо эквивалент R, G, B или A). Комментарии Инструкция LOG обеспечивает точность не менее 21 бита. |
D3DSIO_LIT Инструкция LIT обеспечивает частичную поддержку освещения, вычисляя коэффициенты освещения из двух точечной продукции и экспоненты. Формат маркер инструкции , содержащий D3DSIO_LIT. Длина инструкции — 2. маркер параметра назначения. токен исходного параметра. Комментарии Арифметика с пониженной точностью допустима при оценке целевого компонента Y (в маске записи). Реализация должна поддерживать по крайней мере восемь дробных битов в аргументе power. Точечная продукция вычисляется с нормализованными векторами, а пределы зажима — от -128 до 128. Ошибка должна соответствовать сочетанию LOGP и EXPP или не более одного наименее значимого бита (LSB) для 8-разрядного компонента цвета. |
D3DSIO_DST Инструкция DST вычисляет вектор расстояния и сохраняет результат в месте назначения. Формат маркер инструкций , содержащий D3DSIO_DST. Длина инструкции — 3. маркер параметра назначения. первый токен исходного параметра. второй токен исходного параметра. |
D3DSIO_LRP Инструкция LRP линейно интерполирует между вторым и третьим источниками по пропорции, указанной в первом источнике, и сохраняет результат в назначении. Формат маркер инструкции , содержащий D3DSIO_LRP. Длина инструкции — 4. маркер параметра назначения. первый токен исходного параметра. второй токен исходного параметра. маркер третьего исходного параметра Комментарии Инструкцию LRP можно использовать с данными с плавающей запятой или целочисленными данными. Если инструкция LRP используется для обновления целочисленных регистров, значения преобразуются из числа с плавающей запятой с помощью округления в ближайшее целое число. Для обновления регистров адресов необходимо использовать инструкцию LRP. |
D3DSIO_FRC Инструкция FRC возвращает дробную часть каждого входного компонента. Формат маркер инструкции , содержащий D3DSIO_FRC. Длина инструкции — 2. маркер параметра назначения. токен исходного параметра. Комментарии Каждый компонент результата находится в диапазоне от 0,0 до 1,0. Для версии вершины или пикселя версии 1_1 допустимыми масками записи являются Y и XY (X не допускается). |
D3DSIO_M4x4 Инструкция M4x4 вычисляет произведение 4-компонентного вектора и матрицы 4x4 и сохраняет результат в месте назначения. Формат маркер инструкции , содержащий D3DSIO_M4x4. Длина инструкции — 3. маркер параметра назначения. Маска XYZW является обязательной. первый токен исходного параметра. второй токен исходного параметра. Компоненты Swizzle и модификаторы отмены являются недопустимыми. |
D3DSIO_M4x3 Инструкция M4x3 вычисляет произведение 4-компонентного вектора и матрицы 4x3 и сохраняет результат в месте назначения. Формат маркер инструкции , содержащий D3DSIO_M4x3. Длина инструкции — 3. маркер параметра назначения. Маска XYZ является обязательной. первый токен исходного параметра. второй токен исходного параметра. Компоненты Swizzle и модификаторы отмены являются недопустимыми. |
D3DSIO_M3x4 Инструкция M3x4 вычисляет произведение 3-компонентного вектора и матрицы 3x4 и сохраняет результат в месте назначения. Формат маркер инструкции , содержащий D3DSIO_M3x4. Длина инструкции — 3. маркер параметра назначения. Маска XYZW является обязательной. первый токен исходного параметра. второй токен исходного параметра. Компоненты Swizzle и модификаторы отмены являются недопустимыми. |
D3DSIO_M3x3 Инструкция M3x3 вычисляет произведение 3-компонентного вектора и матрицы 3x3 и сохраняет результат в назначении. Формат маркер инструкции , содержащий D3DSIO_M3x3. Длина инструкции — 3. маркер параметра назначения. Маска XYZ является обязательной. первый токен исходного параметра. второй токен исходного параметра. Компоненты Swizzle и модификаторы отмены являются недопустимыми. |
D3DSIO_M3x2 Инструкция M3x2 вычисляет произведение 3-компонентного вектора и матрицы 3x2 и сохраняет результат в месте назначения. Формат маркер инструкции , содержащий D3DSIO_M3x2. Длина инструкции — 3. токен конечного параметра. Маска XY является обязательной. первый маркер исходного параметра. второй маркер исходного параметра. Компоненты swizzle и неотвратные модификаторы недопустимы. |
D3DSIO_CALL Инструкция CALL выполняет вызов функции инструкции, помеченной указанным индексом метки. Формат маркер инструкции , содержащий D3DSIO_CALL. маркер метки (маркер исходного параметра , использующий тип регистрации D3DSPR_LABEL). |
D3DSIO_CALLNZ Инструкция CALLNZ выполняет условный (если не нулевой) вызов инструкции, помеченной индексом метки. Формат маркер инструкции , содержащий D3DSIO_CALLNZ. маркер метки (маркер исходного параметра , использующий тип регистрации D3DSPR_LABEL). маркер параметра источника , использующий тип регистра D3DSPR_CONSTBOOL. |
D3DSIO_LOOP Инструкция LOOP начинает ЦИКЛ... Блок ENDLOOP . Формат маркер инструкции , содержащий D3DSIO_LOOP. первый маркер исходного параметра , использующий тип регистра D3DSPR_LOOP. Компонент X задает число итераций; компонент Y задает начальное значение регистра счетчика текущего цикла; и компонент Z указывает приращение для текущего регистра счетчика цикла. Для этого регистра требуется явное использование репликации swizzle, то есть . Необходимо указать маски компонентов XYZW (RGBA). Комментарии В инструкции LOOP можно использовать только целые регистры. Инструкция LOOP предоставляется для итерации и поддерживает регистр счетчиков циклов с автоматическим приращением, который можно использовать для индексирования массива констант. При вложении каждый раз, когда используется регистр счетчика цикла, он ссылается на текущий цикл. |
D3DSIO_RET Инструкция RET возвращается из подпрограммы или помечает конец функции main. Формат маркер инструкции , содержащий D3DSIO_RET. Комментарии Если шейдер не содержит подпрограмм, использование RET в конце программы main является необязательным. |
D3DSIO_ENDLOOP Инструкция ENDLOOP помечает конец блока LOOP. Формат маркер инструкции , содержащий D3DSIO_ENDLOOP. |
D3DSIO_LABEL Инструкция LABEL помечает следующую инструкцию индексом метки. Формат маркер инструкции , содержащий D3DSIO_LABEL. исходный маркер параметра , использующий тип регистра D3DSPR_LABEL и номер регистра. |
D3DSIO_DCL Указывает маркер инструкции DCL. |
D3DSIO_POW Инструкция POW вычисляет полную точность (первый источник)второй источник и сохраняет результат в назначении. Формат маркер инструкции , содержащий D3DSIO_POW. Длина инструкции — 3. токен конечного параметра. первый маркер исходного параметра. второй маркер исходного параметра. Комментарии В обоих источниках требуется явное использование репликации swizzle, то есть необходимо указать компонент Swizzle X, Y, Z или W (или эквивалент R, G, B или A). Инструкция POW обеспечивает точность не менее 15 бит. |
D3DSIO_CRS Инструкция CRS вычисляет перекрестное произведение с помощью правого правила. Формат маркер инструкции , содержащий D3DSIO_CRS. токен конечного параметра. первый маркер исходного параметра. второй маркер исходного параметра. |
D3DSIO_SGN Инструкция SGN определяет знак источника и сохраняет знак (-1 для отрицательного, 0 для 0 и 1 для положительного) в месте назначения. Формат маркер инструкции , содержащий D3DSIO_SGN. Длина инструкции — 4. токен конечного параметра. первый маркер исходного параметра. второй маркер исходного параметра, использующий тип регистра D3DSPR_TEMP. третий маркер исходного параметра, использующий тип регистра D3DSPR_TEMP. Комментарии Второй и третий источники могут использоваться в качестве временных регистров. |
D3DSIO_ABS Инструкция ABS вычисляет абсолютное значение источника и сохраняет результат в назначении. Формат маркер инструкции , содержащий D3DSIO_ABS. токен конечного параметра. маркер параметра источника. |
D3DSIO_NRM Инструкция NRM нормализует 4-D вектор. Формат маркер инструкции , содержащий D3DSIO_NRM. Длина инструкции — 2. токен конечного параметра. маркер параметра источника. |
D3DSIO_SINCOS Инструкция SINCOS вычисляет синус и косинус источника. |
D3DSIO_REP Инструкция REP запускает repeat... Блок ENDREP . Формат маркер инструкции , содержащий D3DSIO_REP. исходный токен параметра , использующий тип регистра D3DSPR_CONSTINT. Компонент X задает число итераций. Комментарии В инструкции REP можно использовать только целые регистры. |
D3DSIO_ENDREP Инструкция ENDREP помечает конец блока REP . Формат маркер инструкции , содержащий D3DSIO_ENDREP. |
D3DSIO_IF Инструкция IF начинает блок IF. Формат маркер инструкции , содержащий D3DSIO_IF. source parameter token using the D3DSPR_CONSTBOOL register type. Комментарии Если исходный логический регистр имеет значение TRUE, выполняется код, заключенный в инструкцию IF и соответствующий ПАРАМЕТР ELSE (или ENDIF , если ELSE не используется); В противном случае выполнение передается в код, заключенный в инструкции ELSE-ENDIF (ELSE существует) или из блока IF (ELSE не существует). |
D3DSIO_IFC Инструкция IFC начинает блок IF с сравнения. Формат маркер инструкции , содержащий D3DSIO_IFC. первый маркер исходного параметра. второй маркер исходного параметра. Комментарии Инструкция IFC пропускает блок кода на основе сравнения источников. В обоих источниках требуется явное использование репликации swizzle, то есть необходимо указать компонент Swizzle X, Y, Z или W (или эквивалент R, G, B или A). Если для сравнения всех исходных компонентов задано значение TRUE, выполняется код, заключенный в инструкцию IF и соответствующую инструкцию ELSE (или инструкцию ENDIF , если ELSE не используется); В противном случае выполнение передается в код, заключенный в инструкции ELSE-ENDIF (ELSE существует) или из блока IF (ELSE не существует). |
D3DSIO_ELSE Инструкция ELSE запускает блок ELSE. Формат маркер инструкции , содержащий D3DSIO_ELSE. Комментарии Если исходный логический регистр в соответствующей инструкции IF имеет значение true, выполняется код, заключенный в IF и соответствующий ELSE , в противном случае выполнение передается в код, заключенный в инструкции ELSE и ENDIF . |
D3DSIO_ENDIF Инструкция ENDIF завершает if... Блок ELSE . Формат маркер инструкции , содержащий D3DSIO_ENDIF. |
D3DSIO_BREAK Инструкция BREAK вырывается из текущего цикла в ближайшем конце или концевом конце. Формат маркер инструкции , содержащий D3DSIO_BREAK. |
D3DSIO_BREAKC Инструкция BREAKC выходит из текущего цикла в ближайшем конце или концевом потоке на основе критериев сравнения между двумя источниками. Формат маркер инструкции , содержащий D3DSIO_BREAKC. первый маркер исходного параметра. второй маркер исходного параметра. |
D3DSIO_MOVA Инструкция MOVA перемещает данные из регистра с плавающей запятой в целочисленный регистр. Формат маркер инструкции , содержащий D3DSIO_MOVA. Длина инструкции — 2. токен конечного параметра. маркер параметра источника. Комментарии Значения преобразуются из числа с плавающей запятой с помощью округления в ближайшие. Регистр адресов является единственным разрешенным регистром назначения. |
D3DSIO_DEFB Инструкция DEFB определяет логическое значение константы, которое должно загружаться при каждом задании шейдера на устройство. Эту инструкцию можно использовать в вершинном шейдере 2_0 и более поздних версиях. Логические константы, заданные текущим шейдером вершин, имеют приоритет над константами, заданными операцией D3DDP2OP_SETVERTEXSHADERCONSTB. Формат маркер инструкции , содержащий D3DSIO_DEFB. Длина инструкции — 2. токен конечного параметра. Тип регистра должен быть D3DSPR_CONSTBOOL. Токен DWORD содержит логическое значение, где ненулевое значение означает TRUE; ноль означает FALSE. |
D3DSIO_DEFI Инструкция DEFI определяет целочисленное значение константы, которое должно загружаться при каждом задании шейдера на устройство. Константы, заданные текущим шейдером вершин, имеют приоритет над константами, заданными операцией D3DDP2OP_SETVERTEXSHADERCONSTI. Формат маркер инструкции , содержащий D3DSIO_DEFI. Длина инструкции — 5. токен конечного параметра. Тип регистра должен быть D3DSPR_CONSTINT. 4 Токен DWORD содержит четыре 32-разрядных целых числа со знаком. |
D3DSIO_TEXCOORD Инструкция TEXCOORD копирует данные координат текстуры (UVW1) в виде цветовых данных (RGBA). Формат маркер инструкции , содержащий D3DSIO_TEXCOORD. токен конечного параметра. маркер параметра источника. Маркер исходного параметра предназначен только для пиксельного шейдера версии 1_4. Комментарии Инструкции ассемблеров texcoord и texcrd используют код операции D3DSIO_TEXCOORD. Инструкция texcoord применяется к пиксельным шейдерам версий от 1_0 до 1_3; у него есть один маркер конечного параметра и с ним не связан маркер исходного параметра. Инструкция texcrd применяется к пиксельным шейдерам версии 1_4; у него есть один маркер конечного параметра и один маркер исходного параметра, связанный с ним. |
D3DSIO_TEXKILL Инструкция TEXKILL отменяет отрисовку текущего пикселя, если какой-либо из первых трех компонентов (UVW) координат текстуры меньше нуля. Формат маркер инструкции , содержащий D3DSIO_TEXKILL. токен конечного параметра (ведет себя аналогично исходному маркеру). Комментарии Если какой-либо из компонентов маркера назначения меньше нуля, завершите работу пиксельного шейдера и удалите выходные данные. К маркеру назначения применяются следующие функции:
|
D3DSIO_TEX Инструкция TEX загружает назначение с цветными данными (RGBA), которые извлекается из исходной текстуры. Формат маркер инструкции , содержащий D3DSIO_TEX. маркер конечного параметра , использующий тип регистра D3DSPR_PREDICATE. Следующие исходные токены предназначены только для пиксельного шейдера версии 1_4 и более поздних версий: — первый маркер исходного параметра предоставляет координаты текстуры для образца текстуры. — второй маркер исходного параметра, использующий тип регистра D3DSPR_SAMPLER. Второй маркер исходного параметра определяет номер выборки текстуры для выборки. Комментарии Инструкции ассемблеров tex и texld используют код операции D3DSIO_TEX. Инструкция tex применяется к пиксельным шейдерам версий от 1_0 до 1_3; у него есть один маркер конечного параметра и с ним не связаны маркеры исходных параметров. Инструкция texld применяется к пиксельным шейдерам версии 1_4 и более поздних версий; он имеет один маркер конечного параметра и два маркера исходного параметра, связанные с ним. |
D3DSIO_TEXBEM Инструкция TEXBEM применяет преобразование карты среды удара путем изменения данных адреса текстуры целевого регистра с использованием данных об возмущении адресов (U,V) и двухадресной матрицы среды удара. Формат маркер инструкции , содержащий D3DSIO_TEXBEM. токен конечного параметра. маркер параметра источника. |
D3DSIO_TEXBEML Инструкция TEXBEML применяет преобразование карты среды с коррекцией яркости. Формат маркер инструкции , содержащий D3DSIO_TEXBEML. токен конечного параметра. маркер параметра источника. Комментарии Преобразование карты среды удара с коррекцией яркости выполняется путем изменения данных адреса текстуры целевого регистра с использованием данных возмущения адресов (U.V), двухмерной матрицы среды удара и яркости. |
D3DSIO_TEXREG2AR Инструкция TEXREG2AR интерпретирует компоненты альфа-и красного цвета источника как данные адреса текстуры (U,V), чтобы получить выборку текстуры на этапе, соответствующем номеру регистра назначения. Результат хранится в назначении. Формат маркер инструкции , содержащий D3DSIO_TEXREG2AR. токен конечного параметра. маркер параметра источника. Комментарии Инструкция TEXREG2AR полезна для операций переназначивания цветового пространства. Он поддерживает двумерные (2-D) координаты. В исходном регистре должны использоваться неподписанные данные; Если в исходном регистре используются подписанные или смешанные данные, операция выдает недопустимые результаты. |
D3DSIO_TEXREG2GB Инструкция TEXREG2GB интерпретирует компоненты зеленого и синего цветов источника как данные адреса текстуры (U,V), чтобы получить выборку текстуры на этапе, соответствующем номеру регистра назначения. Результат хранится в месте назначения. Формат маркер инструкций , содержащий D3DSIO_TEXREG2GB. маркер параметра назначения. токен исходного параметра. Комментарии Инструкция TEXREG2GB полезна для операций переназначивания цветового пространства. Он поддерживает двумерные (двухмерные) координаты. В исходном регистре должны использоваться неподписанные данные; Если в регистре источника используются подписанные или смешанные данные, операция выдает недопустимые результаты. |
D3DSIO_TEXM3x2PAD Инструкция TEXM3x2PAD выполняет первую строку умножения матрицы из двух строк. Формат маркер инструкций , содержащий D3DSIO_TEXM3x2PAD. маркер параметра назначения. токен исходного параметра. Комментарии Инструкция TEXM3x2PAD не может использоваться сама по себе; Его необходимо объединить с инструкциями TEXM3x2TEX или TEXM3x2DEPTH . |
D3DSIO_TEXM3x2TEX Инструкция TEXM3x2TEX выполняет последнюю строку умножения матрицы 3x2 и использует результат в поиске текстуры. Формат маркер инструкций , содержащий D3DSIO_TEXM3x2TEX. маркер параметра назначения. токен исходного параметра. Комментарии Инструкцию TEXM3x2TEX необходимо использовать с инструкцией TEXM3x2PAD . |
D3DSIO_TEXM3x3PAD Инструкция TEXM3x3PAD выполняет первую или вторую строку умножения матрицы из трех строк. Формат маркер инструкций , содержащий D3DSIO_TEXM3x3PAD. маркер параметра назначения. токен исходного параметра. Комментарии Инструкция TEXM3x3PAD не может использоваться сама по себе; Его необходимо объединить с инструкцией TEXM3x3 , инструкцией TEXM3x3SPEC , инструкцией TEXM3x3VSPEC или инструкцией TEXM3x3TEX . |
D3DSIO_TEXM3x3TEX Инструкция TEXM3x3TEX выполняет умножение матрицы 3x3 и использует результат в поиске текстуры. Формат маркер инструкций , содержащий D3DSIO_TEXM3x3TEX. маркер параметра назначения. токен исходного параметра. Комментарии Инструкцию TEXM3x3TEX необходимо использовать с двумя инструкциями TEXM3x3PAD . Он используется в качестве заключительного из трех инструкций, представляющих операцию умножения матрицы 3x3, за которой следует поиск текстуры. Матрица 3x3 состоит из координат текстуры третьего этапа текстуры и двух предыдущих этапов текстуры. Полученный трехкомпонентный вектор (U,V,W) используется для выборки текстуры на этапе 3. Любая текстура, назначенная двум предыдущим этапам текстуры, игнорируется. Матричное умножение 3x3 обычно полезно для ориентирования нормального вектора на правильное тангенсное пространство для отрисовываемой поверхности. |
D3DSIO_RESERVED0 Эта инструкция зарезервирована для внутреннего использования. |
D3DSIO_TEXM3x3SPEC Инструкция TEXM3x3SPEC выполняет умножение матрицы 3x3 и использует результат в поиске текстуры. Используется для отражения отражения и сопоставления среды. Формат маркер инструкций , содержащий D3DSIO_TEXM3x3SPEC. маркер параметра назначения. первый токен исходного параметра. второй токен исходного параметра. Комментарии Инструкцию TEXM3x3SPEC необходимо использовать с двумя инструкциями TEXM3x3PAD . Этот набор инструкций можно использовать для отражения отражения и сопоставления среды. Инструкция TEXM3x3SPEC выполняет окончательную строку умножения матрицы 3x3, использует результирующий вектор в качестве нормального вектора для отражения вектора луча глаза, а затем использует отраженный вектор для поиска текстуры. Шейдер считывает вектор луча глаза из постоянного регистра. Матричное умножение 3x3 обычно полезно для ориентирования нормального вектора на правильное тангенсное пространство для отрисовываемой поверхности. Матрица 3x3 состоит из координат текстуры третьего этапа текстуры и двух предыдущих этапов текстуры. Полученный вектор после отражения (U,V,W) используется для выборки текстуры на заключительном этапе текстуры. Любая текстура, назначенная двум предыдущим этапам текстуры, игнорируется. |
D3DSIO_TEXM3x3VSPEC Инструкция TEXM3x3VSPEC выполняет умножение матрицы 3x3 и использует результат в поиске текстуры. Формат маркер инструкций , содержащий D3DSIO_TEXM3x3VSPEC. маркер параметра назначения. токен исходного параметра. Комментарии Инструкцию TEXM3x3VSPEC необходимо использовать с двумя инструкциями TEXM3x3PAD . Этот набор инструкций можно использовать для отражения отражения и сопоставления среды, где вектор луча глаза не является постоянным. Если вектор луча глаза является постоянным, инструкция TEXM3x3SPEC выполняет те же матричное умножение и поиск текстуры. Инструкция TEXM3x3VSPEC выполняет окончательную строку операции умножения матрицы 3x3, интерпретирует результирующий вектор как нормальный вектор для отражения вектора луча глаза, а затем использует отраженный вектор в качестве адреса текстуры для поиска текстуры. Он работает так же, как TEXM3X3SPEC, за исключением того, что вектор луча глаза берется из четвертого компонента координат текстуры. Матричное умножение 3x3 обычно полезно для ориентирования нормального вектора на правильное тангенсное пространство для отрисовываемой поверхности. Матрица 3x3 состоит из координат текстуры третьего этапа текстуры и двух предыдущих этапов текстуры. Полученный вектор послерефлексии (UVW) используется для выборки текстуры на этапе 3. Любая текстура, назначенная двум предыдущим этапам текстуры, игнорируется. |
D3DSIO_EXPP Инструкция EXPP обеспечивает экспоненциальную степень частичной точности 2x. Формат маркер инструкций , содержащий D3DSIO_EXPP. Длина инструкции — 2. маркер параметра назначения. токен исходного параметра. Требует явного использования репликации swizzle, то есть необходимо указать компонент Swizzle X, Y, Z или W (либо эквивалент R, G, B или A). Комментарии Инструкция EXPP обеспечивает по крайней мере 10 битов точности. |
D3DSIO_LOGP Инструкция LOGP вычисляет log decimal (x) с частичной точностью. Формат маркер инструкции , содержащий D3DSIO_LOGP. Длина инструкции — 2. маркер параметра назначения. токен исходного параметра. Требует явного использования репликации swizzle, то есть необходимо указать компонент Swizzle X, Y, Z или W (либо эквивалент R, G, B или A). Комментарии Инструкция LOGP обеспечивает по крайней мере 10 битов точности. |
D3DSIO_CND Инструкция CND выбирает между вторым и третьим источниками, основываясь на том, что первый источник больше 0,5, и сохраняет результат в месте назначения. Формат маркер инструкции , содержащий D3DSIO_CND. маркер параметра назначения. первый токен исходного параметра. второй токен исходного параметра. маркер третьего исходного параметра. |
D3DSIO_DEF Инструкция DEF определяет значение константы, которое должно загружаться при каждом задании шейдера на устройство. Эту инструкцию можно использовать во всех версиях вершинных шейдеров. Константы, заданные текущим шейдером вершин, имеют приоритет над константами, заданными операцией D3DDP2OP_SETVERTEXSHADERCONST. Формат маркер инструкции , содержащий D3DSIO_DEF. Длина инструкции — 5. маркер параметра назначения. Тип регистра должен быть D3DSPR_CONST, D3DSPR_CONST2, D3DSPR_CONST3 или D3DSPR_CONST4. 4 маркера DWORD. 4-D число с плавающей запятой или 4-D целочисленное число. |
D3DSIO_TEXREG2RGB Инструкция TEXREG2RGB интерпретирует компоненты красного, зеленого и синего цветов (RGB) источника как данные адреса текстуры (U, V, W) для выборки текстуры на этапах, соответствующих номеру регистра назначения. Результат хранится в месте назначения. Формат маркер инструкций , содержащий D3DSIO_TEXREG2RGB. маркер параметра назначения. токен исходного параметра. Комментарии Инструкция TEXREG2RGB полезна для операций переназначивания цветового пространства. Он поддерживает двумерные (2-D) и трехмерные (3-D) координаты. Его можно использовать так же, как инструкцию TEXREG2AR или TEXREG2GB инструкцию для переназначение двухсерийных данных. Однако инструкция TEXREG2RGB также поддерживает объемные данные, поэтому их можно использовать с картами кубов и текстурами объемных томов. |
D3DSIO_TEXDP3TEX Инструкция TEXDP3TEX выполняет трехкомпонентное точечное произведение и использует результат для поиска объемной текстуры. Формат маркер инструкции , содержащий D3DSIO_TEXDP3TEX. маркер параметра назначения. токен исходного параметра. |
D3DSIO_TEXM3x2DEPTH Инструкция TEXM3x2DEPTH вычисляет значение глубины, которое будет использоваться при тестировании глубины для пикселя. Формат маркер инструкции , содержащий D3DSIO_TEXM3x2DEPTH. маркер параметра назначения. токен исходного параметра. Комментарии Инструкцию TEXM3x2DEPTH необходимо использовать с инструкцией TEXM3x2PAD . |
D3DSIO_TEXDP3 Инструкция TEXDP3 выполняет трехкомпонентное точечное произведение между данными в номере регистра текстуры и набором координат текстуры, соответствующим номеру регистра назначения. Формат маркер инструкции , содержащий D3DSIO_TEXDP3. маркер параметра назначения. токен исходного параметра. |
D3DSIO_TEXM3x3 Инструкция TEXM3x3 выполняет умножение матрицы 3x3 при использовании в сочетании с двумя инструкциями TEXM3x3PAD . Формат маркер инструкций , содержащий D3DSIO_TEXM3x3. маркер параметра назначения. токен исходного параметра. Комментарии Инструкцию TEXM3x3 необходимо использовать с двумя TEXM3X3PAD инструкциями. Он используется в качестве заключительного из трех инструкций, представляющих операцию умножения матрицы 3x3. Матрица 3x3 состоит из координат текстуры третьего этапа текстуры и двух предыдущих этапов текстуры. Любая текстура, назначенная любому из трех этапов текстуры, игнорируется. Инструкция TEXM3x3 аналогична инструкции TEXM3x3TEX без поиска текстуры. |
D3DSIO_TEXDEPTH Инструкция TEXDEPTH вычисляет значение глубины, которое будет использоваться в проверке сравнения буфера глубины пикселей. Формат маркер инструкций , содержащий D3DSIO_TEXDEPTH. маркер параметра назначения. |
D3DSIO_CMP Инструкция CMP выбирает между вторым и третьим источниками, основываясь на том, что первый источник больше или равен нулю, и сохраняет результат в назначении. Сравнение выполняется для каждого канала. Формат маркер инструкции , содержащий D3DSIO_CMP. маркер параметра назначения. первый токен исходного параметра. второй токен исходного параметра. маркер третьего исходного параметра. |
D3DSIO_BEM В инструкции BEM применяется преобразование схемы среды с повышением. Формат маркер инструкций , содержащий D3DSIO_BEM. маркер параметра назначения. первый токен исходного параметра. второй токен исходного параметра. |
D3DSIO_DP2ADD Инструкция DP2ADD выполняет двухточечное точечный продукт и скалярное сложение и сохраняет результат в месте назначения. Формат маркер инструкции , содержащий D3DSIO_DP2ADD. Длина инструкции — 4. маркер параметра назначения. первый токен исходного параметра. второй токен исходного параметра. маркер третьего исходного параметра. |
D3DSIO_DSX Инструкция DSX вычисляет скорость изменения источника в направлении x и сохраняет результат в месте назначения. Формат маркер инструкции , содержащий D3DSIO_DSX. Длина инструкции — 2. маркер параметра назначения. Принимает все маски записи. токен исходного параметра. Принимает все повороты. Комментарии Инструкция DSX всегда вычисляет градиенты текущего содержимого регистров в пикселях, независимо от того, активны ли пиксели из-за управления потоком или из-за того, что они находятся вне границы примитива. Эти пиксели выполняются в режиме lockstep. |
D3DSIO_DSY Инструкция DSY вычисляет скорость изменения источника в направлении y и сохраняет результат в месте назначения. Формат маркер инструкций , содержащий D3DSIO_DSY. Длина инструкции — 2. маркер параметра назначения. Принимает все маски записи. токен исходного параметра. Принимает все повороты. Комментарии Инструкция DSY всегда вычисляет градиенты для текущего содержимого регистров в пикселях, независимо от того, активны ли пиксели из-за управления потоком или из-за того, что они находятся вне границы примитива. Эти пиксели выполняются в режиме lockstep. |
D3DSIO_TEXLDD Инструкция TEXLDD выполняет выборку текстуры, используя координаты текстуры в первом исходном токене, выборке, заданной вторым исходным токеном, и градиентах (DSX и DSY) из третьего и четвертого исходных маркеров. Формат маркер инструкции , содержащий D3DSIO_TEXLDD. Длина инструкции — 5. маркер параметра назначения. Принимает все маски записи. первый токен исходного параметра. второй маркер параметра источника, который должен использовать тип регистра D3DSPR_SAMPLER. Поддерживаемые состояния выборки — D3DSAMP_MAXMIPLEVEL и D3DSAMP_MIPMAPLODBIAS. Комментарии Все источники поддерживают произвольные повороты. Все маски записи действительны в назначении. |
D3DSIO_SETP Инструкция SETP задает регистр предиката. Формат маркер инструкции , содержащий D3DSIO_SETP. Длина инструкции — 3. токен конечного параметра , использующий тип регистра D3DSPR_PREDICATE. Требуются маски записи. первый токен исходного параметра. Необходимо указать компоненты Swizzle. второй токен исходного параметра. Необходимо указать компоненты Swizzle. Комментарии Для каждого канала, который можно записать в соответствии с маской записи назначения, сохраните логический результат операции сравнения между соответствующими каналами источников (после разрешения сверток модификатора источника). |
D3DSIO_TEXLDL Инструкция TEXLDL выполняет выборку текстуры в определенном образце, используя предоставленные координаты текстуры. Определенный уровень детализации (LOD), который является выборкой, должен быть указан в качестве четвертого компонента (W) координаты текстуры. Формат маркер инструкции , содержащий D3DSIO_TEXLDL. Длина инструкции — 3. токен конечного параметра , использующий тип регистра D3DSPR_PREDICATE. Первый маркер параметра источника предоставляет координаты текстуры для примера текстуры. второй токен параметра источника, использующий тип регистра D3DSPR_SAMPLER. Определяет номер образца текстуры для выборки. Невозможно указать модификатор источника Negate. Можно указать Swizzle. Номер выборки должен быть объявлен в начале шейдера. Комментарии Значения по умолчанию для отсутствующих компонентов маски записи конечного маркера — 0 или 1 и зависят от формата текстуры. Количество координат, необходимых для выполнения выборки текстуры, зависит от того, как был объявлен номер выборки. Если он был объявлен как куб, требуется 3-компонентная координата текстуры (RGB). При проверке необходимо, чтобы координаты, предоставленные texld , были достаточными для измерения текстуры, объявленного для выборки. Допустима выборка текстуры с меньшими размерами, чем в координате текстуры. И наоборот, выборка текстуры с более высокими размерами, чем в координате текстуры, недопустима. Выборка неподписанных текстур RGB приводит к значению с плавающей точкой от 0,0 до 1,0. Выборка текстур со знаком приводит к значению float от -1,0 до 1,0. Выборка текстур с плавающей запятой приводит к сохранению диапазона Float16 до MAX_FLOAT16 или к диапазону float32–Max конвейера. |
D3DSIO_BREAKP Инструкция BREAK PRED выходит из текущего цикла в ближайшем конце или конце, используя один из компонентов регистра предиката в качестве условия, чтобы определить, следует ли выполнять инструкцию. Формат маркер инструкции , содержащий D3DSIO_BREAKP. маркер параметра источника , использующий тип регистра D3DSPR_PREDICATE с репликацией swizzle (каждый канал использует один и тот же исходный компонент). Допускается модификатор источника NOT (0xd) в битах 27:24. |
D3DSIO_PHASE Применяется только к шейдеру пикселей версии 1_4. Инструкция PHASE отмечает переход между пиксельным шейдером версии 1 и 2. Если инструкция этапа отсутствует, весь шейдер выполняется так, как будто это шейдер этапа 2. Формат маркер инструкции , содержащий D3DSIO_PHASE. Комментарии Инструкции шейдера, которые выполняются до инструкции PHASE, являются инструкциями этапа 1. Все остальные инструкции являются инструкциями этапа 2. Благодаря двум этапам инструкций максимальное количество инструкций на шейдер увеличивается. Альфа-компонент временных регистров не сохраняется в течение фазового перехода. Другими словами, альфа-компонент должен быть повторно инициализирован после инструкции этапа. |
D3DSIO_COMMENT Указывает маркер комментария. |
D3DSIO_END Указывает конечный маркер. |
D3DSIO_FORCE_DWORD Принудительно применяет 32-разрядный размер. |
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в Windows Vista и более поздних версиях операционных систем Windows. |
Верхняя часть | d3d9types.h |
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по