Model sederhana dari sumber cahaya adalah sebuah titik sumber, dimana dari titik ini cahaya dipancarkan. Perhitungan pencahayaan bergantung pada sifat dari permukaan yang terkena cahaya, kondisi dari cahaya latar serta spesifikasi sumber cahaya.
Tanpa adanya cahaya kita bagai berada di ruang yang gelap gulita tanpa dapat melihat apapun juga. Apa yang kita lihat pada benda adalah akibat dari pantulan cahaya ke benda tersebut yang kita tangkap dengan mata.
SIFAT DASAR CAHAYA
1. Cahaya dapat menembus
Cahaya dapat menembus bahan-bahan yang tidak padat seperti kain, kertas kalkir dan kaca sehingga kualitas kerasnya cahaya dapat dibuat lunak atau soft.
2. Cahaya dapat difokuskan
Cahaya dapat kita salurkan kearah mana kita kehendaki, dia dapat dikumpulkan dan difokuskan agar kuantitasnya lebih besar lagi. Sebagai contoh adalah sinar Matahari yang difokuskan oleh surya kanta atau kaca pembesar.
3. Cahaya dapat dipantulkan
Cahaya itu dapat pula kita belokan atau kita pantulkan dengan benda yang mempunya daya pantul yang tinggi seperti cermin, styrofoam, kertas perak dll yang lazim kita sebut dengan reflektor untuk menyinari bagian-bagian yang gelap.
4. Cahaya mempunyai warna
Semua sumber cahaya mempunyai warna atau umumnya kita sebut dengan suhu warna dalam hitungan derajat Kelvin dan dapat diukur dengan Kelvin Meter / Color Meter.
Semua sumber cahaya dimodelkan sebagai sumber titik yang dispesifikasikan dengan:
_ Lokasi: Lokasi (x,y,z) dari sebuah sumber cahaya akan menentukan pengaruhnya terhadap sebuah objek.
_ Intensitas: Intensitas cahaya menyatakan kekuatan cahaya yang dipancarkan oleh sebuah sumber cahaya. Parameter ini merupakan angka, yang biasanya makin besar nilainya, makin terang sumber cahaya tersebut.
_ Warna: Warna cahaya dari sumber ini akan mempengaruhi warna dari sebuah objek, jadi selain warna objek tersebut warna cahaya yang jatuh pada objek tersebut akan mempengaruhi warna pada rendering. Warna cahaya ini biasanya terdiri dari 3 warna dasar grafika komputer, yaitu: merah, hijau, biru atau lebih dikenal dengan RGB.
Ambient Light
cahaya latar/alam. Cahaya ini diterima dengan intensitas yang sama oleh
setiap permukaan pada benda. Cahaya latar tersebut dimodelkan
mengikuti apa yang terjadi di alam, diaman dalam keadaan tanpa sumber
cahaya sekalipun, benda masih dapat dilihat.
Model pencahayaan menggunakan Lambert’s Law adalah gabungan diffuse
scattering dan ambient, dan dituliskan:
Color Surface :
Color Reflection :
cos
} ) 0 , MAX(cos {
s
L
a d s L
C
C
k k C C
N L• =
+ =
α
α
Fungsi pencahayaan dengan Lambert’s Law dapat dituliskan dengan:
color_t LambertLaw(vector3D_t Light, vector3D_t Normal, vector3D_t
View, color_t col) {
// diffuse reflection coefficient
float kdif=0.6;
// ambient light coefficient
float kamb=0.4;
float tmp,NL,RV;
color_t ColWhite={1,1,1};
vector3D_t ReflectionVector=(2.*(Light*Normal)*Normal)-Light;
tmp=Normal*Light;
NL=funcPositive(tmp);
tmp=ReflectionVector*View;
RV=funcPositive(tmp);
return kdif*NL*col+kamb*col;
Phong Model
Model pencahayaan Phong Model adalah model pencahayaan yang lengkap karena merupakan gabungan dari diffuse scattering, specular reflection dan ambient. Rumus dari Phong Model dituliskan dengan:
(white) Color Specular :
Color Surface :
Color Reflection :
) ( 2
cos
cos
) 0 , (cos MAX } ) 0 , MAX(cos {
white
s
L
n
sp white a d s L
C
C
C
k C k k C C
L N L N R
V R
N L
. • =
• =
• =
+ + =
β
α
β α
Fungsi pencahayaan dengan Phong Model dapat dituliskan dengan:
color_t PhongModel(vector3D_t Light,vector3D_t Normal, vector3D_t
View, color_t col) {
// specular reflection coefficient
float kspe=0.7;
// diffuse reflection coefficient
float kdif=0.6;
// ambient light coefficient
float kamb=0.4;
float tmp,NL,RV;
color_t ColWhite={1,1,1};
vector3D_t ReflectionVector=(2.*(Light*Normal)*Normal)-Light;
tmp=Normal*Light;
NL=funcPositive(tmp);
tmp=ReflectionVector*View;
RV=funcPositive(tmp);
return kdif*NL*col+kspe*power(RV,4)*ColWhite+kamb*col;
}