Bagikan melalui


Fungsi D3DXSHEvalHemisphereLight (D3dx9math.h)

Catatan

Pustaka utilitas D3DX (D3DX 9, D3DX 10, dan D3DX 11) tidak digunakan lagi dan tidak didukung untuk aplikasi Windows Store.

Catatan

Alih-alih menggunakan fungsi ini, kami sarankan Anda menggunakan fungsi pustaka Matematika Spherical HarmonicsXMSHEvalHemisphereLight.

Mengevaluasi cahaya yang merupakan interpolasi linier antara dua warna di atas bola.

Sintaks

HRESULT D3DXSHEvalHemisphereLight(
  _In_       UINT        Order,
  _In_ const D3DXVECTOR3 *pDir,
  _In_       D3DXCOLOR   Top,
  _In_       D3DXCOLOR   Bottom,
  _In_       FLOAT       *pROut,
  _In_       FLOAT       *pGOut,
  _In_       FLOAT       *pBOut
);

Parameter

Urutan [in]

Jenis: UINT

Urutan evaluasi spherical harmonic (SH). Harus dalam rentang D3DXSH_MINORDER hingga D3DXSH_MAXORDER, inklusif. Evaluasi menghasilkan koefisien OrderĀ². Tingkat evaluasi adalah Urutan - 1.

pDir [in]

Jenis: const D3DXVECTOR3*

Arahkan ke vektor arah sumbu belahan (x, y, z) untuk mengevaluasi fungsi dasar SH. Lihat Keterangan.

Atas [in]

Jenis: D3DXCOLOR

Warna langit.

Bawah [in]

Jenis: D3DXCOLOR

Warna tanah.

pROut [in]

Jenis: FLOAT*

Arahkan ke vektor SH output untuk komponen merah.

pGOut [in]

Jenis: FLOAT*

Arahkan ke vektor SH output untuk komponen hijau.

pBOut [in]

Jenis: FLOAT*

Arahkan ke vektor SH output untuk komponen biru.

Menampilkan nilai

Jenis: HRESULT

Jika fungsi berhasil, nilai yang dikembalikan adalah D3D_OK. Jika fungsi gagal, nilai yang dikembalikan dapat berupa: D3DERR_INVALIDCALL.

Keterangan

Interpolasi dilakukan secara linier di antara dua titik, bukan di atas permukaan bola (yaitu, jika sumbu itu (0,0,1) itu linier di Z, bukan dalam sudut azimuthal). Fungsi pencahayaan bulat yang dihasilkan dinormalisasi sehingga titik pada permukaan yang difus sempurna tanpa bayangan dan normal menunjuk ke arah pDir akan menghasilkan pancaran keluar dengan nilai 1 (jika warna atas putih dan warna bawah berwarna hitam). Ini adalah model yang sangat sederhana di mana Top mewakili intensitas "langit" dan Bawah mewakili intensitas "tanah."

Pada bola dengan radius unit, seperti yang ditunjukkan dalam ilustrasi berikut, arah dapat ditentukan hanya dengan theta, sudut tentang sumbu z ke arah tangan kanan, dan phi, sudut dari z.

ilustrasi bola dengan radius unit

Persamaan berikut menunjukkan hubungan antara koordinat Kartesius (x, y, z) dan bola (theta, phi) pada bola unit. Theta sudut bervariasi di atas kisaran 0 hingga 2 pi, sementara phi bervariasi dari 0 hingga pi.

persamaan hubungan antara koordinat kartesius dan buncis

Persyaratan

Persyaratan Nilai
Header
D3dx9math.h
Pustaka
D3dx9.lib

Lihat juga

Fungsi matematika

Transfer Radiance Prakomputasi (Direct3D 9)