Поделиться через


перечисление D3DRENDERSTATETYPE

Состояния отрисовки определяют состояния настройки для всех видов обработки вершин и пикселей. Некоторые состояния отрисовки настраивают обработку вершин и некоторые настройки обработки пикселей (см. статью "Состояния отрисовки" (Direct3D 9)). Состояния отрисовки можно сохранить и восстановить с помощью блоков состояния (см . раздел "Сохранение и восстановление состояния" (Direct3D 9).)

Синтаксис

typedef enum D3DRENDERSTATETYPE { 
  D3DRS_ZENABLE                     = 7,
  D3DRS_FILLMODE                    = 8,
  D3DRS_SHADEMODE                   = 9,
  D3DRS_ZWRITEENABLE                = 14,
  D3DRS_ALPHATESTENABLE             = 15,
  D3DRS_LASTPIXEL                   = 16,
  D3DRS_SRCBLEND                    = 19,
  D3DRS_DESTBLEND                   = 20,
  D3DRS_CULLMODE                    = 22,
  D3DRS_ZFUNC                       = 23,
  D3DRS_ALPHAREF                    = 24,
  D3DRS_ALPHAFUNC                   = 25,
  D3DRS_DITHERENABLE                = 26,
  D3DRS_ALPHABLENDENABLE            = 27,
  D3DRS_FOGENABLE                   = 28,
  D3DRS_SPECULARENABLE              = 29,
  D3DRS_FOGCOLOR                    = 34,
  D3DRS_FOGTABLEMODE                = 35,
  D3DRS_FOGSTART                    = 36,
  D3DRS_FOGEND                      = 37,
  D3DRS_FOGDENSITY                  = 38,
  D3DRS_RANGEFOGENABLE              = 48,
  D3DRS_STENCILENABLE               = 52,
  D3DRS_STENCILFAIL                 = 53,
  D3DRS_STENCILZFAIL                = 54,
  D3DRS_STENCILPASS                 = 55,
  D3DRS_STENCILFUNC                 = 56,
  D3DRS_STENCILREF                  = 57,
  D3DRS_STENCILMASK                 = 58,
  D3DRS_STENCILWRITEMASK            = 59,
  D3DRS_TEXTUREFACTOR               = 60,
  D3DRS_WRAP0                       = 128,
  D3DRS_WRAP1                       = 129,
  D3DRS_WRAP2                       = 130,
  D3DRS_WRAP3                       = 131,
  D3DRS_WRAP4                       = 132,
  D3DRS_WRAP5                       = 133,
  D3DRS_WRAP6                       = 134,
  D3DRS_WRAP7                       = 135,
  D3DRS_CLIPPING                    = 136,
  D3DRS_LIGHTING                    = 137,
  D3DRS_AMBIENT                     = 139,
  D3DRS_FOGVERTEXMODE               = 140,
  D3DRS_COLORVERTEX                 = 141,
  D3DRS_LOCALVIEWER                 = 142,
  D3DRS_NORMALIZENORMALS            = 143,
  D3DRS_DIFFUSEMATERIALSOURCE       = 145,
  D3DRS_SPECULARMATERIALSOURCE      = 146,
  D3DRS_AMBIENTMATERIALSOURCE       = 147,
  D3DRS_EMISSIVEMATERIALSOURCE      = 148,
  D3DRS_VERTEXBLEND                 = 151,
  D3DRS_CLIPPLANEENABLE             = 152,
  D3DRS_POINTSIZE                   = 154,
  D3DRS_POINTSIZE_MIN               = 155,
  D3DRS_POINTSPRITEENABLE           = 156,
  D3DRS_POINTSCALEENABLE            = 157,
  D3DRS_POINTSCALE_A                = 158,
  D3DRS_POINTSCALE_B                = 159,
  D3DRS_POINTSCALE_C                = 160,
  D3DRS_MULTISAMPLEANTIALIAS        = 161,
  D3DRS_MULTISAMPLEMASK             = 162,
  D3DRS_PATCHEDGESTYLE              = 163,
  D3DRS_DEBUGMONITORTOKEN           = 165,
  D3DRS_POINTSIZE_MAX               = 166,
  D3DRS_INDEXEDVERTEXBLENDENABLE    = 167,
  D3DRS_COLORWRITEENABLE            = 168,
  D3DRS_TWEENFACTOR                 = 170,
  D3DRS_BLENDOP                     = 171,
  D3DRS_POSITIONDEGREE              = 172,
  D3DRS_NORMALDEGREE                = 173,
  D3DRS_SCISSORTESTENABLE           = 174,
  D3DRS_SLOPESCALEDEPTHBIAS         = 175,
  D3DRS_ANTIALIASEDLINEENABLE       = 176,
  D3DRS_MINTESSELLATIONLEVEL        = 178,
  D3DRS_MAXTESSELLATIONLEVEL        = 179,
  D3DRS_ADAPTIVETESS_X              = 180,
  D3DRS_ADAPTIVETESS_Y              = 181,
  D3DRS_ADAPTIVETESS_Z              = 182,
  D3DRS_ADAPTIVETESS_W              = 183,
  D3DRS_ENABLEADAPTIVETESSELLATION  = 184,
  D3DRS_TWOSIDEDSTENCILMODE         = 185,
  D3DRS_CCW_STENCILFAIL             = 186,
  D3DRS_CCW_STENCILZFAIL            = 187,
  D3DRS_CCW_STENCILPASS             = 188,
  D3DRS_CCW_STENCILFUNC             = 189,
  D3DRS_COLORWRITEENABLE1           = 190,
  D3DRS_COLORWRITEENABLE2           = 191,
  D3DRS_COLORWRITEENABLE3           = 192,
  D3DRS_BLENDFACTOR                 = 193,
  D3DRS_SRGBWRITEENABLE             = 194,
  D3DRS_DEPTHBIAS                   = 195,
  D3DRS_WRAP8                       = 198,
  D3DRS_WRAP9                       = 199,
  D3DRS_WRAP10                      = 200,
  D3DRS_WRAP11                      = 201,
  D3DRS_WRAP12                      = 202,
  D3DRS_WRAP13                      = 203,
  D3DRS_WRAP14                      = 204,
  D3DRS_WRAP15                      = 205,
  D3DRS_SEPARATEALPHABLENDENABLE    = 206,
  D3DRS_SRCBLENDALPHA               = 207,
  D3DRS_DESTBLENDALPHA              = 208,
  D3DRS_BLENDOPALPHA                = 209,
  D3DRS_FORCE_DWORD                 = 0x7fffffff
} D3DRENDERSTATETYPE, *LPD3DRENDERSTATETYPE;

Константы

D3DRS_ZENABLE

Состояние буферизации глубины в качестве одного члена перечисленного типа D3DZBUFFERTYPE . Задайте для этого состояния значение D3DZB_TRUE, чтобы включить z-буферизацию, D3DZB_USEW включить w-buffering или D3DZB_FALSE отключить буферизацию глубины.

Значение по умолчанию для этого состояния отрисовки D3DZB_TRUE, если набор элементов глубины был создан вместе с цепочкой буферов, задав элемент EnableAutoDepthStencil структуры D3DPRESENT_PARAMETERS значение TRUE и D3DZB_FALSE в противном случае.

D3DRS_FILLMODE

Один или несколько элементов перечисленного типа D3DFILLMODE . Значение по умолчанию — D3DFILL_SOLID.

D3DRS_SHADEMODE

Один или несколько элементов перечисленного типа D3DSHADEMODE . Значение по умолчанию — D3DSHADE_GOURAUD.

D3DRS_ZWRITEENABLE

Значение TRUE , чтобы приложение записывайте в буфер глубины. Значение по умолчанию — TRUE. Этот элемент позволяет приложению предотвратить обновление буфера глубины системой с новыми значениями глубины. Если значение FALSE, сравнение глубины по-прежнему выполняется в соответствии с состоянием отрисовки D3DRS_ZFUNC, предполагая, что выполняется буферизация глубины, но значения глубины не записываются в буфер.

D3DRS_ALPHATESTENABLE

Значение TRUE для включения альфа-тестирования пикселей. Если тест проходит, пиксель обрабатывается буфером кадра. В противном случае все обработка буфера кадров пропускается для пикселя.

Тест выполняется путем сравнения входящих альфа-значений со ссылочным альфа-значением, используя функцию сравнения, предоставляемую состоянием D3DRS_ALPHAFUNC отрисовки. Эталонное альфа-значение определяется набором значений для D3DRS_ALPHAREF. Дополнительные сведения см. в разделе "Состояние альфа-тестирования" (Direct3D 9).

Значение по умолчанию этого параметра равно FALSE.

D3DRS_LASTPIXEL

Значение по умолчанию — TRUE, которое включает рисование последнего пикселя в строке. Чтобы предотвратить рисование последнего пикселя, задайте для этого значения значение FALSE. Дополнительные сведения см. в разделе "Структура и состояние заполнения" (Direct3D 9).

D3DRS_SRCBLEND

Один элемент перечисленного типа D3DBLEND . Значение по умолчанию — D3DBLEND_ONE.

D3DRS_DESТБ LEND

Один элемент перечисленного типа D3DBLEND . Значение по умолчанию — D3DBLEND_ZERO.

D3DRS_CULLMODE

Указывает, как выбраковываются треугольники с задней стороной, если вообще. Это можно задать для одного члена перечисленного типа D3DCULL . Значение по умолчанию — D3DCULL_CCW.

D3DRS_ZFUNC

Один элемент перечисленного типа D3DCMPFUNC . Значение по умолчанию — D3DCMP_LESSEQUAL. Этот элемент позволяет приложению принимать или отклонять пиксель на основе его расстояния от камеры.

Значение глубины пикселя сравнивается со значением буфера глубины. Если значение глубины пикселя передает функцию сравнения, пиксель записывается.

Значение глубины записывается в буфер глубины, только если состояние отрисовки равно TRUE.

Программные растризаторы и многие аппаратные ускорители работают быстрее, если сбой теста глубины, так как не нужно фильтровать и модулировать текстуру, если пиксель не будет отображаться.

D3DRS_ALPHAREF

Значение, указывающее ссылочное альфа-значение, для которого тестируются пиксели при включении альфа-тестирования. Это 8-разрядное значение, размещенное в низких 8 битах значения состояния отрисовки DWORD. Значения могут варьироваться от 0x00000000 до 0x000000FF. Значение по умолчанию равно 0.

D3DRS_ALPHAFUNC

Один элемент перечисленного типа D3DCMPFUNC . Значение по умолчанию — D3DCMP_ALWAYS. Этот элемент позволяет приложению принимать или отклонять пиксель на основе его альфа-значения.

D3DRS_DITHERENABLE

Значение TRUE для включения dithering. Значение по умолчанию — FALSE.

D3DRS_ALPHABLENDENABLE

Значение TRUE для включения прозрачности с альфа-смешанным форматом. Значение по умолчанию — FALSE.

Тип альфа-смешивания определяется состояниями отрисовки D3DRS_SRCBLEND и D3DRS_DESТБ LEND.

D3DRS_FOGENABLE

True , чтобы включить смешение тумана. Значение по умолчанию — FALSE. Дополнительные сведения об использовании смешения тумана см. в разделе "Туман".

D3DRS_SPECULARENABLE

Значение TRUE для включения зрителя. Значение по умолчанию — FALSE.

Спекулярные выделения вычисляются так, как будто каждая вершина в объекте, зажигаемая, находится в источнике объекта. Это дает ожидаемые результаты до тех пор, пока объект моделируется вокруг источника и расстояние от света к объекту относительно большой. В других случаях результаты не определены.

Если для этого элемента задано значение TRUE, то зриемый цвет добавляется к базовому цвету после каскада текстуры, но до альфа-смешения.

D3DRS_FOGCOLOR

Значение, тип которого D3DCOLOR. Значение по умолчанию равно 0. Дополнительные сведения о цвете тумана см. в разделе "Цвет тумана" (Direct3D 9).

D3DRS_FOGTABLEMODE

Формула тумана, используемая для тумана пикселей. Задайте для одного из членов перечисленного типа D3DFOGMODE . Значение по умолчанию — D3DFOG_NONE. Дополнительные сведения о тумане пикселей см. в разделе "Пиксельный туман" (Direct3D 9).

D3DRS_FOGSTART

Глубина, с которой начинаются эффекты пикселя или вершины тумана для линейного режима тумана. Значение по умолчанию — 0.0f. Глубина указана в мировом пространстве для тумана вершин и пространства устройства [0.0, 1.0] или мирового пространства для тумана пикселей. Для пиксельного тумана эти значения находятся в пространстве устройства, когда система использует z для вычислений тумана и мирового пространства, когда система использует туман относительно глаз (w-fog). Дополнительные сведения см. в разделе "Параметры тумана" (Direct3D 9) и "Относительный глаз" и "Глубина на основе Z".

Значения для этого состояния отрисовки являются значениями с плавающей запятой. Так как метод IDirect3Device9::SetRenderState принимает значения DWORD, приложение должно привести переменную, содержащую значение, как показано в следующем примере кода.

pDevice9->SetRenderState(D3DRS_FOGSTART, 
                         *((DWORD*) (&fFogStart)));

D3DRS_FOGEND

Глубина, в которой пиксель или вершинные эффекты тумана заканчиваются для линейного режима тумана. Значение по умолчанию — 1.0f. Глубина указана в мировом пространстве для тумана вершин и пространства устройства [0.0, 1.0] или мирового пространства для тумана пикселей. Для пиксельного тумана эти значения находятся в пространстве устройства, когда система использует z для вычислений тумана и в мировом пространстве, когда система использует туман относительно глаз (w-fog). Дополнительные сведения см. в разделе "Параметры тумана" (Direct3D 9) и "Относительный глаз" и "Глубина на основе Z".

Значения для этого состояния отрисовки являются значениями с плавающей запятой. Так как метод IDirect3Device9::SetRenderState принимает значения DWORD, приложение должно привести переменную, содержащую значение, как показано в следующем примере кода.

m_pDevice9->SetRenderState(D3DRS_FOGEND, *((DWORD*) (&fFogEnd)));

D3DRS_FOGDENSITY

Плотность тумана для пиксельного или вершинного тумана, используемого в экспоненциальных режимах тумана (D3DFOG_EXP и D3DFOG_EXP2). Допустимые значения плотности варьируются от 0,0 до 1.0. Значение по умолчанию — 1,0. Дополнительные сведения см. в разделе "Параметры тумана" (Direct3D 9).

Значения для этого состояния отрисовки являются значениями с плавающей запятой. Так как метод IDirect3Device9::SetRenderState принимает значения DWORD, приложение должно привести переменную, содержащую значение, как показано в следующем примере кода.

    m_pDevice9->SetRenderState(D3DRS_FOGDENSITY, *((DWORD*) (&fFogDensity)));

D3DRS_RANGEFOGENABLE

Значение TRUE для включения тумана вершин на основе диапазона. Значение по умолчанию — FALSE, в этом случае система использует туман на основе глубины. В тумане на основе диапазона расстояние объекта от средства просмотра используется для вычисления эффектов тумана, а не глубины объекта (т. е. координаты z) в сцене. В тумане на основе диапазона все методы тумана работают как обычно, за исключением того, что они используют диапазон вместо глубины в вычислениях.

Диапазон является правильным фактором, используемым для вычислений тумана, но глубина обычно используется, так как диапазон занимает много времени для вычислений и глубины, как правило, уже доступен. Использование глубины для вычисления тумана имеет нежелательный эффект при изменении туманности периферийных объектов по мере перемещения глаза зрителя - в этом случае глубина изменяется, и диапазон остается постоянным.

Так как оборудование в настоящее время не поддерживает туман на основе диапазона пикселей, исправление диапазона предлагается только для тумана вершин.

Дополнительные сведения см. в разделе "Вершинный туман" (Direct3D 9).

D3DRS_STENCILENABLE

Значение TRUE , чтобы включить набор элементов или FALSE , чтобы отключить набор элементов. Значение по умолчанию — FALSE. Дополнительные сведения см. в разделе "Методы буфера элементов" (Direct3D 9).

D3DRS_STENCILFAIL

Операция набора элементов для выполнения, если тест набора элементов завершается сбоем. Значения относятся к перечислению D3DSTENCILOP . Значение по умолчанию — D3DSTENCILOP_KEEP.

D3DRS_STENCILZFAIL

Операция набора элементов для выполнения, если тест набора элементов проходит, а тест глубины (z-test) завершается ошибкой. Значения относятся к перечислению D3DSTENCILOP . Значение по умолчанию — D3DSTENCILOP_KEEP.

D3DRS_STENCILPASS

Операция набора элементов для выполнения, если тесты набора элементов и глубины (z) проходят. Значения относятся к перечислению D3DSTENCILOP . Значение по умолчанию — D3DSTENCILOP_KEEP.

D3DRS_STENCILFUNC

Функция сравнения для теста наборов элементов. Значения относятся к D3DCMPFUNC перечисленного типа. Значение по умолчанию — D3DCMP_ALWAYS.

Функция сравнения используется для сравнения ссылочного значения с записью буфера набора элементов. Это сравнение применяется только к битам в значении ссылки и записи буфера наборов элементов, заданных в маске набора элементов (устанавливается состоянием отрисовки D3DRS_STENCILMASK). Если значение TRUE, тест набора элементов проходит.

D3DRS_STENCILREF

Значение ссылки int для теста наборов элементов. Значение по умолчанию равно 0.

D3DRS_STENCILMASK

Маска применяется к значению ссылки и каждой записи буфера набора элементов, чтобы определить значительные биты для теста наборов элементов. Маска по умолчанию 0xFFFFFFFF.

D3DRS_STENCILWRITEMASK

Маска записи, применяемая к значениям, записанным в буфер набора элементов. Маска по умолчанию 0xFFFFFFFF.

D3DRS_TEXTUREFACTOR

Цвет, используемый для смешивания с несколькими текстурами с аргументом D3DTA_TFACTOR текстуры или операцией D3DTOP_BLENDFACTORALPHA смешения текстур. Связанное значение — это переменная D3DCOLOR. Значение по умолчанию непрозрачно белое (0xFFFFFFFF).

D3DRS_WRAP0

Поведение упаковки текстур для нескольких наборов координат текстур. Допустимые значения для этого состояния отрисовки могут быть любым сочетанием D3DWRAPCOORD_0 (или D3DWRAP_U), D3DWRAPCOORD_1 (или D3DWRAP_V), D3DWRAPCOORD_2 (или D3DWRAP_W) и флагов D3DWRAPCOORD_3. Это приводит к тому, что система будет упаковывать в сторону первого, второго, третьего и четвертого измерений, иногда называемые направлениями s, t, r и q для данной текстуры. Значение по умолчанию для этого состояния отрисовки равно 0 (оболочка отключена во всех направлениях).

D3DRS_WRAP1

См. D3DRS_WRAP0.

D3DRS_WRAP2

См. D3DRS_WRAP0.

D3DRS_WRAP3

См. D3DRS_WRAP0.

D3DRS_WRAP4

См. D3DRS_WRAP0.

D3DRS_WRAP5

См. D3DRS_WRAP0.

D3DRS_WRAP6

См. D3DRS_WRAP0.

D3DRS_WRAP7

См. D3DRS_WRAP0.

D3DRS_Cпакет интерфейса пользователя PING

ЗНАЧЕНИЕ TRUE , чтобы включить примитивное вырезка с помощью Direct3D или FALSE , чтобы отключить его. Значение по умолчанию — TRUE.

D3DRS_LIGHTING

ЗНАЧЕНИЕ TRUE , чтобы включить освещение Direct3D или FALSE , чтобы отключить его. Значение по умолчанию — TRUE. Правильно освещены только вершины, включающие норму вершины; вершины, которые не содержат нормального, используют точечный продукт 0 во всех вычислениях освещения.

D3DRS_AМБ IENT

Цвет окружающего света. Это значение имеет тип D3DCOLOR. Значение по умолчанию равно 0.

D3DRS_FOGVERTEXMODE

Формула тумана, используемая для тумана вершин. Задайте для одного члена перечисленного типа D3DFOGMODE . Значение по умолчанию — D3DFOG_NONE.

D3DRS_COLORVERTEX

ЗНАЧЕНИЕ TRUE , чтобы включить цвет вершины или FALSE , чтобы отключить его. Значение по умолчанию — TRUE. Включение цвета вершин позволяет системе включать цвет, определенный для отдельных вершин в вычислениях освещения.

Дополнительные сведения см. в следующих состояниях отрисовки:

  • D3DRS_DIFFUSEMATERIALSOURCE
  • D3DRS_SPECULARMATERIALSOURCE
  • D3DRS_AМБ IENTSOURCE
  • D3DRS_EMISSIVEMATERIALSOURCE

D3DRS_LOCALVIEWER

ЗНАЧЕНИЕ TRUE , чтобы включить относительные вспышки камеры или FALSE для использования ортогональных зрительных выделений. Значение по умолчанию — TRUE. Приложения, использующие ортогональную проекцию, должны указывать FALSE.

D3DRS_NORMALIZENORMALS

ЗНАЧЕНИЕ TRUE , чтобы включить автоматическую нормализацию норм вершин или FALSE , чтобы отключить ее. Значение по умолчанию — FALSE. Включение этой функции приводит к нормализации нормальной вершины для вершин после преобразования их в пространство камеры, что может быть вычислительным временем.

D3DRS_DIFFUSEMATERIALSOURCE

Диффузный источник цвета для вычислений освещения. Допустимые значения являются элементами перечисленного типа D3DMATERIALCOLORSOURCE . Значение по умолчанию — D3DMCS_COLOR1. Значение для этого состояния отрисовки используется только в том случае, если для состояния D3DRS_COLORVERTEX отрисовки задано значение TRUE.

D3DRS_SPECULARMATERIALSOURCE

Спекулярный источник цвета для вычислений освещения. Допустимые значения являются элементами перечисленного типа D3DMATERIALCOLORSOURCE . Значение по умолчанию — D3DMCS_COLOR2.

D3DRS_AМБ IENTSOURCE

Внешний источник цвета для вычислений освещения. Допустимые значения являются элементами перечисленного типа D3DMATERIALCOLORSOURCE . Значение по умолчанию — D3DMCS_MATERIAL.

D3DRS_EMISSIVEMATERIALSOURCE

Эмистивный источник цвета для вычислений освещения. Допустимые значения являются элементами перечисленного типа D3DMATERIALCOLORSOURCE . Значение по умолчанию — D3DMCS_MATERIAL.

D3DRS_VERTEXBLEND

Количество матриц, используемых для смешивания геометрии, если таковые есть. Допустимые значения являются элементами перечисленного типа D3DVERTEXBLENDFLAGS . Значение по умолчанию — D3DVBF_DISABLE.

D3DRS_Cпакет интерфейса пользователя PLANEENABLE

Включает или отключает определяемые пользователем плоскости вырезки. Допустимые значения — это все DWORD, в которых состояние каждого бита (задано или не задано) переключает состояние активации соответствующего определяемого пользователем плоскости вырезки. Наименьший значимый бит (бит 0) управляет первым отрезки плоскости по индексу 0, а последующие биты управляют активацией отрезки плоскостей с более высокими индексами. Если задан бит, система применяет соответствующий плоскость вырезки во время отрисовки сцены. Значение по умолчанию равно 0.

Макросы D3DC пакет интерфейса пользователя PLANEn определены, чтобы обеспечить удобный способ включения вырезки плоскостей.

D3DRS_POINTSIZE

Значение с плавающей запятой, указывающее размер, используемый для вычислений размера точек в случаях, когда размер точки не указан для каждой вершины. Это значение не используется, если вершина содержит размер точки. Это значение находится в единицах пространства экрана, если D3DRS_POINTSCALEENABLE имеет значение FALSE; в противном случае это значение находится в единицах мирового пространства. Значением по умолчанию является значение, возвращаемое драйвером. Если драйвер возвращает значение 0 или 1, значение по умолчанию равно 64, что позволяет эмуляции размера точки программного обеспечения. Так как метод IDirect3Device9::SetRenderState принимает значения DWORD, приложение должно привести переменную, содержащую значение, как показано в следующем примере кода.

m_pDevice9->SetRenderState(D3DRS_POINTSIZE, *((DWORD*)&pointSize));

D3DRS_POINTSIZE_MIN

Значение с плавающей запятой, указывающее минимальный размер примитивов точек. Примитивы точек зажаты к этому размеру во время отрисовки. При установке этого значения меньше 1,0 приводит к удалению точек, когда точка не охватывает центр пикселей, а антиализирование отключается или отрисовывается с меньшей интенсивностью при включении защиты. Значение по умолчанию — 1.0f. Диапазон для этого значения больше или равен 0,0f. Так как метод IDirect3Device9::SetRenderState принимает значения DWORD, приложение должно привести переменную, содержащую значение, как показано в следующем примере кода.

m_pDevice9->SetRenderState(D3DRS_POINTSIZE_MIN, *((DWORD*)&pointSizeMin));

D3DRS_POINTSPRITEENABLE

логическое значение. Если значение TRUE, координаты текстуры примитивов точек задаются таким образом, чтобы все текстуры сопоставлялись на каждой точке. При значении FALSE координаты текстур вершины используются для всей точки. Значение по умолчанию — FALSE. Вы можете достичь точек одно пикселя в стиле DirectX 7, установив для D3DRS_POINTSCALEENABLE значение FALSE и D3DRS_POINTSIZE значение 1.0, которые являются значениями по умолчанию.

D3DRS_POINTSCALEENABLE

логическое значение, которое управляет вычислением размера для примитивов точек. Если значение true, размер точки интерпретируется как значение пространства камеры и масштабируется функцией расстояния и frustum для просмотра масштабирования оси y для вычисления окончательного размера точки пространства экрана. Если значение FALSE, размер точки интерпретируется как пространство экрана и используется непосредственно. Значение по умолчанию — FALSE.

D3DRS_POINTSCALE_A

Значение с плавающей запятой, которое управляет затуханием размера на основе расстояния для примитивов точек. Активен только в том случае, если D3DRS_POINTSCALEENABLE имеет значение TRUE. Значение по умолчанию — 1.0f. Диапазон для этого значения больше или равен 0,0f. Так как метод IDirect3Device9::SetRenderState принимает значения DWORD, приложение должно привести переменную, содержащую значение, как показано в следующем примере кода.

m_pDevice9->SetRenderState(D3DRS_POINTSCALE_A, *((DWORD*)&pointScaleA));

D3DRS_POINTSCALE_B

Значение с плавающей запятой, которое управляет затуханием размера на основе расстояния для примитивов точек. Активен только в том случае, если D3DRS_POINTSCALEENABLE имеет значение TRUE. Значение по умолчанию — 0.0f. Диапазон для этого значения больше или равен 0,0f. Так как метод IDirect3Device9::SetRenderState принимает значения DWORD, приложение должно привести переменную, содержащую значение, как показано в следующем примере кода.

m_pDevice9->SetRenderState(D3DRS_POINTSCALE_B, *((DWORD*)&pointScaleB));

D3DRS_POINTSCALE_C

Значение с плавающей запятой, которое управляет затуханием размера на основе расстояния для примитивов точек. Активен только в том случае, если D3DRS_POINTSCALEENABLE имеет значение TRUE. Значение по умолчанию — 0.0f. Диапазон для этого значения больше или равен 0,0f. Так как метод IDirect3Device9::SetRenderState принимает значения DWORD, приложение должно привести переменную, содержащую значение, как показано в следующем примере кода.

m_pDevice9->SetRenderState(D3DRS_POINTSCALE_C, *((DWORD*)&pointScaleC));

D3DRS_MULTISAMPLEANTIALIAS

логическое значение, определяющее, как вычисляются отдельные образцы при использовании многофакторного буфера целевого буфера отрисовки. Если задано значение TRUE, вычисляются несколько выборок таким образом, чтобы полная защита сцены выполнялась выборкой по разным позициям выборки для каждого из нескольких выборок. Если задано значение FALSE, все несколько примеров записываются с одинаковым значением выборки в центре пикселей, что позволяет выполнять отрисовку в многофакторном буфере. Это состояние отрисовки не действует при отрисовке в один буфер выборки. Значение по умолчанию — TRUE.

D3DRS_MULTISAMPLEMASK

Каждый бит в этой маске, начиная с наименьшего значительного бита (LSB), управляет изменением одного из примеров в целевом объекте многофакторной отрисовки. Таким образом, для 8-выборочных целевых объектов отрисовки низкий байт содержит восемь операций записи для каждого из восьми выборок. Это состояние отрисовки не действует при отрисовке в один буфер выборки. Значение по умолчанию — 0xFFFFFFFF.

Это состояние отрисовки позволяет использовать многофакторный буфер в качестве буфера накопления, выполняя многострастную отрисовку геометрии, где каждый проход обновляет подмножество примеров.

Если есть многосамплесные и включенные образцы k, результирующая интенсивность отрисованного изображения должна иметь значение k/n. Каждый компонент RGB каждого пикселя учитывается k/n.

D3DRS_PATCHEDGESTYLE

Задает, будут ли края исправлений использовать тесселяции с плавающей запятой. Возможные значения определяются D3DPATCHEDGESTYLE перечисленным типом. Значение по умолчанию — D3DPATCHEDGE_DISCRETE.

D3DRS_DEBUGMONITORTOKEN

Устанавливается только для отладки монитора. Возможные значения определяются D3DDEBUGMONITORTOKENS перечисленным типом. Обратите внимание, что если задано D3DRS_DEBUGMONITORTOKEN, вызов обрабатывается как передача маркера в монитор отладки. Например, если после передачи D3DDMT_ENABLE или D3DDMT_DISABLE в D3DRS_DEBUGMONITORTOKEN — передаются другие значения маркера, состояние (включено или отключено) монитора отладки по-прежнему сохраняется.

Это состояние полезно только для отладки сборок. Монитор отладки по умолчанию используется для D3DDMT_ENABLE.

D3DRS_POINTSIZE_MAX

Значение с плавающей запятой, указывающее максимальный размер, к которому будут закреплены спрайты точек. Значение должно быть меньше или равно члену MaxPointSize D3DCAPS9 и больше или равно D3DRS_POINTSIZE_MIN. Значение по умолчанию — 64.0. Так как метод IDirect3Device9::SetRenderState принимает значения DWORD, приложение должно привести переменную, содержащую значение, как показано в следующем примере кода.

m_pDevice9->SetRenderState(D3DRS_PONTSIZE_MAX, *((DWORD*)&pointSizeMax));

D3DRS_INDEXEDVERTEXBLENDENABLE

логическое значение, которое включает или отключает индексированную смесь вершин. Значение по умолчанию — FALSE. Если задано значение TRUE, включена перемешивание индексированных вершин. Если задано значение FALSE, то отключается перемешивание индексированных вершин. Если это состояние отрисовки включено, пользователь должен передавать индексы матрицы в виде упакованного DWORDwith каждой вершины. Если состояние отрисовки отключено и смешение вершин включено через состояние D3DRS_VERTEXBLEND, это эквивалентно использованию индексов матрицы 0, 1, 2, 3 в каждой вершине.

D3DRS_COLORWRITEENABLE

Значение UINT, которое включает запись на канал для буфера цветов отрисовки. Набор битов приводит к обновлению цветового канала во время трехмерной отрисовки. Четкий бит приводит к тому, что цветной канал не влияет. Эта функция доступна, если бит D3DPMISCCAPS_COLORWRITEENABLE возможностей установлен в элементе PrimitiveMiscCaps структуры D3DCAPS9 для устройства. Это состояние отрисовки не влияет на операцию очистки. Значение по умолчанию — 0x0000000F.

Допустимые значения для этого состояния отрисовки могут быть любым сочетанием флагов D3DCOLORWRITEENABLE_ALPHA, D3DCOLORWRITEENABLE_BLUE, D3DCOLORWRITEENABLE_GREEN или D3DCOLORWRITEENABLE_RED.

D3DRS_TWEENFACTOR

Значение с плавающей запятой, которое управляет коэффициентом настройки. Значение по умолчанию — 0.0f. Так как метод IDirect3Device9::SetRenderState принимает значения DWORD, приложение должно привести переменную, содержащую значение, как показано в следующем примере кода.

m_pDevice9->SetRenderState(D3DRS_TWEENFACTOR, *((DWORD*)&TweenFactor));

D3DRS_BLENDOP

Значение, используемое для выбора арифметической операции, применяемой при отображении состояния альфа-смешивания, D3DRS_ALPHABLENDENABLE, имеет значение TRUE. Допустимые значения определяются D3DBLENDOP перечисленным типом. Значение по умолчанию — D3DBLENDOP_ADD.

Если возможность устройства D3DPMISCCAPS_BLENDOP не поддерживается, D3DBLENDOP_ADD выполняется.

D3DRS_POSITIONDEGREE

Степень интерполяции положения N-patch. Значения могут быть D3DDEGREE_CUBIC (по умолчанию) или D3DDEGREE_LINEAR. Дополнительные сведения см. в D3DDEGREETYPE.

D3DRS_NORMALDEGREE

Степень нормальной интерполяции N-patch. Значения могут быть D3DDEGREE_LINEAR (по умолчанию) или D3DDEGREE_QUADRATIC. Дополнительные сведения см. в D3DDEGREETYPE.

D3DRS_SCISSORTESTENABLE

ЗНАЧЕНИЕ TRUE , чтобы включить тестирование ножницы и FALSE , чтобы отключить его. Значение по умолчанию — FALSE.

D3DRS_SLOPESCALEDEPTHBIAS

Используется для определения того, сколько предвзятости можно применить к сопланарным примитивам для уменьшения z-боевых действий. Значение по умолчанию равно 0.

предвзятость = (max * D3DRS_SLOPESCALEDEPTHBIAS) + D3DRS_DEPTHBIAS.

где максимальное значение — максимальный наклон глубины отрисовываемого треугольника.

D3DRS_ANTIALIASEDLINEENABLE

Значение TRUE для включения защиты от линии, FALSE для отключения антиалиасинга линии. Значение по умолчанию — FALSE.

При отрисовке в целевой объект многофакторной отрисовки D3DRS_ANTIALIASEDLINEENABLE игнорируется, а все строки отображаются псевдонимами. Используйте ID3DXLine для отрисовки с антиалисной линией в целевом объекте многофакторной отрисовки.

D3DRS_MINTESSELLATIONLEVEL

Минимальный уровень тесселяции. Значение по умолчанию — 1.0f. См. раздел Tessellation (Direct3D 9).

D3DRS_MAXTESSELLATIONLEVEL

Максимальный уровень тесселяции. Значение по умолчанию — 1.0f. См. раздел Tessellation (Direct3D 9).

D3DRS_ADAPTIVETESS_X

Количество адаптивных тесселлате в направлении x. Значение по умолчанию — 0.0f. См . адаптивную тесселяции.

D3DRS_ADAPTIVETESS_Y

Сумма адаптивно тесселлате, в направлении y. Значение по умолчанию — 0.0f. См . Adaptive_Tessellation.

D3DRS_ADAPTIVETESS_Z

Сумма адаптивно тесселлате в направлении z. Значение по умолчанию — 1.0f. См . Adaptive_Tessellation.

D3DRS_ADAPTIVETESS_W

Количество адаптивно тесселлате в направлении w. Значение по умолчанию — 0.0f. См . Adaptive_Tessellation.

D3DRS_ENABLEADAPTIVETESSELLATION

ЗНАЧЕНИЕ TRUE для включения адаптивной тесселяции, FALSE для отключения. Значение по умолчанию — FALSE. См . Adaptive_Tessellation.

D3DRS_TWOSIDEDSTENCILMODE

TRUE включает двухстороннее набор элементов, false отключает его. Значение по умолчанию — FALSE. Приложение должно задать для D3DRS_CULLMODE значение D3DCULL_NONE, чтобы включить двухсторонняя режим набора элементов. Если порядок ветвления треугольника по часовой стрелке, будут использоваться операции D3DRS_STENCIL*. Если порядок подмотки счетчиков, будут использоваться операции D3DRS_CCW_STENCIL*.

Чтобы узнать, поддерживается ли двухсторонняя набор элементов, проверка элемент StencilCaps D3DCAPS9 для D3DSTENCILCAPS_TWOSIDED. См. также D3DSTENCILCAPS.

D3DRS_CCW_STENCILFAIL

Операция набора элементов для выполнения, если тест набора элементов CCW завершается сбоем. Значения относятся к перечислению D3DSTENCILOP . Значение по умолчанию — D3DSTENCILOP_KEEP.

D3DRS_CCW_STENCILZFAIL

Операция набора элементов для выполнения, если тест набора элементов CCW проходит и z-test завершается сбоем. Значения относятся к перечислению D3DSTENCILOP . Значение по умолчанию — D3DSTENCILOP_KEEP.

D3DRS_CCW_STENCILPASS

Операция набора элементов для выполнения, если передаются наборы элементов CCW и z-тесты. Значения относятся к перечислению D3DSTENCILOP . Значение по умолчанию — D3DSTENCILOP_KEEP.

D3DRS_CCW_STENCILFUNC

Функция сравнения. Проверка набора элементов CCW проходит, если (ref & mask) функция наборов (набор элементов и маска)) имеет значение TRUE. Значения относятся к D3DCMPFUNC перечисленного типа. Значение по умолчанию — D3DCMP_ALWAYS.

D3DRS_COLORWRITEENABLE1

Дополнительные значения ColorWriteEnable для устройств. См. D3DRS_COLORWRITEENABLE. Эта функция доступна, если бит D3DPMISCCAPS_INDEPENDENTWRITEMASKS возможностей задан в элементе PrimitiveMiscCaps структуры D3DCAPS9 для устройства. Значение по умолчанию — 0x0000000f.

D3DRS_COLORWRITEENABLE2

Дополнительные значения ColorWriteEnable для устройств. См. D3DRS_COLORWRITEENABLE. Эта функция доступна, если бит D3DPMISCCAPS_INDEPENDENTWRITEMASKS возможностей задан в элементе PrimitiveMiscCaps структуры D3DCAPS9 для устройства. Значение по умолчанию — 0x0000000f.

D3DRS_COLORWRITEENABLE3

Дополнительные значения ColorWriteEnable для устройств. См. D3DRS_COLORWRITEENABLE. Эта функция доступна, если бит D3DPMISCCAPS_INDEPENDENTWRITEMASKS возможностей задан в элементе PrimitiveMiscCaps структуры D3DCAPS9 для устройства. Значение по умолчанию — 0x0000000f.

D3DRS_BLENDFACTOR

D3DCOLOR используется для константного смешивания во время альфа-смешивания. Эта функция доступна, если бит D3DPBLENDCAPS_BLENDFACTOR возможностей установлен в элементе SrcBlendCaps D3DCAPS9 или члене DestBlendCaps D3DCAPS9. См. D3DRENDERSTATETYPE. Значение по умолчанию — 0xffffffff.

D3DRS_SRGBWRITEENABLE

Включение гамма-записи в SRGB. Формат должен предоставлять D3DUSAGE_SRGBWRITE. Значение по умолчанию равно 0.

D3DRS_DEPTHBIAS

Значение с плавающей запятой, используемое для сравнения значений глубины. См. см. см. предвзятость глубины (Direct3D 9). Значение по умолчанию равно 0.

D3DRS_WRAP8

См. D3DRS_WRAP0.

D3DRS_WRAP9

См. D3DRS_WRAP0.

D3DRS_WRAP10

См. D3DRS_WRAP0.

D3DRS_WRAP11

См. D3DRS_WRAP0.

D3DRS_WRAP12

См. D3DRS_WRAP0.

D3DRS_WRAP13

См. D3DRS_WRAP0.

D3DRS_WRAP14

См. D3DRS_WRAP0.

D3DRS_WRAP15

См. D3DRS_WRAP0.

D3DRS_SEPARATEALPHABLENDENABLE

True включает отдельный режим смешивания для альфа-канала. Значение по умолчанию — FALSE.

Если задано значение FALSE, то факторы и операции, применяемые к альфа-данным, должны совпадать с параметрами, определенными для цвета. Этот режим эффективно жестко переместится на FALSE для реализаций, которые не задают D3DPMISCCAPS_SEPARATEALPHABLEND крышки. См . D3DPMISCCAPS.

Тип отдельной альфа-смешивания определяется состояниями отрисовки D3DRS_SRCBLENDALPHA и D3DRS_DESТБ LENDALPHA.

D3DRS_SRCBLENDALPHA

Один элемент перечисленного типа D3DBLEND . Это значение игнорируется, если D3DRS_SEPARATEALPHABLENDENABLE значение TRUE. Значение по умолчанию — D3DBLEND_ONE.

D3DRS_DESТБ LENDALPHA

Один элемент перечисленного типа D3DBLEND . Это значение игнорируется, если D3DRS_SEPARATEALPHABLENDENABLE значение TRUE. Значение по умолчанию — D3DBLEND_ZERO.

D3DRS_BLENDOPALPHA

Значение, используемое для выбора арифметической операции, применяемой к отдельному альфа-смешаю при состоянии отрисовки, D3DRS_SEPARATEALPHABLENDENABLE, имеет значение TRUE.

Допустимые значения определяются D3DBLENDOP перечисленным типом. Значение по умолчанию — D3DBLENDOP_ADD.

Если возможность устройства D3DPMISCCAPS_BLENDOP не поддерживается, D3DBLENDOP_ADD выполняется. См . D3DPMISCCAPS.

D3DRS_FORCE_DWORD

Заставляет это перечисление скомпилировать до 32 битов. Без этого значения некоторые компиляторы позволяют этому перечислению компилироваться в размер, отличный от 32 битов. Это значение не используется.

Замечания

Состояния отрисовки Пример текстуры
ps_1_1 ps_1_3 4 примеры текстур

 

Direct3D определяет константу D3DRENDERSTATE_WRAPBIAS в качестве удобства для приложений для включения или отключения упаковки текстур на основе целого числа отсчитываемого от нуля целого числа координат текстуры (а не явного использования одного из значений состояния D3DRS_WRAP n). Добавьте значение D3DRENDERSTATE_WRAPBIAS в отсчитываемый от нуля индекс координат текстуры для вычисления значения D3DRS_WRAP n, соответствующего этому индексу, как показано в следующем примере.

// Enable U/V wrapping for textures that use the texture 
// coordinate set at the index within the dwIndex variable
    
HRESULT hr = pd3dDevice->SetRenderState(
dwIndex + D3DRENDERSTATE_WRAPBIAS,  
D3DWRAPCOORD_0 | D3DWRAPCOORD_1);
     
// If dwIndex is 3, the value that results from 
// the addition equals D3DRS_WRAP3 (131)

Requirements

Требование Значение
Верхний колонтитул
D3D9Types.h

См. также

Перечисления Direct3D

IDirect3Device9::GetRenderState

IDirect3Device9::SetRenderState