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


Функция D3DXSHEvalConeLight (D3DX10.h)

Примечание

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

Примечание

Вместо этой функции рекомендуется использовать функцию библиотеки Spherical Harmonics MathXMSHEvalConeLight.

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

Синтаксис

HRESULT D3DXSHEvalConeLight(
  _In_       UINT        Order,
  _In_ const D3DXVECTOR3 *pDir,
  _In_       FLOAT       Radius,
  _In_       FLOAT       RIntensity,
  _In_       FLOAT       GIntensity,
  _In_       FLOAT       BIntensity,
  _In_       FLOAT       *pROut,
  _In_       FLOAT       *pGOut,
  _In_       FLOAT       *pBOut
);

Параметры

Order [in]

Тип: UINT

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

pDir [in]

Тип: const D3DXVECTOR3*

Указатель на вектор направления оси полушария (x, y, z), в котором вычисляются базовые функции SH. См. заметки.

Радиус [in]

Тип: FLOAT

Радиус конуса в радианах.

RIntensity [in]

Тип: FLOAT

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

GIntensity [in]

Тип: FLOAT

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

BIntensity [in]

Тип: FLOAT

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

pROut [in]

Тип: FLOAT*

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

pGOut [in]

Тип: FLOAT*

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

pBOut [in]

Тип: FLOAT*

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

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

Тип: HRESULT

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

Комментарии

Оценивает свет, который является конусом постоянной интенсивности и возвращает спектральные данные SH. Выходной вектор вычисляется таким образом, что если коэффициент интенсивности R/G/B равен 1, выходное сияние точки непосредственно под светом (ориентированное в направлении конуса на диффузный объект с альбедо 1) будет равно 1,0. Будет вычислено три спектральных выборки; Возвращается pROut, в то время как pGOut и pBOut могут быть возвращены.

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

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

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

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

Требования

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

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

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