структура 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) |