Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
Diterbitkan olehSuharto Lesmono Telah diubah "9 tahun yang lalu
1
Imam Cholissodin| imam.cholissodin@gmail.com
10 | Lighting & Shading Imam Cholissodin|
2
Lighting & Shading : What’s Lighting & Shading Lighting Process
Example Lit & UnLit Lighting Factors & Direction Math of Lighting Linghting Functions Normal Vector Shading Effect
3
What’s Lighting & Shading
Lighting : Teknik yang dapat diterapkan pada proses rendering untuk menjadikan sebuah objek menjadi terlihat berbeda. Sehingga ketika objek tersebut dikenai cahaya, maka akan terjadi beberapa hal berikut : Pemantulan cahaya Pembiasan dan Penyerapan cahaya Pembentukan bayangan (Shade) Shading : Efek bayangan yang terbentuk ketika suatu objek diberikan pencahayaan.
4
Lighting Process Proses pencahayaan objek terhadap persepsi warna pada mata kita. Sumber cahaya : lampu neon, cahaya lilin, lampu pijar, sinar matahari, etc. Pantulan Iluminasi Persepsi Warna
5
Example Lit & UnLit Pada kenyataannya, sebagian besar objek bahkan tiga dimensi, tidak akan terlihat sampai mereka mendapatkan pencahayaan. Dengan Pencahayaan Tanpa Pencahayaan
7
Lighting Factors & Direction
Dalam proses rendering, lighting dipengaruhi oleh faktor-faktor berikut : Jarak objek dengan sumber cahaya Posisi objek Bentuk permukaan objek Beberapa arah pantulan cahaya terhadap objek : Specular Diffuse Translucent
8
Lighting Direction Visualisasi arah pantulan cahaya terhadap objek :
Visualisasi secara umum : Specular Diffuse Translucent n adalah vektor normal ke permukaan pada titik P. s adalah vektor dari titik P ke cahaya. v adalah vektor dari titik P ke viewer. n s v P
9
Math of Lighting Direction
Specular : Objek tidak menyebarkan cahaya secara seragam. Digunakan Model Phong (1975), untuk menghitung memudarnya kuat cahaya. Isp = Isps(cos α)f dimana ps (Koefisien Pantulan), f adalah koefisien yang ditentukan secara trial & error. Vektor r dihitung dengan mendekati vektor halfway, yaitu vektor yang terletak ditengah vektor s dan v. Sehingga n s r v α
10
Math of Lighting Direction
Diffuse : Objek menyebarkan cahaya secara seragam ke segala arah. Hubungan antara kecerahan permukaan dan orientasi cahaya didasarkan pada Hukum Lambert, sehingga Idf = Idpdmax(cos α , 0). s α= 90o n s s n n α = 0o α
11
Math of Lighting Direction
Translucent : Benda yang permukaannya mempunyai sifat Translucent, akan meneruskan cahaya yang datang dan memantulkan cahaya tersebut. Sifat Translucent hanya dapat diperoleh melalui metode pencahayaan global sehingga tidak dibicarakan lebih lanjut. s
12
Math of Lighting Source
Ambient Light (Cahaya Lingkungan) Cahaya jatuh ke objek dari berbagai sudut pantul dari objek lain dan lingkungan. Cahaya ambient tidak mempunyai titik asal khusus. Koefisien cahaya ambient (pa) digunakan untuk masing-masing permukaan. Iab = Iapa Kombinasi Intensitas Sumber Cahaya : I = Iapa + Idpdmax(cos α , 0) + Isps(cos α)f
13
Math of Lighting Source
Kombinasi Intensitas Sumber Cahaya : I = Iapa + Ispsmax(cos α , 0) + Isps(cos α)f Warna-warna dapat diperoleh dari perhitungan dari kombinasi warna dasar RGB. Intensitas pantulan dapat dihitung dengan menghitung intensitas untuk red, green dan blue dan menambahkannya. Ir = Iarpar + Idrpdrmax(cos α , 0) + Isrpsr(cos α)f Ig= Iagpag + Idgpdgmax(cos α , 0) + Isgpsg(cos α)f Ib= Iabpab + Idbpdbmax(cos α , 0) + Isbpsb(cos α)f
14
Linghting Functions glMaterialfv(face, type, vektor) Digunakan untuk menentukan sifat-sifat permukaan benda. face : GL_FRONT, GL_BACK, GL_FRONT_AND_BACK Type : GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR Vector : berisi array glLightfv(light, type, vector) Digunakan untuk mengatur karakteristik dari cahaya Light : GL_LIGHTn, dengan n = 0,1,…,7 Type : GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR, GL_POSITION, GL_SPOT_DIRECTION
15
Normal Vector Menghitung Vektor normal dari 3 buah vertex
Perintah untuk mendefinisikan vektor normal : glNormal3f(0.0,1.0,0.0) glVertex3f(2.0,4.0,4.0) |axb|=|a||b|sin Ө a x b a b
16
Normal Vector Menghitung Vektor normal dari polygon k buah vertex dengan metode Newell. Apabila Pj(xj,yj,zj), jika i = 1 maka j= (i+1) mod k yang menyatakan vertex berikutnya dari Pi. Maka vektor normal dari polygon k vertex dapat diperoleh dari persamaan berikut : v6 n v1 v5 v2 v4 v3
17
Linghting Functions glMaterialfv(face, type, vektor) Digunakan untuk menentukan sifat-sifat permukaan benda. face : GL_FRONT, GL_BACK, GL_FRONT_AND_BACK Type : GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR Vector : berisi array glLightfv(light, type, vector) Digunakan untuk mengatur karakteristik dari cahaya Light : GL_LIGHTn, dengan n = 0,1,…,7 Type : GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR, GL_POSITION, GL_SPOT_DIRECTION
19
Spotlight
20
Multiple Light
21
Koefisien Material
22
Ambient Light
23
Shading Effect Ada dua cara untuk mengimplementasi bayangan :
Bayangan rata (flat) : Teknik yang mengasumsikan bahwa permukaan objek adalah rata dan setiap titik pada permukaan objek mempunyai jarak yang sama terhadap sumber cahaya. Bayangan halus (smooth) : Teknik ini mengijinkan pemrogram untuk membuat perubahan setahap demi setahap dalam pemberian bayangan sebuah permukaan. Misalkan memberikan bayangan pada satu muka lebih pudar dibandingkan dengan muka yang lain. Fungsi aktifasi Shading pada OpenGL : glShadeModel(GL_FLAT) : untuk mode bayangan rata. glShadeModel(GL_SMOOTH) : untuk mode bayangan halus.
24
Flat Shading glShadeModel(GL_FLAT) : untuk mode bayangan rata.
Hanya menggunakan satu titik (biasanya yang pertama) normal dan properti material untuk menghitung warna untuk polygon. Menghitung pencahayaan sekaligus memberikan warna ke seluruh polygon.
25
Flat Shading glShadeModel(GL_FLAT) : untuk mode bayangan rata.
Keuntungan : Komputasinya cepat Sebaiknya digunakan pada kondisi berikut : The polygon is small enough The light source is far away The eye is very far away
26
Smooth Shading glShadeModel(GL_SMOOTH) : untuk mode bayangan halus.
Mengurangi mach band effect untuk menghapus diskontinuitas nilai Menghitung pencahayaan untuk poin yang lebih banyak pada masing-masing permukaan Mach band effect Flat shading Smooth shading
27
Smooth Shading Ada metode yang sangat populer :
Gouraud shading (standard specular highlight) Phong shading (better specular highlight)
28
Gouraud shading Algoritma smooth shading yang digunakan dalam OpenGL glShadeModel (GL_SMOOTH) Pencahayaan dihitung dari masing-masing simpul polygon. Tentukan satuan vektor normal rata-rata dari setiap titik ujung polygon. Warna diinterpolasi untuk piksel interior.
29
Gouraud shading Menghitung vektor normal global (n).
Menghitung vertex illumination (color) untuk menentukan intensitas titik. n n1 n2 n3 n4 n = (n1 + n2 + n3 + n4) / 4.0 C1 for all scanlines Ca = lerp(C1, C2) Cb = lerp(C1, C3) C3 C2 * lerp: linear interpolation Lerp(Ca, Cb)
30
Gouraud shading Linear interpolation
Interpolasi warna segitiga Gunakan jarak y untuk interpolasi titik akhir dua scanline, dan menggunakan jarak x untuk interpolasi warna pixel interior x = a / (a+b) * v2 + b/(a+b) * v1 a b x v1 v2
31
Phong Shading Menghasilkan detail cahaya yang lebih realistik dan sangat mengurangi mach band effect tetapi memerlukan perhitungan yang lebih banyak. Tentukan satuan vektor normal rata-rata pada setiap titik polygon. Normal interpolation : n1 n2 n3 nb = lerp(n1, n3) na = lerp(n1, n2) lerp(na, nb)
32
Note : (Buat Program dan Laporan Penjelasan Kode Program)
Tugas Kelompok Tema : "Pencahayaan di Ruang Gelap“. Buatlah Ruangan atau panggung dengan lampu pijar atau lampu sorot minimal jumlahnya 2. Dan gelap terangnya dapat dikontrol dengan menggunakan minimal dua tombol tertentu. (Gunakan konsep : Blending, Transformasi, Camera/ Viewing, Texture Mapping, Lighting & Shading) Note : (Buat Program dan Laporan Penjelasan Kode Program)
33
Imam Cholissodin| imam.cholissodin@gmail.com
Selesai Imam Cholissodin|
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.