RAY TRACING dan RADIOSITY - Gunadarma...

Post on 16-Mar-2019

259 views 0 download

Transcript of RAY TRACING dan RADIOSITY - Gunadarma...

RAY TRACINGRAY‐TRACINGdanda

RADIOSITY

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

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

Review : Model PencahayaanReview : Model Pencahayaan

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

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

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

http://www.huevaluechroma.com

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

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

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

Flat shading: contohFlat shading: contoh

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)

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.

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

2) Interpolasi intensitas2) Interpolasi intensitas

241

124

4 IyyIyyI

2

211

214 yyyy

545

44

45

5 IxxxxI

xxxxI PP

P

Interpolasi secara inkrementalInterpolasi secara inkremental

12 yyyy 2

21

11

21

2 IyyyyI

yyyyI

12' IIII

21 yyII

Gouraud shading: contohGouraud shading: contoh

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)

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

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 

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

Phong shading: contohPhong shading: contoh

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

wireframe Flat shadingwireframe Flat shading

Gouraud shading Phong shading

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

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

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)

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

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

Ilustrasi ‘tracing a ray’Ilustrasi  tracing a ray

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

}}}

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)

Binary Ray‐Tracing treeBinary Ray Tracing tree

4

43

3

2

3

21

1

1

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)

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

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

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

Contoh Ray TracingContoh Ray‐Tracing

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

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

Contoh radiosity

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

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

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

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

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

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