Bagikan melalui


Faktor Redaman dan Sorotan (Direct3D 9)

Komponen pencahayaan difus dan spekular dari persamaan iluminasi global berisi istilah yang menggambarkan redaman cahaya dan kerucut sorotan. Istilah-istilah ini dijelaskan di bawah ini.

Redaman

Redaman cahaya tergantung pada jenis cahaya dan jarak antara cahaya dan posisi puncak. Untuk menghitung redaman, gunakan salah satu persamaan berikut.

Atten = 1/( att0i + att1i * d + att2i * d²)

Di mana:

Parameter Nilai default Jenis Deskripsi Rentang
att0i 0.0 FLOAT Faktor redaman konstan 0 hingga +tak terbatas
att1i 0.0 FLOAT Faktor redaman linier 0 hingga +tak terbatas
att2i 0.0 FLOAT Faktor redaman kuadrat 0 hingga +tak terbatas
d T/A FLOAT Jarak dari posisi puncak ke posisi cahaya T/A

 

  • Atten = 1, jika lampu adalah cahaya arah.
  • Atten = 0, jika jarak antara cahaya dan puncak melebihi rentang cahaya.

Nilai att0, att1, att2 ditentukan oleh anggota Attenuation0, Attenuation1, dan Attenuation2 D3DLIGHT9.

Jarak antara cahaya dan posisi puncak selalu positif.

d = | L dir |

Di mana:

Parameter Nilai default Jenis Deskripsi
L dir T/A D3DVECTOR Vektor arah dari posisi puncak ke posisi cahaya

 

Jika d lebih besar dari rentang cahaya, yaitu, anggota Rentang struktur D3DLIGHT9 , Direct3D tidak membuat perhitungan redaman lebih lanjut dan tidak menerapkan efek dari cahaya ke puncak.

Konstanta redaman bertindak sebagai koefisien dalam rumus - Anda dapat menghasilkan berbagai kurva redaman dengan membuat penyesuaian sederhana pada mereka. Anda dapat mengatur Attenuation1 ke 1.0 untuk membuat cahaya yang tidak mereda tetapi masih dibatasi oleh rentang, atau Anda dapat bereksperimen dengan nilai yang berbeda untuk mencapai berbagai efek redaman.

Redaman pada rentang maksimum cahaya bukan 0,0. Untuk mencegah lampu tiba-tiba muncul ketika berada di rentang cahaya, aplikasi dapat meningkatkan rentang cahaya. Atau, aplikasi dapat mengatur konstanta redaman sehingga faktor redaman mendekati 0,0 pada rentang cahaya. Nilai redaman dikalikan dengan komponen merah, hijau, dan biru dari warna cahaya untuk menskalakan intensitas cahaya sebagai faktor jarak cahaya bergerak ke puncak.

Faktor Sorotan

Persamaan berikut menentukan faktor sorotan.

persamaan faktor sorotan

Parameter Nilai default Jenis Deskripsi Rentang
rhoi T/A FLOAT cosine(angle) untuk sorotan i T/A
phii 0.0 FLOAT Sudut sorotan Penumbra i dalam radian [thetai, pi)
thetai 0.0 FLOAT Sudut umbra sorotan i dalam radian [0, pi)
falloff 0.0 FLOAT Faktor falloff (-tak terbatas, +tak terbatas)

 

Di mana:

rho = norm(Ldcs). norma(L dir)

Dan:

Parameter Nilai default Jenis Deskripsi
Ldcs T/A D3DVECTOR Negatif dari arah cahaya di ruang kamera
L dir T/A D3DVECTOR Vektor arah dari posisi puncak ke posisi cahaya

 

Setelah menghitung redaman cahaya, Direct3D juga mempertimbangkan efek sorotan jika berlaku, sudut yang dipantulkan cahaya dari permukaan, dan pantulan bahan saat ini untuk menghitung komponen difus dan spekular untuk vertex tersebut. Untuk informasi selengkapnya, lihat SpotLight.

Matematika Pencahayaan