Bagikan melalui


Pencahayaan spekular

Pencahayaan spekular mengidentifikasi sorotan spekular cerah yang terjadi ketika cahaya mengenai permukaan objek dan memantulkan kembali ke arah kamera. Pencahayaan spekular 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.

Pemodelan pantulan spekular mengharuskan sistem tahu di arah apa cahaya berjalan dan arah ke mata pemirsa. Sistem ini menggunakan versi yang disederhanakan dari model pantulan spekular Phong, yang menggunakan vektor setengah jalan untuk mempertanyakan intensitas refleksi spekular.

Status pencahayaan default tidak menghitung sorotan spekular.

Persamaan Pencahayaan Spekular

Pencahayaan Spekular dijelaskan oleh persamaan berikut.

Pencahayaan Spekular = Cs * sum[Ls * (N ยท H)P * Atten * Spot]

Variabel, jenisnya, dan rentangnya adalah sebagai berikut:

Parameter Nilai default Tipe Deskripsi
Cs (0,0,0,0) Transparansi merah, hijau, biru, dan alfa (nilai floating-point) Warna spekular.
sum T/A T/A Penjumlahan setiap komponen spekular lampu.
N T/A Vektor 3D (nilai x, y, dan z floating-point) Vertex normal.
H T/A Vektor 3D (nilai x, y, dan z floating-point) Setengah jalan vektor. Lihat bagian di vektor setengah jalan.
P 0.0 Floating-point Kekuatan pantulan spekular. Rentang adalah 0 hingga +tak terbatas
Ls (0,0,0,0) Transparansi merah, hijau, biru, dan alfa (nilai floating-point) Warna cerah.
Atten T/A Floating-point Nilai redaman cahaya. Lihat Faktor atenuasi dan sorotan.
Spot T/A Floating-point Faktor sorotan. Lihat Faktor atenuasi dan sorotan.

 

Nilai untuk Cs adalah:

  • vertex color 1, jika sumber bahan spekular adalah warna verteks difus, dan warna vertex pertama disediakan dalam deklarasi vertex.
  • vertex color 2, jika sumber bahan spekular adalah warna verteks spekular, dan warna vertex kedua disediakan dalam deklarasi vertex.
  • warna spekular material

Catatan Jika salah satu opsi sumber bahan spekular digunakan dan warna vertex tidak disediakan, maka warna spekular material digunakan.

 

Komponen spekular dijepit menjadi dari 0 hingga 255, setelah semua lampu diproses dan diinterpolasi secara terpisah.

Vektor Setengah Jalan

Vektor setengah jalan (H) ada di tengah antara dua vektor: vektor dari verteks objek ke sumber cahaya, dan vektor dari verteks objek ke posisi kamera. Direct3D menyediakan dua cara untuk menghitung vektor setengah jalan. Ketika sorotan spekular relatif kamera diaktifkan (alih-alih sorotan spekular ortogonal), sistem menghitung vektor setengah menggunakan posisi kamera dan posisi puncak, bersama dengan vektor arah cahaya. Rumus berikut mengilustrasikan hal ini.

H = norm(norm(Cp - Vp) + Ldir)

 

Parameter Nilai default Tipe Deskripsi
Cp T/A Vektor 3D (nilai x, y, dan z floating-point) Posisi kamera.
Vp T/A Vektor 3D (nilai x, y, dan z floating-point) Posisi puncak.
Ldir T/A Vektor 3D (nilai x, y, dan z floating-point) Vektor arah dari posisi puncak ke posisi cahaya.

 

Menentukan vektor setengah jalan dengan cara ini dapat secara komputasi intensif. Sebagai alternatif, menggunakan sorotan spekular orthogonal (alih-alih sorotan spekular relatif kamera) menginstruksikan sistem untuk bertindak seolah-olah sudut pandang sangat jauh pada sumbu z. Ini tercermin dalam rumus berikut.

H = norm((0,0,1) + Ldir)

Pengaturan ini kurang intensif secara komputasi, tetapi jauh kurang akurat, sehingga paling baik digunakan oleh aplikasi yang menggunakan proyeksi ortogonal.

Contoh

Dalam contoh ini, objek diwarnai menggunakan pemandangan warna terang spekular dan warna spekular material.

Menurut persamaan, warna yang dihasilkan untuk simpul objek adalah kombinasi dari warna bahan dan warna terang.

Dua ilustrasi berikut menunjukkan warna bahan spekular, yaitu abu-abu, dan warna terang spekular, yang berwarna putih.

ilustrasi bola abu-abuilustrasi bola putih

Sorotan spekular yang dihasilkan ditampilkan dalam ilustrasi berikut.

ilustrasi sorotan spekular

Menggabungkan sorotan spekular dengan pencahayaan sekitar dan difus menghasilkan ilustrasi berikut. Dengan ketiga jenis pencahayaan yang diterapkan, ini lebih jelas menyerupai objek realistis.

ilustrasi menggabungkan sorotan spekular, pencahayaan sekitar, dan pencahayaan difus

Pencahayaan spekular lebih intensif untuk dihitung daripada pencahayaan difus. Ini biasanya digunakan untuk memberikan petunjuk visual tentang bahan permukaan. Sorotan spekular bervariasi dalam ukuran dan warna dengan bahan permukaan.

Matematika pencahayaan