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


структура 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 и SlopeScaledDepthBias при отображении буфера тени. Целью является достаточное количество поверхностей при отрисовке буфера тени. Когда эти поверхности сравниваются с самими собой с помощью вычисленного шейдером z во время теста тени, результат сравнения является согласованным по всей поверхности, и локальное самотенение избегается.

Однако использование DepthBias и SlopeScaledDepthBias может привести к порождению нескольких артефактов. Например, чрезвычайно крутой многоугольник приводит к разрыву уравнения смещения, что приводит к тому, что многоугольник очень далеко от исходной поверхности на карте теней. Рассмотрим крутую грань по отношению к свету, которая отодвинута очень далеко по отношению к размерам родительского объекта путем смещения глубины. Предположим, что это лицо окружено более мелкими гранями, которые уравнение смещения вытеснило гораздо меньше. Полученная теневая карта имеет огромный разрыв, который может привести к отверстиям в тени, которая отбрасывается одной поверхностью на другую поверхность ближе, чем разорванные лица. Одним из способов устранения этой проблемы является использование элемента DepthBiasClamp , который предоставляет устанавливаемую приложением верхнюю границу (положительную или отрицательную) величину смещения z.

Требования

Требование Значение
Минимальная версия клиента Доступно в Windows Vista и более поздних версиях операционных систем Windows.
Верхняя часть d3d10umddi.h (включая D3d10umddi.h)

См. также раздел

CalcPrivateRasterizerStateSize

CreateRasterizerState