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


Функция D3DXSHEvalSphericalLight (D3dx9math.h)

Оценивает сферический свет и возвращает спектральные данные сферической гармонии (SH).

Примечание

Библиотека служебных программ D3DX (D3DX 9, D3DX 10 и D3DX 11) устарела и не поддерживается для приложений Магазина Windows.

Примечание

Вместо этой функции рекомендуется использовать функцию библиотеки "Математика сферических гармоник " XMSHEvalSphericalLight.

Синтаксис

HRESULT D3DXSHEvalSphericalLight(
  _In_        UINT        Order,
  _In_  const D3DXVECTOR3 *pPos,
  _In_        FLOAT       Radius,
  _In_        FLOAT       RIntensity,
  _In_        FLOAT       GIntensity,
  _In_        FLOAT       BIntensity,
  _Out_       FLOAT       *pROut,
  _Out_       FLOAT       *pGOut,
  _Out_       FLOAT       *pBOut
);

Параметры

Порядок [в]

Тип: UINT

Порядок оценки SH. Должен находиться в диапазоне D3DXSH_MINORDER для D3DXSH_MAXORDER включительно. При вычислении создаются коэффициенты Order². Степень оценки — Order - 1.

pPos [in]

Тип: const D3DXVECTOR3*

Указатель на положение света.

Radius [in]

Тип: FLOAT

Радиус сферического источника света.

RIntensity [in]

Тип: FLOAT

Красная интенсивность света.

GIntensity [in]

Тип: FLOAT

Зеленая интенсивность света.

BIntensity [in]

Тип: FLOAT

Синяя интенсивность света.

pROut [out]

Тип: FLOAT*

Указатель на выходной вектор SH для красного компонента.

pGOut [out]

Тип: FLOAT*

Указатель на выходной вектор SH для зеленого компонента.

pBOut [out]

Тип: FLOAT*

Указатель на выходной вектор SH для синего компонента.

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

Тип: HRESULT

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

Комментарии

Оценивает сферический свет и возвращает спектральные данные SH. Нет нормализации интенсивности света, как для направленного света, поэтому следует проявлять осторожность при указании интенсивности. Будет вычислено три спектральные выборки; PROut будет возвращен, в то время как pGOut и pBOut могут быть возвращены.

На шаре с радиусом единицы измерения, как показано на следующем рисунке, направление можно указать просто с помощью теты, угла относительно оси Z в правом направлении и phi, угла от z.

иллюстрация сферы с радиусом единицы измерения

В следующих уравнениях показана связь между декартовыми (x, y, z) и сферическими координатами (theta, phi) на сфере единиц измерения. Угол тета меняется в диапазоне от 0 до 2 пи, а phi — от 0 до пи.

уравнения связи между декартовой и сферической координатами

Требования

Требование Значение
Заголовок
D3dx9math.h
Библиотека
D3dx9.lib

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

Математические функции

Предварительно вычисляемая передача radiance (Direct3D 9)