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


структура D3D11_1_DDI_RASTERIZER_DESC (d3d10umddi.h)

Описывает состояние растрового анализатора. Используется драйверами windows Display Driver Model (WDDM) 1.2 и более поздних версий пользовательского режима.

Синтаксис

typedef struct D3D11_1_DDI_RASTERIZER_DESC {
  [in] D3D10_DDI_FILL_MODE FillMode;
  [in] D3D10_DDI_CULL_MODE CullMode;
  [in] BOOL                FrontCounterClockwise;
  [in] INT                 DepthBias;
  [in] FLOAT               DepthBiasClamp;
  [in] FLOAT               SlopeScaledDepthBias;
  [in] BOOL                DepthClipEnable;
  [in] BOOL                ScissorEnable;
  [in] BOOL                MultisampleEnable;
  [in] BOOL                AntialiasedLineEnable;
  [in] UINT                ForcedSampleCount;
} D3D11_1_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, если используются правила растеризации с несколькими выборками.

[in] ForcedSampleCount

Во время отрисовки неупорядоченных представлений доступа (UAV) или представлений целевых представлений отрисовки (RTV) указывает, следует ли принудительно использовать число выборок и, если да, максимальное число выборок. Допустимые значения: 0, 1, 4, 8 и 16.

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

Замечания

Одним из артефактов с теневыми тенями на основе буфера является "тень акне" (то есть поверхность, которая тень сама по себе в временный способ из-за неустанности в вычислении глубины поверхности от шейдера, который сравнивается с глубиной той же поверхности в теневой буфере). Одним из способов облегчения теневого акне является использование DepthBias и НаклонScaledDepthBias элементов при отрисовки теневого буфера. Цель состоит в том, чтобы отправить поверхности достаточно при отрисовке теневого буфера. Если эти поверхности сравниваются с самим собой с помощью шейдер-вычисляемого z во время теневого теста, результат сравнения согласован по всей поверхности, а локальное самотенение избегается.

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 8
минимальный поддерживаемый сервер Windows Server 2012
заголовка d3d10umddi.h (include D3d10umddi.h)