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


Метод IDirect3DDevice9::SetClipPlane (d3d9.h)

Задает коэффициенты определяемой пользователем плоскости обрезки для устройства.

Синтаксис

HRESULT SetClipPlane(
  [in] DWORD       Index,
  [in] const float *pPlane
);

Параметры

[in] Index

Тип: DWORD

Индекс обрезной плоскости, для которой должны быть заданы коэффициенты уравнений плоскости.

[in] pPlane

Тип: const float*

Указатель на адрес массива значений из четырех элементов, который представляет устанавливаемые коэффициенты плоскости обрезки в виде уравнения общей плоскости. См. заметки.

Возвращаемое значение

Тип: HRESULT

Если метод выполнен успешно, возвращаемое значение будет D3D_OK. Если метод завершается сбоем, возвращаемое значение будет D3DERR_INVALIDCALL. Эта ошибка указывает, что значение в index превышает максимальный индекс плоскости обрезки, поддерживаемый устройством, или что массив в pPlane недостаточно велик, чтобы содержать четыре значения с плавающей запятой.

Комментарии

Коэффициенты, устанавливаемые этим методом, принимают форму уравнения общей плоскости. Если значения в массиве в pPlane были помечены как A, B, C и D в том порядке, в который они отображаются в массиве, они будут помещаться в уравнение общей плоскости, чтобы Ax + By + Cz + Dw = 0. Точка с однородными координатами (x, y, z, w) видна в полупространстве плоскости, если Ax + By + Cz + Dw >= 0. Точки, существующие за плоскостью обрезки, обрезаются из сцены.

При использовании конвейера фиксированной функции предполагается, что уравнения плоскости находятся в мировом пространстве. При использовании программируемого конвейера предполагается, что уравнения плоскости находятся в отсеченном пространстве (в том же пространстве, что и в выходных вершинах).

Этот метод не позволяет задать уравнение плоскости обрезки. Чтобы включить плоскость обрезки, задайте соответствующий бит в значении DWORD, применяемом к D3DRS_CLIPPLANEENABLE состоянии отрисовки.

Требования

Требование Значение
Целевая платформа Windows
Header d3d9.h (включая D3D9.h)
Библиотека D3D9.lib

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

IDirect3DDevice9

IDirect3DDevice9::GetClipPlane