Bagikan melalui


Properti cahaya

Properti cahaya menjelaskan jenis sumber cahaya (titik, arah, sorotan), pelambatan, warna, arah, posisi, dan rentang. Tergantung pada jenis cahaya yang digunakan, cahaya dapat memiliki sifat untuk pelampan dan rentang, atau untuk efek sorotan. Tidak semua jenis lampu menggunakan semua properti.

Properti posisi, rentang, dan pelambatan mendefinisikan lokasi cahaya di ruang dunia dan bagaimana cahaya yang dipancarkannya bereaksi dari jarak jauh.

Atenuasi Cahaya

Atenuasi mengontrol bagaimana intensitas cahaya menurun menuju jarak maksimum yang ditentukan oleh properti rentang. Tiga nilai floating point terkadang digunakan untuk mewakili pelambatan cahaya: Attenuation0, Attenuation1, dan Attenuation2. Nilai-nilai floating-point ini berkisar antara 0,0 hingga tak terbatas, mengontrol pelambatan cahaya. Beberapa aplikasi mengatur anggota Attenuation1 ke 1.0 dan yang lain menjadi 0,0, menghasilkan intensitas cahaya yang berubah sebagai 1 / D, di mana D adalah jarak dari sumber cahaya ke vertex. Intensitas cahaya maksimum ada di sumbernya, menurun menjadi 1 / (Rentang Cahaya) pada rentang cahaya.

Meskipun biasanya, aplikasi menetapkan Attenuation0 ke 0,0, Attenuation1 ke nilai konstanta, dan Attenuation2 hingga 0,0, berbagai efek cahaya dapat dicapai dengan mengubah ini. Anda dapat menggabungkan nilai pelambatan untuk mendapatkan efek pelambatan yang lebih kompleks. Atau, Anda dapat mengaturnya ke nilai di luar rentang normal untuk membuat efek pelambatan yang lebih asing. Namun, nilai pelambatan negatif tidak diperbolehkan. Lihat Faktor atenuasi dan sorotan.

Warna Terang

Lampu di Direct3D memancarkan tiga warna yang digunakan secara independen dalam komputasi pencahayaan sistem: warna difus, warna sekitar, dan warna spekular. Masing-masing digabungkan oleh modul pencahayaan Direct3D, berinteraksi dengan mitra dari bahan saat ini, untuk menghasilkan warna akhir yang digunakan dalam penyajian. Warna difus berinteraksi dengan properti refleksi difus bahan saat ini, warna spekular dengan properti pantulan spekular bahan, dan sebagainya. Untuk detail tentang bagaimana Direct3D menerapkan warna-warna ini, lihat Matematika pencahayaan.

Dalam aplikasi Direct3D, biasanya ada tiga nilai warna - Diffuse, Ambient, dan Specular yang menentukan warna yang dipancarkan.

Jenis warna yang paling banyak berlaku untuk komputasi sistem adalah warna difus. Warna difus yang paling umum adalah putih (R:1.0 G:1.0 B:1.0), tetapi Anda dapat membuat warna sesuai kebutuhan untuk mencapai efek yang diinginkan. Misalnya, Anda dapat menggunakan lampu merah untuk perapian, atau Anda dapat menggunakan lampu hijau untuk sinyal lalu lintas yang diatur ke "Buka."

Umumnya, Anda mengatur komponen warna terang ke nilai antara 0,0 dan 1,0, inklusif, tetapi ini bukan persyaratan. Misalnya, Anda dapat mengatur semua komponen ke 2.0, membuat cahaya yang "lebih terang dari putih." Jenis pengaturan ini dapat sangat berguna ketika Anda menggunakan pengaturan redaman selain konstanta.

Meskipun Direct3D menggunakan nilai RGBA untuk lampu, komponen warna alfa tidak digunakan.

Biasanya warna material digunakan untuk pencahayaan. Namun, Anda dapat menentukan bahwa warna bahan-emissif, sekitar, difus, dan spekular-yang akan ditimpa oleh warna verteks yang berbeda atau spekular.

Nilai alfa/transparansi selalu hanya berasal dari saluran alfa warna difus.

Nilai kabut selalu hanya berasal dari saluran alfa warna spekular.

Arah Cahaya

Properti arah cahaya menentukan arah cahaya yang dipancarkan oleh objek berjalan, di ruang dunia. Arah hanya digunakan oleh lampu arah dan lampu sorot, dan dijelaskan dengan vektor.

Atur arah cahaya sebagai vektor. Vektor arah digambarkan sebagai jarak dari asal logis, terlepas dari posisi cahaya dalam adegan. Oleh karena itu, sorotan yang menunjuk langsung ke adegan - di sepanjang sumbu z positif - memiliki vektor <arah 0,0,1> di mana pun posisinya didefinisikan. Demikian pula, Anda dapat mensimulasikan sinar matahari yang bersinar langsung di tempat kejadian dengan menggunakan lampu arah yang arahnya <0,-1,0>. Anda tidak perlu membuat lampu yang bersinar di sepanjang sumbu koordinat; Anda dapat mencampur dan mencocokkan nilai untuk membuat lampu yang bersinar pada sudut yang lebih menarik.

Meskipun Anda tidak perlu menormalkan vektor arah lampu, selalu pastikan bahwa itu memiliki besaran. Dengan kata lain, jangan gunakan <vektor arah 0,0,0> .

Posisi Cahaya

Posisi ringan dijelaskan menggunakan struktur vektor. Koordinat x, y, dan z diasumsikan berada di ruang dunia. Lampu arah adalah satu-satunya jenis cahaya yang tidak menggunakan properti posisi.

Rentang Cahaya

Properti rentang cahaya menentukan jarak, di ruang dunia, di mana jala dalam adegan tidak lagi menerima cahaya yang dipancarkan oleh objek itu. Lampu arah tidak menggunakan properti rentang.

Lampu dan bahan