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


структура D3D11_RASTERIZER_DESC2 (d3d11_3.h)

Описывает состояние растеризатора.

Синтаксис

typedef struct D3D11_RASTERIZER_DESC2 {
  D3D11_FILL_MODE                       FillMode;
  D3D11_CULL_MODE                       CullMode;
  BOOL                                  FrontCounterClockwise;
  INT                                   DepthBias;
  FLOAT                                 DepthBiasClamp;
  FLOAT                                 SlopeScaledDepthBias;
  BOOL                                  DepthClipEnable;
  BOOL                                  ScissorEnable;
  BOOL                                  MultisampleEnable;
  BOOL                                  AntialiasedLineEnable;
  UINT                                  ForcedSampleCount;
  D3D11_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster;
} D3D11_RASTERIZER_DESC2;

Члены

FillMode

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

CullMode

D3D11_CULL_MODE типизированное значение, указывающее, что треугольники, обращенные к указанному направлению, не рисуются.

FrontCounterClockwise

Указывает, является ли треугольник передним или задним. Если задано значение TRUE, треугольник будет считаться обращенным спереди, если его вершины находятся против часовой стрелки на целевом объекте отрисовки, и считается обращенным назад, если они находятся по часовой стрелке. Если значение FALSE, обратное имеет значение true.

DepthBias

Значение глубины, добавленное к заданному пикселю. Сведения о см. в разделе См. см. в разделе См. см. раздел См. см. раздел

DepthBiasClamp

Максимальное смещение глубины пикселя. Сведения о см. в разделе См. см. в разделе См. см. раздел См. см. раздел

SlopeScaledDepthBias

Скалярный наклон заданного пикселя. Сведения о см. в разделе См. см. в разделе См. см. раздел См. см. раздел

DepthClipEnable

Указывает, следует ли включать вырезку на основе расстояния.

Оборудование всегда выполняет обрезку растровых координат по оси x и y. Если параметр DepthClipEnable имеет значение по умолчанию —TRUE, оборудование также обрезает значение z (то есть оборудование выполняет последний шаг следующего алгоритма).


0 < w
-w <= x <= w (or arbitrarily wider range if implementation uses a guard band to reduce clipping burden)
-w <= y <= w (or arbitrarily wider range if implementation uses a guard band to reduce clipping burden)
0 <= z <= w

Если для depthClipEnable заданозначение FALSE, оборудование пропускает обрезку z (т. е. последний шаг в предыдущем алгоритме). Однако оборудование по-прежнему выполняет обрезку "0 < w". При отключении z-отсечения может привести к неправильному упорядочению глубины на уровне пикселей. Однако при отключении z-отсечения реализации теневых элементов упрощаются. Другими словами, можно избежать сложной обработки специальных регистров для геометрии, которая выходит за рамки обратной плоскости отсечения.

ScissorEnable

Указывает, следует ли включать выбраковку ножниц и прямоугольников. Все пиксели за пределами активного прямоугольника ножницы отбираются.

MultisampleEnable

Указывает, следует ли использовать алгоритм сглаживания четырехугольной или альфа-линии на целевых объектах отрисовки с многопримерной отрисовки (MSAA). Задайте значение TRUE , чтобы использовать алгоритм сглаживания четырехугольной линии, и значение FALSE , чтобы использовать алгоритм сглаживания альфа-линии. Дополнительные сведения об этом участнике см. в разделе Примечания.

AntialiasedLineEnable

Указывает, следует ли включать сглаживание строк; Применяется, только если выполняется рисование линий, а multisampleEnable имеет значение FALSE. Дополнительные сведения об этом участнике см. в разделе Примечания.

ForcedSampleCount

Число выборок, которое принудительно выполняется во время отрисовки или растеризации БПЛА. Допустимые значения: 0, 1, 2, 4, 8 и при необходимости 16. 0 указывает, что количество выборок не является принудительным.

Примечание Если требуется выполнить отрисовку с параметром ForcedSampleCount , равным 1 или больше, необходимо следовать следующим рекомендациям:
  • Не привязывайте представления трафарета глубины.
  • Отключите тестирование глубины.
  • Убедитесь, что шейдер не выводит глубину.
  • Если у вас есть какие-либо представления, связанные с целевыми объектами отрисовки (D3D11_BIND_RENDER_TARGET), а значение ForcedSampleCount больше 1, убедитесь, что каждый целевой объект отрисовки имеет только один образец.
  • Не управляйте шейдером с частотой выборки. Поэтому ID3D11ShaderReflection::IsSampleFrequencyShader возвращает значение FALSE.
В противном случае поведение отрисовки не определено. Сведения о настройке трафарета глубины см. в разделе Настройка функций Depth-Stencil.
 

ConservativeRaster

Значение типа D3D11_CONSERVATIVE_RASTERIZATION_MODE, определяющее, включена ли консервативная растеризация.

Комментарии

Состояние растеризатора определяет поведение этапа растеризатора. Чтобы создать объект состояния растеризатора, вызовите ID3D11Device3::CreateRasterizerState2. Чтобы задать состояние растеризатора, вызовите ID3D11DeviceContext::RSSetState.

Если не указать состояние растеризатора, среда выполнения Direct3D использует следующие значения по умолчанию для состояния растеризатора.

Состояние Значение по умолчанию
FillMode Сплошная
CullMode Назад
FrontCounterClockwise FALSE
DepthBias 0
SlopeScaledDepthBias 0,0f
DepthBiasClamp 0,0f
DepthClipEnable TRUE
ScissorEnable FALSE
MultisampleEnable FALSE
AntialiasedLineEnable FALSE
ForcedSampleCount 0
ConservativeRaster D3D11_CONSERVATIVE_RASTERIZATION_MODE_OFF
Примечание Для уровней компонентов 9.1, 9.2, 9.3 и 10.0, если для параметра MultisampleEnableзадано значение FALSE, среда выполнения отрисовывает все точки, линии и треугольники без сглаживания даже для целевых объектов отрисовки с числом выборок больше 1. Для уровней компонентов 10.1 и выше параметр MultisampleEnable не влияет на точки и треугольники в отношении MSAA и влияет только на выбор алгоритма отрисовки линий, как показано в следующей таблице:
 
Алгоритм отрисовки линий MultisampleEnable AntialiasedLineEnable
Псевдоним FALSE FALSE
Альфа-антиалиазированные FALSE TRUE
Четырехугольник TRUE FALSE
Четырехугольник TRUE TRUE

Параметры элементов MultisampleEnable и AntialiasedLineEnable применяются только к целевым объектам отрисовки с несколькими выборками (MSAA) (то есть целевым объектам отрисовки с количеством выборок больше 1). Из-за различий в поведении на уровне признаков и до тех пор, пока вы не выполняете рисование линий или не возражаете против того, чтобы линии отрисовывались как четырехугольные, рекомендуется всегда устанавливать для MultisampleEnable значение TRUE при отрисовке в целевых объектах отрисовки MSAA.

Требования

   
Верхняя часть d3d11_3.h

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

Основные структуры