RAY TRACING dan RADIOSITY - Gunadarma...

44
RAY TRACING RAYTRACING dan RADIOSITY

Transcript of RAY TRACING dan RADIOSITY - Gunadarma...

Page 1: RAY TRACING dan RADIOSITY - Gunadarma Universitykarmila.staff.gunadarma.ac.id/Downloads/files/42431/5.+Radiosity... · titik pada suatu permukaan ... dengan poligon lain yang bersebelahan

RAY TRACINGRAY‐TRACINGdanda

RADIOSITY

Page 2: RAY TRACING dan RADIOSITY - Gunadarma Universitykarmila.staff.gunadarma.ac.id/Downloads/files/42431/5.+Radiosity... · titik pada suatu permukaan ... dengan poligon lain yang bersebelahan

Review : 3D PhotorealismReview : 3D Photorealism• Ketepatan pemodelan objekp p j• Proyeksi secara perspektif• Efek pencahayaan yang natural kepada permukaanEfek pencahayaan yang natural kepada permukaan tampak: pantulan, transparansi, tekstur, dan bayangany g

Page 3: RAY TRACING dan RADIOSITY - Gunadarma Universitykarmila.staff.gunadarma.ac.id/Downloads/files/42431/5.+Radiosity... · titik pada suatu permukaan ... dengan poligon lain yang bersebelahan

Review : Illumination model vs surface rendering

• Model pencahayaan: model untuk p ymenghitung intensitas cahaya pada satu titik pada suatu permukaantitik pada suatu permukaan

• Rendering permukaan: prosedur yangRendering permukaan: prosedur yang menerapkan model pencahayaan untuk 

d tk i t it titik dmendapatkan intensitas semua titik pada seluruh permukaan tampakp p

Page 4: RAY TRACING dan RADIOSITY - Gunadarma Universitykarmila.staff.gunadarma.ac.id/Downloads/files/42431/5.+Radiosity... · titik pada suatu permukaan ... dengan poligon lain yang bersebelahan

Review : Model PencahayaanReview : Model Pencahayaan

• Metoda untuk menghitung intensitas cahaya:cahaya:–Ambient–Diffuse– Specular– Specular

http://en.wikipedia.org/wiki/Diffuse_reflectionp // p g/ / _

Page 5: RAY TRACING dan RADIOSITY - Gunadarma Universitykarmila.staff.gunadarma.ac.id/Downloads/files/42431/5.+Radiosity... · titik pada suatu permukaan ... dengan poligon lain yang bersebelahan

Review : Model PencahayaanReview : Model Pencahayaan)( LzLyLxL

N

)(||

)()(

YYL

XXLx

y

PL

L

)(||

)(

ZZLz

LYYLy

PL

PL

LN .cos

Ф

P

|| LLz

didistKdWdId

KaWdWaIa

cos...

).(

distdistWsIs

distKs

).(cos.

IsIdIaItotal

Page 6: RAY TRACING dan RADIOSITY - Gunadarma Universitykarmila.staff.gunadarma.ac.id/Downloads/files/42431/5.+Radiosity... · titik pada suatu permukaan ... dengan poligon lain yang bersebelahan

http://www.huevaluechroma.com

Page 7: RAY TRACING dan RADIOSITY - Gunadarma Universitykarmila.staff.gunadarma.ac.id/Downloads/files/42431/5.+Radiosity... · titik pada suatu permukaan ... dengan poligon lain yang bersebelahan

Review : Teknik Rendering Permukaan(Poligon)

• Melakukan perhitungan dengan model pencahayaan untuk semua titik yg tampak– Ray‐tracingy g

• Melakukan interpolasi untuk titik‐titik pada k d i k l i t it h ilpermukaan dari sekumpulan intensitas hasil 

perhitungan dengan model pencahayaan– Scan‐line

Page 8: RAY TRACING dan RADIOSITY - Gunadarma Universitykarmila.staff.gunadarma.ac.id/Downloads/files/42431/5.+Radiosity... · titik pada suatu permukaan ... dengan poligon lain yang bersebelahan

Review : Scan‐line algorithms

• Permukaan = poligonlik i d l h• Aplikasi model pencahayaan:

– Perhitungan intensitas tunggal untuk masing‐masing poligon

– Intensitas tiap titik pada poligon didapat dengan cara interpolasi

• Algoritma: g– Flat (constant‐intensity) shading – Gouraud shadingGouraud shading – Phong shading

Page 9: RAY TRACING dan RADIOSITY - Gunadarma Universitykarmila.staff.gunadarma.ac.id/Downloads/files/42431/5.+Radiosity... · titik pada suatu permukaan ... dengan poligon lain yang bersebelahan

Review : Flat shadingg• Intensitas tunggal untuk setiap poligongg p p g

– Semua titik dalam poligon ditampilkan dengan intensitas yang samay g

• Sering digunakan untuk mendapat tampilan cepat dari objekcepat dari objek

• Akurat dengan asumsi:Obj k lih d (b k k i i k )– Objek = polihedron (bukan aproksimasi kurva)

– Sumber cahaya cukup jauh (N.L konstan)– Pengamat cukup jauh (V.R konstan)

Bisa disiasati dengan memperkecil poligon g p p gfacet

Page 10: RAY TRACING dan RADIOSITY - Gunadarma Universitykarmila.staff.gunadarma.ac.id/Downloads/files/42431/5.+Radiosity... · titik pada suatu permukaan ... dengan poligon lain yang bersebelahan

Flat shading: contohFlat shading: contoh

Page 11: RAY TRACING dan RADIOSITY - Gunadarma Universitykarmila.staff.gunadarma.ac.id/Downloads/files/42431/5.+Radiosity... · titik pada suatu permukaan ... dengan poligon lain yang bersebelahan

Review : Gouraud shading

• Rendering poligon dengan interpolasi linear t h d il i il i i t it t (titikterhadap nilai‐nilai intensitas vertex (titik sudut poligon)

• Nilai intensitas untuk tiap poligon disesuaikan dengan poligon lain yang bersebelahan untuk mengurangi discontinuity (seperti yg terjadi pada flat shading)p g)

Page 12: RAY TRACING dan RADIOSITY - Gunadarma Universitykarmila.staff.gunadarma.ac.id/Downloads/files/42431/5.+Radiosity... · titik pada suatu permukaan ... dengan poligon lain yang bersebelahan

Review : Langkah langkah Gouraud shadingReview : Langkah‐langkah Gouraud shading

• Tentukan vektor normal satuan rata‐rata untuk setiap vertex pada poligonp p p g

• Terapkan model pencahayaan ke tiap vertex untuk mendapatkan intensitasnyauntuk mendapatkan intensitasnya

• Lakukan interpolasi linear terhadap intensitasvertex untuk mendapatkan intensitas titik‐titik lain pada poligon.lain pada poligon.

Page 13: RAY TRACING dan RADIOSITY - Gunadarma Universitykarmila.staff.gunadarma.ac.id/Downloads/files/42431/5.+Radiosity... · titik pada suatu permukaan ... dengan poligon lain yang bersebelahan

1) Vektor normal untuk vertex V1) Vektor normal untuk vertex V

n

Nn

kk

v

NN 1

n

kk

v

N1k 1

Setelah mendapatkan vektor normal pada vektor V, dengan model pencahayaan bisa didapat intensitas untuk titik tersebut

Page 14: RAY TRACING dan RADIOSITY - Gunadarma Universitykarmila.staff.gunadarma.ac.id/Downloads/files/42431/5.+Radiosity... · titik pada suatu permukaan ... dengan poligon lain yang bersebelahan

2) Interpolasi intensitas2) Interpolasi intensitas

241

124

4 IyyIyyI

2

211

214 yyyy

545

44

45

5 IxxxxI

xxxxI PP

P

Page 15: RAY TRACING dan RADIOSITY - Gunadarma Universitykarmila.staff.gunadarma.ac.id/Downloads/files/42431/5.+Radiosity... · titik pada suatu permukaan ... dengan poligon lain yang bersebelahan

Interpolasi secara inkrementalInterpolasi secara inkremental

12 yyyy 2

21

11

21

2 IyyyyI

yyyyI

12' IIII

21 yyII

Page 16: RAY TRACING dan RADIOSITY - Gunadarma Universitykarmila.staff.gunadarma.ac.id/Downloads/files/42431/5.+Radiosity... · titik pada suatu permukaan ... dengan poligon lain yang bersebelahan

Gouraud shading: contohGouraud shading: contoh

Page 17: RAY TRACING dan RADIOSITY - Gunadarma Universitykarmila.staff.gunadarma.ac.id/Downloads/files/42431/5.+Radiosity... · titik pada suatu permukaan ... dengan poligon lain yang bersebelahan

Kekurangan GouraudKekurangan Gouraud

• Tampilan highlight tidak sempurna• Mach band: garis terang atau gelap muncul pada permukaanpada permukaan– Akibat penggunaan interpolasi linear

Untuk mengurangi efek tersebut:Untuk mengurangi efek tersebut:Perkecil ukuran poligonG k t d l i ( i l Ph )Gunakan metode lain (misal: Phong)

Page 18: RAY TRACING dan RADIOSITY - Gunadarma Universitykarmila.staff.gunadarma.ac.id/Downloads/files/42431/5.+Radiosity... · titik pada suatu permukaan ... dengan poligon lain yang bersebelahan

Review : Phong shadingReview : Phong shading

• Interpolasi terhadap vektor normal• Model pencahayaan diterapkan pada semuaModel pencahayaan diterapkan pada semua titik pada permukaanM b ik hi hli h l bih li ik d• Memberikan highlight yang lebih realistik dan mereduksi efek Mach‐band

Page 19: RAY TRACING dan RADIOSITY - Gunadarma Universitykarmila.staff.gunadarma.ac.id/Downloads/files/42431/5.+Radiosity... · titik pada suatu permukaan ... dengan poligon lain yang bersebelahan

Langkah langkah PhongLangkah‐langkah Phong

• Tentukan vektor normal satuan rata‐rata untuk setiap vertex pada poligonp p p g

• Lakukan interpolasi linear terhadap vektor normal ke seluruh permukaan poligonnormal ke seluruh permukaan poligon

• Terapkan model pencahayaan sepanjang scan line untuk mendapatkan intensitas setiap titik pada permukaanpada permukaan 

Page 20: RAY TRACING dan RADIOSITY - Gunadarma Universitykarmila.staff.gunadarma.ac.id/Downloads/files/42431/5.+Radiosity... · titik pada suatu permukaan ... dengan poligon lain yang bersebelahan

Interpolasi vektor normalInterpolasi vektor normal

21

12 NyyNyyN

221

121

Nyy

Nyy

N

Untuk mendapatkan vektor-vektor normal antar scan line dan sepanjang scan line digunakan metode inkremental

Page 21: RAY TRACING dan RADIOSITY - Gunadarma Universitykarmila.staff.gunadarma.ac.id/Downloads/files/42431/5.+Radiosity... · titik pada suatu permukaan ... dengan poligon lain yang bersebelahan

Phong shading: contohPhong shading: contoh

Page 22: RAY TRACING dan RADIOSITY - Gunadarma Universitykarmila.staff.gunadarma.ac.id/Downloads/files/42431/5.+Radiosity... · titik pada suatu permukaan ... dengan poligon lain yang bersebelahan

Evaluasi Phongg

• Hasil lebih akurat– Interpolasi vektor normalModel pencahayaan diterapkan pada tiap titik– Model pencahayaan diterapkan pada tiap titik

• Trade‐off: butuh ‘biaya’ komputasi yang lebih besar

Fast Phong Shading: aproksimasi intensitas dengan perluasan deret Taylorpermukaan dengan patch berbentuk segitiga

Page 23: RAY TRACING dan RADIOSITY - Gunadarma Universitykarmila.staff.gunadarma.ac.id/Downloads/files/42431/5.+Radiosity... · titik pada suatu permukaan ... dengan poligon lain yang bersebelahan

wireframe Flat shadingwireframe Flat shading

Gouraud shading Phong shading

Page 24: RAY TRACING dan RADIOSITY - Gunadarma Universitykarmila.staff.gunadarma.ac.id/Downloads/files/42431/5.+Radiosity... · titik pada suatu permukaan ... dengan poligon lain yang bersebelahan

computer yourdictionary com/flat-shadingcomputer.yourdictionary.com/flat shading

http://www.hlc-games.de/forum/viewtopic.php?f=10&t=56

Page 25: RAY TRACING dan RADIOSITY - Gunadarma Universitykarmila.staff.gunadarma.ac.id/Downloads/files/42431/5.+Radiosity... · titik pada suatu permukaan ... dengan poligon lain yang bersebelahan

RAY TRACING

• Kelanjutan ide Ray‐Castingj y g– ‘Sinar’ diteruskan (memantul ke / menembus  objek lain)

– Mencatat semua kontribusi terhadap intensitas suatu titikU k d k f k l d i i– Untuk mendapatkan efek pantulan dan transmisi secara global

• Ray Tracing dasar• Ray‐Tracing dasar: – deteksi permukaan tampak, efek bayangan, transparansi pencahayaan dengan beberapatransparansi, pencahayaan dengan beberapa sumber cahaya

• Pengembangan Ray‐Tracing:Pengembangan Ray Tracing: – tampilan fotorealistik (terutama objek mengkilap)

Page 26: RAY TRACING dan RADIOSITY - Gunadarma Universitykarmila.staff.gunadarma.ac.id/Downloads/files/42431/5.+Radiosity... · titik pada suatu permukaan ... dengan poligon lain yang bersebelahan

http://en.wikipedia.org/wiki/Ray_tracing_(graphics)

Page 27: RAY TRACING dan RADIOSITY - Gunadarma Universitykarmila.staff.gunadarma.ac.id/Downloads/files/42431/5.+Radiosity... · titik pada suatu permukaan ... dengan poligon lain yang bersebelahan

http://en.wikipedia.org/wiki/Ray_tracing_(graphics)

Page 28: RAY TRACING dan RADIOSITY - Gunadarma Universitykarmila.staff.gunadarma.ac.id/Downloads/files/42431/5.+Radiosity... · titik pada suatu permukaan ... dengan poligon lain yang bersebelahan

Ilustrasi ‘tracing a ray’Ilustrasi  tracing a ray

Page 29: RAY TRACING dan RADIOSITY - Gunadarma Universitykarmila.staff.gunadarma.ac.id/Downloads/files/42431/5.+Radiosity... · titik pada suatu permukaan ... dengan poligon lain yang bersebelahan

Algoritma Ray‐Tracing Dasar

For each pixel in projection plane {Create ray from the reference point passing through this pixelInitialize NearestT to INFINITY and NearestObject to NULLj

For every object in scene {If ray intersects this object {

If t of intersection is less than NearestT {If t of intersection is less than NearestT {Set NearestT to t of the intersectionSet NearestObject to this object

}}}

}

If NearestObject is NULL {Fill this pixel with background color

} Else {Shoot a ray to each light source to check if in shadowIf surface is reflective, generate reflection ray: recurse, g yIf transparent, generate refraction ray: recurseUse NearestObject and NearestT to compute shading functionFill this pixel with color result of shading function

}}}

Page 30: RAY TRACING dan RADIOSITY - Gunadarma Universitykarmila.staff.gunadarma.ac.id/Downloads/files/42431/5.+Radiosity... · titik pada suatu permukaan ... dengan poligon lain yang bersebelahan

Rekursif pada ray tracingRekursif pada ray‐tracing

• Saat primary ray (sinar yang berawal dari projection reference point) dipantulkan atau dibiaskan oleh objek, sinar pantulan atau j , pbiasan disebut dengan secondary ray

• Secondary ray akan mengalami perlakuan• Secondary ray akan mengalami perlakuan yang sama seperti primary ray saat menemui 

/objek (dipantulkan dan / atau dibiaskan)

Page 31: RAY TRACING dan RADIOSITY - Gunadarma Universitykarmila.staff.gunadarma.ac.id/Downloads/files/42431/5.+Radiosity... · titik pada suatu permukaan ... dengan poligon lain yang bersebelahan

Binary Ray‐Tracing treeBinary Ray Tracing tree

4

43

3

2

3

21

1

1

Page 32: RAY TRACING dan RADIOSITY - Gunadarma Universitykarmila.staff.gunadarma.ac.id/Downloads/files/42431/5.+Radiosity... · titik pada suatu permukaan ... dengan poligon lain yang bersebelahan

Binary Ray‐Tracing tree (cont’d)• Tracing (pembentukan tree) berhenti jika:

– Sampai maximum depth (pilihan user / kapasitas memori)

– Sinar sampai ke sumber cahaya

• Intensitas pada suatu pixel: akumulasi• Intensitas pada suatu pixel: akumulasi intensitas mulai terminal node (paling bawah) pada tree

• Intensitas tiap permukaan mengalamiIntensitas tiap permukaan mengalami atenuasi (pelemahan) setara dengan jarak permukaan tersebut ke permukaan parent nyapermukaan tersebut ke permukaan parent‐nya (pada tree: node yang tepat di atasnya)

Page 33: RAY TRACING dan RADIOSITY - Gunadarma Universitykarmila.staff.gunadarma.ac.id/Downloads/files/42431/5.+Radiosity... · titik pada suatu permukaan ... dengan poligon lain yang bersebelahan

Intensitas akhir suatu pixelIntensitas akhir suatu pixel• Merupakan hasil penjumlahan seluruh• Merupakan hasil penjumlahan seluruh intensitas ‐yang telah mengalami atenuasi‐(pada root node)(pada root node)

• Jika tidak ada permukaan yang berpotongan dengan sinar dari pixel, maka pixel tersebut diberi nilai intensitas sama dengan latar belakang

• Jika sinar dari pixel berpotongan dengan p p g gsumber cahaya (meski tidak reflektif), maka pixel tersebut diberi nilai intensitas samapixel tersebut diberi nilai intensitas sama dengan sumber cahaya

Page 34: RAY TRACING dan RADIOSITY - Gunadarma Universitykarmila.staff.gunadarma.ac.id/Downloads/files/42431/5.+Radiosity... · titik pada suatu permukaan ... dengan poligon lain yang bersebelahan

PantulanPantulan

LNkDiffuseIkAmbient

d

aa

)(

NHkSpecular

LNkDiffusesn

s

d

).(

).(

NNuuR ).2(

• Jika L berpotongan dengan permukaan lain maka permukaanJika L berpotongan dengan permukaan lain, maka permukaan tersebut dalam daerah bayangan

Page 35: RAY TRACING dan RADIOSITY - Gunadarma Universitykarmila.staff.gunadarma.ac.id/Downloads/files/42431/5.+Radiosity... · titik pada suatu permukaan ... dengan poligon lain yang bersebelahan

PembiasanPembiasan

• Untuk objek dengan material transparan

)( ii NT )cos(cos ir

ir

r

i NuT

r

)cos1(1cos 22

ii

r

i

r

)( ir

r

Page 36: RAY TRACING dan RADIOSITY - Gunadarma Universitykarmila.staff.gunadarma.ac.id/Downloads/files/42431/5.+Radiosity... · titik pada suatu permukaan ... dengan poligon lain yang bersebelahan

Contoh Ray TracingContoh Ray‐Tracing

Page 37: RAY TRACING dan RADIOSITY - Gunadarma Universitykarmila.staff.gunadarma.ac.id/Downloads/files/42431/5.+Radiosity... · titik pada suatu permukaan ... dengan poligon lain yang bersebelahan

RadiosityRadiosity• Memodelkan pantulan difusi dengan lebih akurat

• Mempertimbangkan transfer energi radian antar permukaan (sesuai dengan hukumantar permukaan (sesuai dengan hukum kekekalan energi)

• Tingkat kecerahan (brightness) dan warna dari segala sesuatu tergantung dari segala sesuatusegala sesuatu tergantung dari segala sesuatu yang lainL bih li tik• Lebih realistik

Page 38: RAY TRACING dan RADIOSITY - Gunadarma Universitykarmila.staff.gunadarma.ac.id/Downloads/files/42431/5.+Radiosity... · titik pada suatu permukaan ... dengan poligon lain yang bersebelahan

Efek visual radiosityEfek visual radiosity

h h b l h• Cahaya putih mengenai bola merah• Ada pantulan cahaya merah dari bola ke objek lain di sekelilingnya• Lantai putih di sekitar bola menjadi kemerah‐merahanp j

Page 39: RAY TRACING dan RADIOSITY - Gunadarma Universitykarmila.staff.gunadarma.ac.id/Downloads/files/42431/5.+Radiosity... · titik pada suatu permukaan ... dengan poligon lain yang bersebelahan

Contoh radiosity

http://en.wikipedia.org/wiki/Radiosity_(3D_computer_graphics)

Page 40: RAY TRACING dan RADIOSITY - Gunadarma Universitykarmila.staff.gunadarma.ac.id/Downloads/files/42431/5.+Radiosity... · titik pada suatu permukaan ... dengan poligon lain yang bersebelahan

Teori dasar radiosityTeori dasar radiosity

• Radiosity (B): energi per satuan luas yang meninggalkan permukaan per satuan waktu; total energi yang dipancarkan dan yang g y g p y gdipantulkan

j

ijijiiiii dAFBRdAEdABj

Radiosity x luas = energi dipancarkan + energi dipantulkan

Page 41: RAY TRACING dan RADIOSITY - Gunadarma Universitykarmila.staff.gunadarma.ac.id/Downloads/files/42431/5.+Radiosity... · titik pada suatu permukaan ... dengan poligon lain yang bersebelahan

Teori dasar radiosity (cont’d)Teori dasar radiosity (cont’d)

• Hubungan timbal balik: jjiiij AFAF

Setelah dibagi dengan dAi:

ijjiii FBREBj

Untuk lingkungan diskrit:

n

ijjiii FBREB

g g

j

ijjiii FBREB1

Page 42: RAY TRACING dan RADIOSITY - Gunadarma Universitykarmila.staff.gunadarma.ac.id/Downloads/files/42431/5.+Radiosity... · titik pada suatu permukaan ... dengan poligon lain yang bersebelahan

Teori dasar radiosity (cont’d)Teori dasar radiosity (cont’d)

• Tiap permukaan saling mempengaruhi, sehingga perlu menyelesaikan n persamaansehingga perlu menyelesaikan n persamaan secara simultan:

n

EE

BB

FRFRFRFRFRFR

1...1 1111121111

n

E

E

B

B

FRFRFR

FRFRFR......

1............

...1 2222222212

nnnnnnnnn EBFRFRFR 1...21

Radiosity bersifat monokromatik Radiosity bersifat monokromatik. Untuk RGB, lakukan perhitungan untuk tiap warna

Page 43: RAY TRACING dan RADIOSITY - Gunadarma Universitykarmila.staff.gunadarma.ac.id/Downloads/files/42431/5.+Radiosity... · titik pada suatu permukaan ... dengan poligon lain yang bersebelahan

Form factorForm factor

Fij = energi dari permukaan Ai yang sampai ke Ajj

j energi dari permukaan Ai yang menyebar ke semua arah dalam ruang hemisphere yang melingkupi Ai

j

g p i

ji dAdAF coscos1 j

j

ijA A

j

iij dAdA

rAF

i j

2i

j

i

i

i

Page 44: RAY TRACING dan RADIOSITY - Gunadarma Universitykarmila.staff.gunadarma.ac.id/Downloads/files/42431/5.+Radiosity... · titik pada suatu permukaan ... dengan poligon lain yang bersebelahan

Asumsi dlm perhitungan form factorAsumsi dlm perhitungan form factor

• Berlaku hukum kekekalan energi

n

ijF 1

• Pantulan cahaya seragam

j 1

• Pantulan cahaya seragam

jijiji FAFA

• Permukaan datar atau convex

0jjF