Fungsi D3DXFresnelTerm (D3DX10Math.h)
Catatan
Pustaka utilitas D3DX tidak digunakan lagi. Kami menyarankan agar Anda menggunakan DirectXMath sebagai gantinya.
Hitung istilah Fresnel.
Sintaks
FLOAT D3DXFresnelTerm(
_In_ FLOAT CosTheta,
_In_ FLOAT RefractionIndex
);
Parameter
-
CosTheta [in]
-
Jenis: FLOAT
Nilai harus antara 0 dan 1.
-
RefractionIndex [in]
-
Jenis: FLOAT
Indeks pembiasan bahan. Nilai harus lebih besar dari 1.
Mengembalikan nilai
Jenis: FLOAT
Fungsi ini mengembalikan istilah Fresnel untuk cahaya yang tidak dipolarisasi. CosTheta adalah kosinus sudut insiden.
Keterangan
Untuk menemukan istilah Fresnel (F):
Jika A adalah sudut kejadian dan B adalah sudut pembiasan, maka
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
Kemudian, memperluas menggunakan identitas trig dan menyederhanakan, Anda mendapatkan:
F = 0.5 * (g + c)2 / (g - c)2 * ([c(g + c) - 1]2 / [c(g - c) + 1]2 + 1)
Persyaratan
Persyaratan | Nilai |
---|---|
Header |
|
Pustaka |
|
Lihat juga