Метод 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 |