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)
規格需求
需求 | 值 |
---|---|
標頭 |
|
程式庫 |
|
另請參閱