lighting shading

26
10 | Lighting & Shading Imam Cholissodin| [email protected]

Upload: ghozainul-alfa

Post on 24-Oct-2015

110 views

Category:

Documents


9 download

DESCRIPTION

What’s Lighting & Shading Lighting ProcessExample Lit & UnLitLighting Factors & DirectionMath of Lighting Linghting FunctionsNormal VectorShading EffectDemos Program

TRANSCRIPT

Page 1: Lighting Shading

10 | Lighting & ShadingImam Cholissodin| [email protected]

Page 2: Lighting Shading

Lighting & Shading :

1. What’s Lighting & Shading 2. Lighting Process3. Example Lit & UnLit4. Lighting Factors & Direction5. Math of Lighting 6. Linghting Functions7. Normal Vector8. Shading Effect9. Demos Program

Page 3: Lighting Shading

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.

Page 4: Lighting Shading

Lighting Process

• Proses pencahayaan objek terhadap persepsi warna pada mata kita.

• Sumber cahaya : lampu neon, cahaya lilin, lampu pijar, sinar matahari, etc.

IluminasiPantulan

PersepsiWarna

Page 5: Lighting Shading

Example Lit & UnLit

• Pada kenyataannya, sebagian besar objek bahkan tiga dimensi, tidak akan terlihat sampai mereka mendapatkan pencahayaan.

Dengan Pencahayaan Tanpa Pencahayaan

Page 6: Lighting Shading

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

Page 7: Lighting Shading

• Visualisasi arah pantulan cahaya terhadap objek :

• Visualisasi secara umum :

Lighting Direction

DiffuseSpecular Translucent

vsn

• 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.P

Page 8: Lighting Shading

• 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

Math of Lighting Direction

vsn

Page 9: Lighting Shading

• 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).

Math of Lighting Direction

ns

ns

ns

ns arccos maka ,cos

sn

α = 0o

sn

α

s

n

α= 90o

Page 10: Lighting Shading

• 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.

Math of Lighting Direction

s

Page 11: Lighting Shading

• 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

Math of Lighting Source

Page 12: Lighting Shading

• 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

Math of Lighting Source

Page 13: Lighting Shading

• 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– Vector : berisi array

Linghting Functions

Page 14: Lighting Shading

• 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)

Normal Vector

a

b

|axb|=|a||b|sin Өa x b

)()(

)()(

)()(

b x a

yxyx

zxzx

zyzy

zyx

zyx

abba

baab

abba

bbb

aaa

kji

Page 15: Lighting Shading

• Menghitung Vektor normal dari polygon k buah vertex dengan metode Newell.

• Apabila Pj(xj,yj,zj), jika i = 1 maka j=1, selain itu j = i+1. Sehingga menyatakan vertex berikutnya dari Pi. Maka vektor normal dari polygon k vertex dapat diperoleh dari persamaan berikut :

Normal Vector

ji

k

ijix zzyyn

1

ji

k

ijiy xxzzn

1

ji

k

ijiz yyxxn

1

n v1

v2

v3v4

v5

v6

Page 16: Lighting Shading

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.

Page 17: Lighting Shading

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.

Page 18: Lighting Shading

Flat Shading

• glShadeModel(GL_FLAT) : untuk mode bayangan rata.– Keuntungan : Komputasinya cepat– Sebaiknya digunakan pada konsidi berikut :

• The polygon is small enough • The light source is far away• The eye is very far away

Page 19: Lighting Shading

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

Flat shading Smooth shading

Mach band effect

Page 20: Lighting Shading

Smooth Shading

• Ada metode yang sangat populer :– Gouraud shading (standard specular highlight)– Phong shading (better specular highlight)

Page 21: Lighting Shading

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.

Page 22: Lighting Shading

Gouraud shading

• Menghitung vektor normal global (n).

• Menghitung vertex illumination (color) untuk menentukan intensitas titik.

nn1 n2

n3 n4n = (n1 + n2 + n3 + n4) / 4.0

C1

C2 C3

Ca = lerp(C1, C2) Cb = lerp(C1, C3)

Lerp(Ca, Cb)

for all scanlines

* lerp: linear interpolation

Page 23: Lighting Shading

Gouraud shading

• Linear interpolation

• Interpolasi warna segitigaGunakan jarak y untuk interpolasi titik akhir dua scanline, dan menggunakan jarak x untuk interpolasi warna pixel interior

a b

v1 v2x

x = a / (a+b) * v2 + b/(a+b) * v1

Page 24: Lighting Shading

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)

Page 25: Lighting Shading

Tugas Kelompok (bagian 2)

1. 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)

Page 26: Lighting Shading

SelesaiImam Cholissodin| [email protected]