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


структура D3D11_RASTERIZER_DESC (d3d11.h)

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

Синтаксис

typedef struct D3D11_RASTERIZER_DESC {
  D3D11_FILL_MODE FillMode;
  D3D11_CULL_MODE CullMode;
  BOOL            FrontCounterClockwise;
  INT             DepthBias;
  FLOAT           DepthBiasClamp;
  FLOAT           SlopeScaledDepthBias;
  BOOL            DepthClipEnable;
  BOOL            ScissorEnable;
  BOOL            MultisampleEnable;
  BOOL            AntialiasedLineEnable;
} D3D11_RASTERIZER_DESC;

Члены

FillMode

Тип: D3D11_FILL_MODE

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

CullMode

Тип: D3D11_CULL_MODE

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

FrontCounterClockwise

Тип: BOOL

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

DepthBias

Тип: INT

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

DepthBiasClamp

Тип: FLOAT

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

SlopeScaledDepthBias

Тип: FLOAT

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

DepthClipEnable

Тип: BOOL

Включите вырезку на основе расстояния.

Оборудование всегда выполняет обрезку растровых координат по оси 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

Тип: BOOL

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

MultisampleEnable

Тип: BOOL

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

AntialiasedLineEnable

Тип: BOOL

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

Комментарии

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

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

Состояние Значение по умолчанию
FillMode Сплошная
CullMode Назад
FrontCounterClockwise FALSE
DepthBias 0
SlopeScaledDepthBias 0,0f
DepthBiasClamp 0,0f
DepthClipEnable TRUE
ScissorEnable FALSE
MultisampleEnable FALSE
AntialiasedLineEnable FALSE
 
Примечание Для уровней компонентов 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.h

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

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