структура D3D10_DDI_RASTERIZER_DESC (d3d10umddi.h)
Структура D3D10_DDI_RASTERIZER_DESC описывает состояние растеризатора.
Синтаксис
typedef struct D3D10_DDI_RASTERIZER_DESC {
[in] D3D10_DDI_FILL_MODE FillMode;
[in] D3D10_DDI_CULL_MODE CullMode;
[in] BOOL FrontCounterClockwise;
[in] INT32 DepthBias;
[in] FLOAT DepthBiasClamp;
[in] FLOAT SlopeScaledDepthBias;
[in] BOOL DepthClipEnable;
[in] BOOL ScissorEnable;
[in] BOOL MultisampleEnable;
[in] BOOL AntialiasedLineEnable;
} D3D10_DDI_RASTERIZER_DESC;
Члены
[in] FillMode
Значение, указывающее режим заполнения для примитивов. Этот элемент должен иметь одно из следующих значений из перечисления D3D10_DDI_FILL_MODE.
Ценность | Значение |
---|---|
D3D10_DDI_FILL_WIREFRAME (2) | Заполняет проволочные кадры. |
D3D10_DDI_FILL_SOLID (3) | Заполняет твердые вещества. |
[in] CullMode
Значение, указывающее, как выбраковываются треугольники с задней стороной, если вообще. Этот элемент должен иметь одно из следующих значений из перечисления D3D10_DDI_CULL_MODE.
Ценность | Значение |
---|---|
D3D10_DDI_CULL_NONE (1) | Не ломайте треугольники. |
D3D10_DDI_CULL_FRONT (2) | Толстая передние лица. |
D3D10_DDI_CULL_BACK (3) | Толстая спина лиц. |
[in] FrontCounterClockwise
Логическое значение, указывающее, являются ли вершины, предоставляемые в порядке по часовой стрелке (с учетом растризатора) перед лицом. TRUE указывает, что они имеются; FALSE указывает, что вершины по часовой стрелке указывают на обратную сторону.
[in] DepthBias
Константой смещения глубины для использования в формулах смещения. Дополнительные сведения о DepthBiasсм. в следующем разделе "Примечания".
[in] DepthBiasClamp
Одноточный вектор с плавающей запятой, используемый в формулах предвзятости. Дополнительные сведения о DepthBiasClampсм. в следующем разделе "Примечания".
[in] SlopeScaledDepthBias
Одноточный вектор с плавающей запятой, используемый в формулах предвзятости. Дополнительные сведения о SlopeScaledDepthBiasсм. в следующем разделе "Примечания".
[in] DepthClipEnable
Логическое значение, указывающее, должен ли драйвер обрезать координаты вершин z в диапазоне глубины представления. TRUE указывает на клип; FALSE указывает, что не следует клипировать.
[in] ScissorEnable
Логическое значение, указывающее, должен ли драйвер удалять пиксели, которые выходят за пределы соответствующей прямоугольной области ножницы. TRUE указывает на удаление; FALSE указывает, что не следует удалять.
[in] MultisampleEnable
Логическое значение, указывающее, должен ли драйвер выполнять несколько примеров правил растеризации. TRUE указывает на выполнение правил; FALSE указывает, что в соответствии с правилами не требуется. Правила растеризации с несколькими образцами содержат значение true, даже если целевые объекты отрисовки содержат только один пример.
[in] AntialiasedLineEnable
Логическое значение, указывающее, должен ли драйвер отображать строки, которые соответствуют правилам растеризации с антиалиасной линией. TRUE указывает на выполнение правил; FALSE указывает, что в соответствии с правилами не требуется. Драйвер игнорирует значение в AntialiasedLineEnable, если используются правила растеризации с несколькими выборками.
Замечания
Одним из артефактов с теневыми тенями на основе буфера является "тень акне" (то есть поверхность, которая тень сама по себе в временный способ из-за неустанности в вычислении глубины поверхности от шейдера, который сравнивается с глубиной той же поверхности в теневой буфере). Одним из способов облегчения теневого акне является использование DepthBias и НаклонScaledDepthBias элементов при отрисовки теневого буфера. Цель состоит в том, чтобы отправить поверхности достаточно при отрисовке теневого буфера. Если эти поверхности сравниваются с самим собой с помощью шейдер-вычисляемого z во время теневого теста, результат сравнения согласован по всей поверхности, а локальное самотенение избегается.
Однако использование DepthBias и SlopeScaledDepthBias может привести к нескольким артефактам. Например, чрезвычайно крутой многоугольник приводит к взрыву уравнения смещения, которое толкает многоугольник крайне далеко от исходной поверхности в теневой карте. Рассмотрим крутое лицо, с учетом света, которое оттесняется крайне далеко в отношении измерений родительского объекта путем смещения глубины. Предположим, что это лицо окружено более мелкими лицами, что уравнение предвзятости вытолкнуло гораздо меньше. Результирующая теневая карта имеет огромную прерывность, которая может вызвать отверстия в тени, которая литая одной поверхностью на другую поверхность ближе, чем взрывные лица. Одним из способов облегчения этой конкретной проблемы является использование элемента DepthBiasClamp, который предоставляет верхнюю границу (положительную или отрицательную) по величине смещения z.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Доступно в Windows Vista и более поздних версиях операционных систем Windows. |
заголовка | d3d10umddi.h (include D3d10umddi.h) |