共用方式為


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
);

參數

順序 [in]

類型: UINT

SH 評估的順序。 必須位於 D3DXSH_MINORDER 範圍中,才能包含D3DXSH_MAXORDER。 評估會產生 Order¹ 係數。 評估的程度為 Order - 1。

pPos [in]

類型:const D3DXVECTOR3*

光線位置的指標。

半徑 [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 將會傳回,而 pGOutpBOut 可能會傳回。

在具有單位半徑的球體上,如下圖所示,只要使用 theta 指定方向、右手方向的 Z 軸角度,以及從 z 的角度來指定

具有單位半徑的球體圖例

下列方程式顯示笛卡兒 (x、y、z) 和球面 (ta、phi) 座標在單位球體上的關聯性。 the angle theta 會隨著 0 到 2 pi 的範圍而有所不同,而 phi 則從 0 到 pi。

笛卡兒與球面座標之間關聯性的方程式

規格需求

需求
標頭
D3dx9math.h
程式庫
D3dx9.lib

另請參閱

數學函式

Direct3D 9 (預先計算的弧度傳輸)