Anda di halaman 1dari 9

Pemodelan Pemantulan dan Pembiasan Cahaya oleh Obyek Mengkilap dan

Obyek Transparan dengan Menggunakan Ray Tracing

Liliana
Fakultas Teknologi Industri, jurusan Teknik Informatika, Universitas Kristen Petra
Jl. Siwalankerto 121-131 Surabaya
e-mail : lilian@peter.petra.ac.id

Abstrak: Kemajuan teknologi yang begitu pesat telah memicu perkembangan grafika
komputer. Aplikasi grafika komputer banyak sekali digunakan dalam dunia hiburan.
Apalagi yang bersifat komersial. Grafika komputer paling sering digunakan dalam
pembuatan film, iklan, game, serta animasi. Banyak pengembang yang berlomba –
lomba meciptakan metode untuk menghasilkan gambar yang realistik. Semakin baik
metode yang dikembangkan maka gambar yang dihasilkan akan semakin mendekati
model sesungguhnya dalam dunia nyata. Salah satu metode untuk menghasilkan
gambar (rendering) yang realistik adalah ray tracing.
Metode ray tracing mampu menghasilkan gambar yang realistik karena
memperhitungkan efek – efek pencahayaan. Efek – efek yang diperhitungkan adalah
efek pencahayaan ambient, diffuse dan specular. Selain itu juga memperhitungkan
pemantulan dan pembiasan cahaya. Selain itu metode ray tracing dibagi menjadi dua
macam, yitu penelusuran sinar dari mata (backward ray tracing) dan penelusuran sinar
dari sumber cahaya (forward ray tracing). Dengan kelemahan dan kelebihan dari
masing – masing penelusuran maka akan dihasilkan gambar yang bagus kualitasnya.
Sebuah sinar yang dipancarkan dari sumber cahaya akan dipantulkan jika
mengenai obyek yang permukaannya mengkilap dan akan dibiaskan obyek yang
transparan. Hasil dari pemantulan dan pembiasan cahaya tersebut akan diserap oleh
obyek yang kasat, tidak mengkilap dan tidak transparan. Semakin banyak sinar yang
dipantulkan atau dibiaskan ke suatu area permukaan obyek kasat maka area tersebut
akan terlihat semakin terang bila dibandingkan dengan area disekitarnya. Efek inilah
yang akan dimodelkan. Efek pencahayaan ini biasa disebut dengan efek kaustik.
Selain efek kaustik, obyek transparan juga mempunyai efek terlihatnya obyek
lain yang berada di belakangnya. Terlihatnya obyek lain ini tidak seperti bentuk aslinya
karena adanya pengaruh dari pembiasan cahaya. Obyek akan terlihat membesar jika
dilihat dari obyek transparan. Ini adalah efek transparansi.
Kata kunci : ray tracing, pemantulan, pembiasan, efek kaustik, transparansi.

1. PENDAHULUAN
Metode rendering yang baik adalah meode yang mampu menghasilkan gambar
yang serealistik foto. Untuk menghasilkan gambar yang sedemikian diperlukan
perhitungan efek-efek pencahayaan. Metode ray tracing adalah salah satu metode
yang mampu menghasilkan gambar yang realistik. Hal ini dikarenakan adanya
perhitungan efek pencahayaan secara real dan adanya pemodelan pemantulan serta
pembiasan cahaya.
Dalam ray tracing efek pencahayaan yang diperhitungkan adalah ambient,
diffuse dan specular. Ambient adalah efek pencahayaan yang merata. Semakin besar
intensitas cahaya maka warna obyek akan terlihat semakin terang. Efek diffuse adalah
efek pencahayaan yang memperhitungkan jarak obyek dari lampu atau sumber
cahaya. Semakin dekat permukaan obyek dari lampu maka warna obyek pada
permukaan tersebut semakin terang, semakin jauh permukaan obyek tersebut maka
warnanya akan terlihat semakin gelap. Efek specular adalah efek yang menampilkan
bayangan sumber cahaya pada permukaan suatu obyek. Selain efek – efek diatas,
untuk mendapatkan hasil yang realistik harus diperhatikan juga pemodelan sinar
kedua, yaitu sinar hasil pemantulan dan pembiasan cahaya. Sinar yang yang
mengenai obyek mengkilap akan dipantulkan dan sinar yang mengenai obyek
transparan akan dibiskan. Sinar pantul dan sinar bias yang dihasilkan akan mengenai
obyek lainnya. Inilah yang dimaksud dengan sinar kedua karena bukan sinar yang
langsung berasal dari lampu.
Selain efek pencahayaan, dimodelkan juga pemantulan untuk benda reflektif
seperti cermin yang akan menghasilkan pantulan dari benda lain. Dan efek pembiasan
cahaya yang dimodelkan pada benda transparan yang menghasilkan penampakan
obyek lain yang berada di belakang obyek transparan tersebut. Pemodelan untuk
obyek transparan selama ini hanya menampakkan obyek lain yang berada di belakang
obyek transparan tersebut. Sedangkan efek kaustiknya tidak dimodelkan. Efek kaustik
adalah efek pengumpulan cahaya yang dibiaskan oleh benda tembus pandang ke
suatu daerah tertentu sehingga daerah tersebut akan nampak lebih terang dari pada
daerah sekitarnya. Perangkat lunak yang dibuat ini mampu menghasilkan efek kaustik
dari obyek transparan.

2. PEMANTULAN DAN PEMBIASAN CAHAYA


Berikut ini akan dijelaskan lebih lanjut mengenai pemantulan dan pembiasan
cahaya, terutama cara untuk mendapat arah pantul dan arah bias dari cahaya tersebut.
•Pemantulan Cahaya
Sinar yang datang mengenai suatu permukaan obyek akan dipantulkan dengan
sudut yang sama besar terhadap normal pada bidang yang dikenai. Gambaran dari
sinar dating dan sinar pantul dapat dilihat pada gambar 1. Secara sederhana dapat
dikatakan sudut antara L dengan N sama besar dengan sudut antara N dengan
R.

Gambar 1. Pembentukan sinar pantul

Untuk mencari arah sinar pantul dapat dirumuskan (Whit 1980) seperti pada
persamaan 1.
R = 2 * N * (N • L) – L
(1)
Dinama : R = sinar pantul
N = normal
L = negasi dari sinar datang

•Pembiasan Cahaya
Sinar yang mengenai benda transparan akan dibiaskan. Hasil pembiasan
tergantung pada kerapatan material obyek. Sinar bias dihitung dengan acuan vektor
normal dari obyek seperti yang terlihat pada gambar 2. Perhatikan sinar b yang berasal
dari medium satu, kecepatan sinar di medium satu adalah c1 dan membentuk sudut
datang θ1 terhadap garis normal, mengenai dan melewati obyek dengan medium dua,
kecepatan sinar pada medium dua adalah c2 dan sudut pembiasan yang terbentuk
antara sinar bias dengan normal adalah θ2, maka hukum Snell dinyatakan pada
persamaan 2.
sin( θ1) sin( θ 2)
= (2)
c1 c2
c adalah satu banding n sehingga persamaan diatas dapat ditulis dengan

sin(θ1) * n1 = sin(θ2) * n2 (3)


dimana : θ1 dan θ2 = sudut dating dan sudut pantul
c1 dan c2 = kecepatan sinar di medium asal dan tujuan
n1 dan n2 = index bias medium asal dan tujuan sinar

Jika sudut biasnya 90º maka sinar tidak dibiaskan tetapi dipantulkan secara
sempurna. Untuk mencari arah sinar yang sudah dibiaskan (d), seperti yang terlihat
pada gambar 2 di dapat dengan persamaan (Hill 1990) seperti pada persamaan 4,5
dan 6.
d = δc + (1 − δ )( −U n ) (4)

1
δ=
2
c1 2 2 (5)
2
∗ c − c +U n
c2
b
c= (6)
b •U n

Dimana : d = sinar bias.


δ = jarak antara cahaya yang dibiaskan dengan garis normal.
Un= normal bidang
c1= kecepatan pada medium 1
c2= kecepatan pada medium 2
b = sinar dating yang mengenai suatu permukaan obyek
Gambar pembiasan cahaya menurut hukum Snell terlihat pada gambar 2.

Gambar 2. Pembiasan sinar dari medium 1

3. RAY TRACING DAN PEMETAAN CAHAYA


Ray tracing adalah suatu metode merender gambar dengan cara menelusuri
sinar yang mengenai mata. Mata dapat melihat warna pada suatu obyek disebabkan
adanya sinar yang mengenai suatu obyek dan jika diteruskan maka sinar tersebut
akhirnya mengenai mata. Jika sinar yang ditelusuri mengenai suatu obyek maka
kemudian diperhitungkan intensitas warna obyek tersebut. Berikut akan dibahas
mengenai ray tracing lebih jauh lagi.
3.1. Ray Tracing
Metode ray tracing dibagi menjadi dua jenis, yaitu forward ray tracing dan
backward ray tracing. Pada forward ray tracing, sinar yang ditelusuri adalah sinar dari
sumber cahaya yang dipantulkan atau dibiaskan ke suatu obyek. Sinar – sinar yang
mengenai suatu permukaan akan disimpan sebagai intensitas pada permukaan
tersebut. Karena forward ray tracing digunakan untuk menghitung iluminasi /
penyinaran dari sumber cahaya maka bisa disebut sebagai fase illuminasi. Sumber
cahaya yang digunakan adalah sumber cahaya berupa titik.
Sumber cahaya dimodelkan sebagai bola dengan radius satu dan posisi sumber
cahaya sebagai titik pusatnya. Dari titik pusat dicari arah pancaran sinar ke seluruh
permukaan bola. Gambarannya bisa dilihat pada gambar 3.

Gambar 3. Mencari arah pancaran sinar dari sumber cahaya.

Sedangkan cara untuk mendapatkan titik pada permukaan bola digunakan


persamaan 7:
P (u, v) = (r * cos (v) * cos (u), r * cos (v) * sin (u), r * sin (v)) (7)
dimana r = jari-jari bola ( bernilai 1)
u = sudut searah sumbu mendatar bernilai antara 0 s/d 2π
v = sudut searah sumbu tegak bernilai antara -π /2 s/d π /2.
Arah sinar dari posisi lampu ke segala penjuru permukaannya ini akan
ditelusuri apakah mengenai obyek – obyek mengkilap dan transparan yang ada. Jika
sinar mengalami pemantulan atau pembiasan oleh suatu obyek dan kemudian
mengenai obyek lain yang kasat maka akan disimpan pada peta cahaya milik obyek
kasat tersebut. Cara pembentukan dan pemetaan intensitas cahaya pada peta cahaya
akan dibahas lebih lanjut dibawah ini.

3.2. Pemetaan Cahaya


Pemetaan cahaya (Arvo 1986) menyimpan energi dari sinar dalam suatu array
2D. Karena obyek berupa 3D, maka diubah terlebih dahulu ke bentuk P(u,v) nya.
Setelah itu distribusikan intensitas tersebut ke titik – titik di sekitarnya, secara bilinear,
seperti terlihat pada gambar 4.

Gambar 4. Pemetaan sinar pada permukaan obyek.


Untuk pendistribusian ke empat titik sekitarnya, perbandingannya terbalik.
Semakin dekat jarak titik jatuhnya cahaya dengan titik sekitarnya maka intensitas yang
disimpan pada titik tersebut semakin besar. Peta yang menyimpan energi pada
permukaan obyek disebut illumination map. Setelah pemetaan cahaya selesai
dilakukan maka intensitas yang terkumpul dibagi dengan luasan area yang diwakili.
Pada penelitian ini yang dimodelkan adalah bola dan bidang datar. Luas permukaan
bola bisa dicari dengan rumus 8. Sedangkan luas bidang datar dihitung dengan
mengkuadratkan skala pemetaannya.
L = 4 * π * r² / q (8)
Dimana : L = luas permukaan bola
π = konstanta bernilai 3,141596 ( 22/7 )
r = radius bola
q = jumlah qrid pada peta cahaya bola
Setiap obyek mempunyai cara pemetaan cahaya yang berbeda - beda. Untuk
bola, permukaannya akan diubah menjadi u dan v dengan beracuan pada sumbu
asimut dan sumbu polar nya. Kedua sumbu dibagi sama besar. Sedangkan untuk
bidang datar maka salah satu sumbu (sumbu x, sumbu y atau sumbu z), dihilangkan
maka tinggal dua unsur yang akan diasumsikan sebagai u dan v.

4. DESAIN CLASS DAN ALGORITMA


Desain class dibuat untuk mengatur penyimpanan dan pengaksesan data.
Pemrograman pada penelitian ini dibuat dengan berorientasi pada obyek. Sedangkan
algoritma dibuat berdasarkan proses yang terjadi. Susunan class digambarkan pada
diagram 1.

Ray Tracing

Layar dan Kamera Lampu Obyek

Warna
Vektor

Bola Bidang datar

Diagram 1 : Desain class pada ray tracing.

Simbol belah ketupat menunjukkan bahwa class tersebut “terdiri dari” class – class
di bawahnya. Sedangkan segitiga melambangkan inherit class, suatu class diturunkan
menjadi class – class di bawahnya.
Proses ray tracing akan dibagi menjadi dua fase, yaitu fase illumination dan fase
rendering. Fase illumination akan dijabarkan pada algoritma 1. Sedangkan fase
rendering menggunakan backward ray tracing yang sudah umum dipakai sehingga
tidak dijabarkan lebih lanjut.
1. untuk ( u= 0 ; u < π ; u+= 2π/n )
2. untuk ( v= 0 ; v < π ; v+= π/n )
3. untuk setiap sumber cahaya
4. cari arah pancaran sinar
5. cari titik tabrak sinar dengan semua obyek
6. jika menabrak obyek maka
7. jika mengenai benda reflektif maka
8. cari sinar pantulannya
9. petakan dengan parameter sinar pantulnya
10. jika mengenai benda transparan maka
11. cari sinar biasnya
12. petakan dengan parameter sinar biasnya

Algoritma 1. Algoritma untuk fase illumination

Suatu obyek dikatakan reflektif jika koefisien reflektifitasnya lebih besar dari 0.
Obyek transparan yaitu obyek yang koefisien transparansinya lebih besar dari 0.
Setelah semua sinar yang dipancarkan dari lampu selesai dipetakan maka barulah
fase rendering atau penelusuran sinar dari mata dilakukan. Algoritma tersebut di atas
digunakan untuk mencari semua sinar yang akan dipancarkan dari lampu. Sedangkan
untuk pemetaan intensitasnya dijabarkan pada algoritma 2. algoritma ini digunakan
setelah menemukan obyek yang mengkilap atau transparan.

1. Jika energi masih cukup besar untuk terus dipancarkan maka


2. Untuk semua obyek yang lain
3. Jika sinar hasil pantulan atau biasan menabrak obyek lain, maka:
4. Cari titik tabraknya
5. Jika mengenai obyek reflektif maka
6. Cari sinar pantulannya
7. Ulangi proses pemetaan (rekursi) dengan sinar pantulnya dan nilai energi yang
dikalikan dengan koefisien reflektifitasnya sebagai parameter
8. Jika mengenai obyek transparan maka
9. Cari sinar biasnya
10. Ulangi proses pemetaan (rekursi) dengan sinar biasnya dan nilai energi
yang dikalikan dengan koefisien transparansinya sebagai parameter.
11. Jika obyek tidak mengkilap ataupun transparan maka petakan intensitas pada
peta cahaya obyek tersebut.

Algoritma 2. Algoritma untuk memetakan energi sinar pada obyek

Sinar hasil pantulan dan biasan dipancarkan ke obyek lainnya terus - menerus
sampai energinya cukup kecil. Setiap kali memantul atau membias maka energinya
berkurang dengan mengalikan nilai energi dengan koefisien transparansinya.

5. UJI COBA
Uji coba terhadap perangkat lunak yang telah dibuat dengan menggunakan
visual C++ 6.0 dan OpenGL ini bertujuan untuk mengetahui apakah output nya sudah
sesuai. Untuk uji coba, data – data diatur sebagai berikut:
• Kamera diletakkan di posisi (17, 3, 0) dengan arah pandang sejajar sumbu x
negatif dan arah atas sejajar sumbu y positif. Sudut pandang mata adalah 90°.
• Layar pada kamera diset dengan perbandingan 1, layar gambar 300 x 300 .
• Warna background diatur dengan kombinasi merah 0.3, hijau 0.3 dan biru 0.8
• Lampu dengan koefisien ambient (0.5, 0.5, 0.5), koefisien diffuse dan specular (0.8
0.8 0.8). Lampu diletakkan di posisi ( 0, 19, 0 ). Energinya 20.
• Bidang datar dengan normal (0, 1, 0), jarak –5 dari bidang y = 0. Untuk koefisien
ambient 0.7, diffuse 0.2, specular 0.65, reflektifitas 0 dan transparansinya 0,
bertekstur kotak – kotak dengan warna (1, 1, 0) dan warna ( 0.7, 0.7, 0.7).
• Bola dengan titik pusat (2, 1, -1), jari - jari 4. Koefisien ambient 0.3, diffuse 0.9,
specular 0.2, reflektifitas 0.2, transparansinya 0.7 dan index biasnya 1.25. Bola
tidak bertekstur dan berwarna ( 0, 1, 0 ).
• Bola dengan titik pusat (-12, 2, 4), jari - jari 6.5. Untuk koefisien ambient 0.5, diffuse
0.8, specular 0.2, reflektifitas 0.2 dan transparansinya 0 dan index biasnya 0. Bola
tidak bertekstur dan diset dengan warna ( 1, 0, 0 ).
• Skala map ( ukuran luas pada dunia nyata yang diwakili oleh setiap satuan luas
pada illumination map) pada bidang datar adalah 2.
Dengan data – data tersebut di atas maka didapatkan hasil seperti pada gambar 5.

Gambar 5. Daerah efek caustik yang berwarna putih terang

Bola merah yang berada di belakang terlihat dari bola hijau di depannya sehingga
menampakkan transparansi pada bola hijau. Daerah berwarna putih yang
menunjukkan adanya pengumpulan sinar yang dibiaskan ke daerah tersebut
sehingga nampak sangat terang. Luas daerah pengumpulan sinar ini sangat
dipengaruhi oleh jumlah sinar yang dipancarkan dan skala pemetaannya. Jika
skala pemetaannya diperluas dan jumlah sinar yang dipancarkan dari lampu
diperbanyak maka hasilnya akan tampak seperti gambar 6.

Gambar 6. Daerah efek caustik semakin meluas


Dari gambar di atas didapati efek caustik yang dihasilkan semakin memeluas dan
menguat. Selain jumlah sinar dan skala pemetaan, efek kaustik juga dipengaruhi
oleh index bias atau ketebalan lensa suatu obyek transparan. Jika index biasnya
dikurangi menjadi 1.15 maka gambar yang dihasilkan seperti pada gambar 7.

Gambar 7. Area efek caustik bergeser dari posisi sebelumnya..

Dari gambar di atas dapat dilihat bahwa area efek caustik bergeser dari posisi semula,
semakin menjauh dari bola. Hal ini membuktikan bahwa semakin kecil indeks bias
maka sinar biasnya semakin jauh.

6. KESIMPULAN
Dari hasil uji coba yang sudah dilakukan dan evaluasi yang dijelaskan pada
bagian uji coba sebelumnya maka dapat diambil kesimpulan sebagai berikut:
1. Obyek lain yang terlihat dari suatu obyek tembus pandang penampakannya
tergantung pada ukuran ketebalan lensa pada obyek transparannya.
2. Efek caustik yang dihasilkan hanya mampu menghasilkan efek caustik yang
berwarna putih, bukannya sesuai dengan warna dari obyek tranparan. Hal ini
karena yang dipetakan bukan intensitasnya tetapi energinya.
3. Luas daerah efek kaustik tergantung pada jumlah sinar yang dipancarkan dari
lampu serta skala pemetaannya.

DAFTAR PUSTAKA
1. Arvo, J . 1986. Backward Ray Tracing. Apollo Computer, Inc. Chelmsfort, MA
didownload dari situs:
http://graphics.stanford.edu/courses/cs348b-97/basics/intersection/slides/ .
Cheah, Shu Chiun. 1996. An Implementation Of A Recursive Ray Tracer
That Renders Caustic Lighting Effects. Dept. of Computer Science, University of
Maryland.
didownload dari situs:
http://www.cs.umd.edu/~mount/Indep/Scheah/causticpaper.html. 7 Juni 2001
2. Halliday; Resnick; Krane. 1960. Physics 4th Edition Volume 2. John Willey &
sons, Inc. 1020 pp
3. Hill, F. 1990. Computer Graphics. Macmillan Publishing Company, New York.
754 pp.
4. Purcell; Varberg. 1987. Calculus with Analytic Geometry 5th Edition.
Prentice-Hall, Inc.503 pp
5. Whitted. 1997. Basics of Ray Tracing. Lecture notes for Spring Quarter
6. Woo, M.; Neider, J.; Davis, T. 1997. OpenGL Programming Guide Second
Edition. Silicon Graphics, Inc. 650 pp.
Riwayat Hidup

Tempat / Tanggal lahir : Surakarta / 3 Oktober 1978


Riwayat Pendidikan :
1985 : SD di SD. Warga 1, Ska
1991 : SLTP di SMPPL Bintang Laut, Ska
1994 : SMU di SMU Regina pacis, Ska
1997 : S-1 di Universitas Surabaya, Sby
Riwayat Kerja :
2002 : dosen luar biasa di Universitas Surabaya
2003 : dosen luar biasa di Universitas Kristen Petra.
2003 - sekarang : dosen tetap di
Organisasi Profesi :-