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 dimana : sin(1) * n1 = sin(2) * n2 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 (3)

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 )( n ) U (4)

1 c1 2 c c +U n 2 c2
b b U n
2 2

(5)

c=

(6)

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 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. Bidang datar

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. 2. 3. 4. 5. 6. 7. Jika energi masih cukup besar untuk terus dipancarkan maka Untuk semua obyek yang lain Jika sinar hasil pantulan atau biasan menabrak obyek lain, maka: Cari titik tabraknya Jika mengenai obyek reflektif maka Cari sinar pantulannya 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 :-

Anda mungkin juga menyukai