RAY TRACING dan RADIOSITY - Gunadarma...
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