D3DXFresnelTerm 函式 (D3DX10Math.h)

注意

D3DX 公用程式程式庫已被取代。 建議您改用 DirectXMath

計算 Fresnel 字詞。

語法

FLOAT D3DXFresnelTerm(
  _In_ FLOAT CosTheta,
  _In_ FLOAT RefractionIndex
);

參數

CosTheta [in]

類型: FLOAT

值長度必須介於 0 到 1 之間。

RefractionIndex [in]

類型: FLOAT

材質的 refraction 索引。 值必須大於 1。

傳回值

類型: FLOAT

此函式會傳回未分析光線的 Fresnel 字詞。 CosTheta 是事件角度的余弦值。

備註

若要尋找 Fresnel 字詞 (F) :

如果 A 是事件的角度,而 B 是 refraction 的角度,則

F = 0.5 * [tan2(A - B) / tan2(A + B) + sin2(A - B) / sin2(A + B)]
  = 0.5 * sin2(A - B) / sin2(A + B) * [cos2(A + B) / cos2(A - B) + 1]

Let r   = sina(A) / sin(B)      (the relative refractive index)
Let c   = cos(A)
Let g   = (r2 + c2 - 1)1/2

然後,使用 Trig 身分識別展開並簡化,您可以取得:

F = 0.5 * (g + c)2 / (g - c)2 * ([c(g + c) - 1]2 / [c(g - c) + 1]2 + 1)

規格需求

需求
標頭
D3DX10Math.h
程式庫
D3DX10.lib

另請參閱

數學函式