Matematika Pencahayaan (Direct3D 9)

Model Cahaya Direct3D mencakup pencahayaan sekitar, difus, spekular, dan emissif. Ini cukup fleksibilitas untuk memecahkan berbagai situasi pencahayaan. Anda menyebut jumlah total cahaya dalam adegan sebagai iluminasi global dan menghitungnya menggunakan persamaan berikut.

Global Illumination = Ambient Light + Diffuse Light + Specular Light + Emissive Light 

Pencahayaan Sekitar (Direct3D 9) adalah pencahayaan konstan. Konstan di semua arah dan mewarnai semua piksel objek yang sama. Sangat cepat untuk menghitung tetapi meninggalkan objek terlihat datar dan tidak realistis. Untuk melihat bagaimana pencahayaan sekitar dihitung oleh Direct3D, lihat Pencahayaan Sekitar (Direct3D 9).

Diffuse Lighting (Direct3D 9) tergantung pada arah cahaya dan permukaan objek normal. Ini bervariasi di seluruh permukaan objek sebagai akibat dari perubahan arah cahaya dan vektor angka permukaan yang berubah. Dibutuhkan waktu lebih lama untuk menghitung pencahayaan difus karena berubah untuk setiap puncak objek, namun manfaat menggunakannya adalah itu menaungi objek dan memberi mereka kedalaman tiga dimensi (3D). Untuk melihat bagaimana pencahayaan difus dihitung dalam Direct3D, lihat Pencahayaan Difus (Direct3D 9).

Specular Lighting (Direct3D 9) mengidentifikasi sorotan spekular cerah yang terjadi ketika cahaya mengenai permukaan objek dan memantulkan kembali ke arah kamera. Ini lebih intens daripada cahaya difus dan jatuh lebih cepat di seluruh permukaan objek. Dibutuhkan waktu lebih lama untuk menghitung pencahayaan spekular daripada pencahayaan difus, namun manfaat menggunakannya adalah menambahkan detail yang signifikan ke permukaan. Untuk melihat bagaimana pencahayaan spekular dihitung dalam Direct3D, lihat Pencahayaan Spekular (Direct3D 9).

Pencahayaan Emissif (Direct3D 9) adalah cahaya yang dipancarkan oleh objek; misalnya, cahaya. Untuk melihat bagaimana pencahayaan emissif dihitung dalam Direct3D, lihat Pencahayaan Emissif (Direct3D 9).

Pencahayaan realistis dapat dicapai dengan menerapkan masing-masing jenis pencahayaan ini ke adegan 3D. Nilai yang dihitung untuk komponen sekitar, emisi, dan difus adalah output sebagai warna verteks difus; nilai untuk komponen pencahayaan spekular adalah output sebagai warna puncak spekular. Nilai cahaya sekitar, difus, dan spekular dapat dipengaruhi oleh faktor pelambatan dan sorotan cahaya tertentu. Untuk informasi selengkapnya tentang cara kerja redaman, lihat Faktor Redaman dan Sorotan (Direct3D 9).

Untuk mencapai efek pencahayaan yang lebih realistis, Anda menambahkan lebih banyak lampu; namun, adegan membutuhkan waktu lebih lama untuk dirender. Untuk mencapai semua efek yang diinginkan desainer, beberapa game menggunakan lebih banyak daya CPU daripada yang umumnya tersedia. Dalam hal ini, biasanya mengurangi jumlah perhitungan pencahayaan minimal dengan menggunakan peta pencahayaan dan peta lingkungan untuk menambahkan pencahayaan ke adegan saat menggunakan peta tekstur.

Pencahayaan dihitung di ruang kamera. Untuk melihat bagaimana transformasi pencahayaan dihitung, lihat Transformasi Ruang Kamera (Direct3D 9). Pencahayaan yang dioptimalkan dapat dihitung dalam ruang model, ketika kondisi khusus ada: vektor normal sudah dinormalisasi (D3DRS_NORMALIZENORMALS adalah True), pencambahan verteks tidak diperlukan, matriks transformasi bersifat ortogonal, dan sebagainya.

Lampu dan Bahan