Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Блок состояния можно использовать для захвата только состояния пикселов (см. Сохранение и восстановление состояния блоков состояния (Direct3D 9)). Следующее состояние — это состояние пикселей:
- Состояние отрисовки пикселей (см. Конвейер пикселей: Состояние отрисовки).
- Состояние текстуры пикселя (см. Конвейер пикселей: Состояние текстуры).
- Состояние выборки пикселей (см. конвейер пикселей: состояние выборки).
- Текущий шейдер пикселей и каждая из констант шейдера пикселей.
Чтобы записать состояние пикселя с блоком состояния, укажите D3DSBT_PIXELSTATE при вызове IDirect3Device9::CreateStateBlock.
Конвейер пикселей: состояние рендеринга
Состояния рендеринга устройства влияют на поведение почти всех частей конвейера. Состояния рендера задаются путем вызова IDirect3DDevice9::SetRenderState.
В следующей таблице содержатся все состояния отрисовки, которые настраивают состояние пикселя:
| Состояния отрисовки | Значение по умолчанию |
|---|---|
| D3DRS_ZENABLE | D3DZB_FALSE |
| D3DRS_SPECULARENABLE | FALSE |
| D3DFILLMODE | D3DFILL_SOLID |
| D3DSHADEMODE | D3DSHADE_GOURAUD |
| D3DRS_ZWRITEENABLE | ИСТИНА |
| D3DRS_ALPHATESTENABLE | ЛОЖЬ |
| D3DRS_LASTPIXEL | TRUE |
| D3DRS_SRCBLEND | D3DBLEND_ONE |
| D3DRS_DESTBLEND | D3DBLEND_ZERO |
| D3DRS_ZFUNC | D3DCMP_LESSEQUAL |
| D3DRS_ALPHAREF | 0 |
| D3DRS_ALPHAFUNC | D3DCMP_ALWAYS |
| D3DRS_DITHERENABLE | FALSE |
| D3DRS_FOGSTART | 0 |
| D3DRS_FOGEND | 1 |
| D3DRS_FOGDENSITY | 1 |
| D3DRS_ALPHABLENDENABLE | FALSE |
| D3DRS_DEPTHBIAS | 0 |
| D3DRS_STENCILENABLE | ЛОЖЬ |
| D3DRS_STENCILFAIL | D3DSTENCILOP_KEEP |
| D3DRS_STENCILZFAIL | D3DSTENCILOP_KEEP |
| D3DRS_STENCILPASS | D3DSTENCILOP_KEEP |
| D3DRS_STENCILFUNC | D3DCMP_ALWAYS |
| D3DRS_STENCILREF | 0 |
| D3DRS_STENCILMASK | 0xffffffff |
| D3DRS_STENCILWRITEMASK | 0xffffffff |
| D3DRS_TEXTUREFACTOR | 0xffffffff |
| D3DRS_WRAP0 | 0 |
| D3DRS_WRAP1 | 0 |
| D3DRS_WRAP2 | 0 |
| D3DRS_WRAP3 | 0 |
| D3DRS_WRAP4 | 0 |
| D3DRS_WRAP5 | 0 |
| D3DRS_WRAP6 | 0 |
| D3DRS_WRAP7 | 0 |
| D3DRS_WRAP8 | 0 |
| D3DRS_WRAP9 | 0 |
| D3DRS_WRAP10 | 0 |
| D3DRS_WRAP11 | 0 |
| D3DRS_WRAP12 | 0 |
| D3DRS_WRAP13 | 0 |
| D3DRS_WRAP14 | 0 |
| D3DRS_WRAP15 | 0 |
| D3DRS_LOCALVIEWER | ИСТИНА |
| D3DRS_EMISSIVEMATERIALSOURCE | D3DMCS_MATERIAL |
| D3DRS_AMBIENTMATERIALSOURCE | D3DMCS_MATERIAL |
| D3DRS_DIFFUSEMATERIALSOURCE | D3DMCS_COLOR1 |
| D3DRS_SPECULARMATERIALSOURCE | D3DMCS_COLOR2 |
| D3DRS_COLORWRITEENABLE | 0x0000000f |
| D3DBLENDOP | D3DBLENDOP_ADD |
| D3DRS_SCISSORTESTENABLE | FALSE |
| D3DRS_SLOPESCALEDEPTHBIAS | 0 |
| D3DRS_ANTIALIASEDLINEENABLE | ЛОЖЬ |
| D3DRS_TWOSIDEDSTENCILMODE | ЛОЖЬ |
| D3DRS_CCW_STENCILFAIL | D3DSTENCILOP_KEEP |
| D3DRS_CCW_STENCILZFAIL | D3DSTENCILOP_KEEP |
| D3DRS_CCW_STENCILPASS | D3DSTENCILOP_KEEP |
| D3DRS_CCW_STENCILFUNC | D3DCMP_ALWAYS |
| D3DRS_COLORWRITEENABLE1 | 0x0000000f |
| D3DRS_COLORWRITEENABLE2 | 0x0000000f |
| D3DRS_COLORWRITEENABLE3 | 0x0000000f |
| D3DRS_BLENDFACTOR | 0xffffffff |
| D3DRS_SRGBWRITEENABLE | 0 |
| D3DRS_SEPARATEALPHABLENDENABLE | ЛОЖНО |
| D3DRS_SRCBLENDALPHA | D3DBLEND_ONE |
| D3DRS_DESTBLENDALPHA | D3DBLEND_ZERO |
| D3DRS_BLENDOPALPHA | D3DBLENDOP_ADD |
Пиксельный конвейер: состояние сэмплера
Состояния сэмплера контролируют параметры выборки, такие как фильтрация, текстурирование и режимы адресации текстурных координат. Используйте IDirect3DDevice9::SetSamplerState для настройки состояния сэмплера (включая то, которое используется в модуле тесселляции для выборки карт смещения). Состояния семплера были переименованы с префиксом "D3DSAMP_", чтобы обеспечить обнаружение ошибок во время компиляции при переносе из DirectX 8.
В следующей таблице содержатся все состояния выборки, которые настраивают состояние пикселя:
| Состояния сэмплера | Значение по умолчанию |
|---|---|
| D3DSAMP_ADDRESSU | D3DTADDRESS_WRAP |
| D3DSAMP_ADDRESSV | D3DTADDRESS_WRAP |
| D3DSAMP_ADDRESSW | D3DTADDRESS_WRAP |
| D3DSAMP_BORDERCOLOR | 0x00000000 |
| D3DSAMP_MAGFILTER | D3DTEXF_POINT |
| D3DSAMP_MINFILTER | D3DTEXF_POINT |
| D3DSAMP_MIPFILTER | D3DTEXF_NONE |
| D3DSAMP_MIPMAPLODBIAS | 0 |
| D3DSAMP_MAXMIPLEVEL | 0 |
| D3DSAMP_MAXANISOTROPY | 1 |
| D3DSAMP_SRGBTEXTURE | 0 |
| D3DSAMP_ELEMENTINDEX | 0 |
Конвейер пикселей: состояние текстуры
Состояния текстур управляют операциями смешивания в многотекстурном блендере. Используйте IDirect3Device9::SetTextureStageState для настройки состояний стадии текстуры. Используйте IDirect3Device9::SetTexture для связывания текстуры с этапом выборки.
В следующей таблице перечислены все состояния текстуры, которые настраивают состояние пикселя:
| Состояния текстуры | Значение по умолчанию |
|---|---|
| D3DTSS_COLOROP | D3DTOP_DISABLE |
| D3DTSS_COLORARG1 | D3DTA_TEXTURE |
| D3DTSS_COLORARG2 | D3DTA_CURRENT |
| D3DTSS_ALPHAOP | D3DTOP_DISABLE |
| D3DTSS_ALPHAARG1 | D3DTA_TEXTURE |
| D3DTSS_ALPHAARG2 | D3DTA_CURRENT |
| D3DTSS_BUMPENVMAT00 | 0 |
| D3DTSS_BUMPENVMAT01 | 0 |
| D3DTSS_BUMPENVMAT10 | 0 |
| D3DTSS_BUMPENVMAT11 | 0 |
| D3DTSS_TEXCOORDINDEX | 0 |
| D3DTSS_BUMPENVLSCALE | 0 |
| D3DTSS_BUMPENVLOFFSET | 0 |
| D3DTSS_TEXTURETRANSFORMFLAGS | D3DTTFF_DISABLE |
| D3DTSS_COLORARG0 | D3DTA_CURRENT |
| D3DTSS_ALPHAARG0 | D3DTA_CURRENT |
| D3DTSS_RESULTARG | D3DTA_CURRENT |
Связанные разделы