структура D3D12_RASTERIZER_DESC (d3d12.h)
Описывает состояние растеризатора.
Синтаксис
typedef struct D3D12_RASTERIZER_DESC {
D3D12_FILL_MODE FillMode;
D3D12_CULL_MODE CullMode;
BOOL FrontCounterClockwise;
INT DepthBias;
FLOAT DepthBiasClamp;
FLOAT SlopeScaledDepthBias;
BOOL DepthClipEnable;
BOOL MultisampleEnable;
BOOL AntialiasedLineEnable;
UINT ForcedSampleCount;
D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster;
} D3D12_RASTERIZER_DESC;
Члены
FillMode
D3D12_FILL_MODE типизированное значение, указывающее режим заполнения, используемый при отрисовке.
CullMode
D3D12_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-отсечения реализации теневых элементов упрощаются. Другими словами, можно избежать сложной обработки специальных регистров для геометрии, которая выходит за рамки обратной плоскости отсечения.
MultisampleEnable
Указывает, следует ли использовать алгоритм сглаживания четырехугольной или альфа-линии на целевых объектах отрисовки с многопримерной отрисовки (MSAA). Задайте значение TRUE , чтобы использовать алгоритм сглаживания четырехугольной линии, и значение FALSE , чтобы использовать алгоритм сглаживания альфа-линии. Дополнительные сведения об этом участнике см. в разделе Примечания.
AntialiasedLineEnable
Указывает, следует ли включать сглаживание строк; Применяется, только если выполняется рисование линий, а multisampleEnable имеет значение FALSE. Дополнительные сведения об этом участнике см. в разделе Примечания.
ForcedSampleCount
Тип: UINT
Число выборок, которое принудительно выполняется во время отрисовки или растеризации БПЛА. Допустимые значения: 0, 1, 4, 8 и при необходимости 16. 0 указывает, что количество выборок не является принудительным.
- Не привязывайте представления трафарета глубины.
- Отключите тестирование глубины.
- Убедитесь, что шейдер не выводит глубину.
- Если у вас есть представления, связанные с целевыми объектами отрисовки (D3D12_DESCRIPTOR_HEAP_TYPE_RTV), а значение ForcedSampleCount больше 1, убедитесь, что каждый целевой объект отрисовки содержит только один образец.
- Не управляйте шейдером с частотой выборки. Таким образом, ID3D12ShaderReflection::IsSampleFrequencyShader возвращает значение FALSE.
ConservativeRaster
Значение типа D3D12_CONSERVATIVE_RASTERIZATION_MODE, определяющее, включена ли консервативная растеризация.
Комментарии
D3D12_GRAPHICS_PIPELINE_STATE_DESC содержит структуру состояния растеризатора.
Состояние растеризатора определяет поведение этапа растеризатора.
Если не указать состояние растеризатора, среда выполнения Direct3D использует следующие значения по умолчанию для состояния растеризатора.
Состояние | Значение по умолчанию |
---|---|
FillMode | D3D12_FILL_MODE_SOLID |
CullMode | D3D12_CULL_MODE_BACK |
FrontCounterClockwise | FALSE |
DepthBias | 0 |
DepthBiasClamp | 0,0f |
SlopeScaledDepthBias | 0,0f |
DepthClipEnable | TRUE |
MultisampleEnable | FALSE |
AntialiasedLineEnable | FALSE |
ForcedSampleCount | 0 |
ConservativeRaster | D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF |
Алгоритм отрисовки линий | MultisampleEnable | AntialiasedLineEnable |
---|---|---|
Псевдоним | FALSE | FALSE |
Альфа-антиалиазированные | FALSE | TRUE |
Четырехугольник | TRUE | FALSE |
Четырехугольник | TRUE | TRUE |
Параметры элементов MultisampleEnable и AntialiasedLineEnable применяются только к целевым объектам отрисовки с несколькими выборками (MSAA) (то есть целевым объектам отрисовки с количеством выборок больше 1). Из-за различий в поведении на уровне признаков и до тех пор, пока вы не выполняете рисование линий или не возражаете против того, чтобы линии отрисовывались как четырехугольные, рекомендуется всегда устанавливать для MultisampleEnable значение TRUE при отрисовке в целевых объектах отрисовки MSAA.
Требования
Требование | Значение |
---|---|
Заголовок | d3d12.h |