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 refraksi bahan. Nilai harus lebih besar dari 1.

Nilai kembali

Jenis: FLOAT

Fungsi ini mengembalikan istilah Fresnel untuk cahaya yang tidak dipolarisasi. CosTheta adalah kosinus dari sudut insiden.

Keterangan

Untuk menemukan istilah Fresnel (F):

Jika A adalah sudut insiden dan B adalah sudut refraksi, 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
D3DX10Math.h
Pustaka
D3DX10.lib

Lihat juga

Fungsi matematika