структура 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 указывает, что количество выборок не является принудительным.
- Не привязывайте представления трафарета глубины.
- Отключите тестирование глубины.
- Убедитесь, что шейдер не выводит глубину.
- Если у вас есть какие-либо представления, связанные с целевыми объектами отрисовки (D3D11_BIND_RENDER_TARGET), а значение ForcedSampleCount больше 1, убедитесь, что каждый целевой объект отрисовки имеет только один образец.
- Не управляйте шейдером с частотой выборки. Поэтому ID3D11ShaderReflection::IsSampleFrequencyShader возвращает значение FALSE.
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 |
Алгоритм отрисовки линий | MultisampleEnable | AntialiasedLineEnable |
---|---|---|
Псевдоним | FALSE | FALSE |
Альфа-антиалиазированные | FALSE | TRUE |
Четырехугольник | TRUE | FALSE |
Четырехугольник | TRUE | TRUE |
Параметры элементов MultisampleEnable и AntialiasedLineEnable применяются только к целевым объектам отрисовки с несколькими выборками (MSAA) (то есть целевым объектам отрисовки с количеством выборок больше 1). Из-за различий в поведении на уровне признаков и до тех пор, пока вы не выполняете рисование линий или не возражаете против того, чтобы линии отрисовывались как четырехугольные, рекомендуется всегда устанавливать для MultisampleEnable значение TRUE при отрисовке в целевых объектах отрисовки MSAA.
Требования
Верхняя часть | d3d11_3.h |