tutorial bump mapping

9
Proceeding, Seminar Ilmiah Nasional Komputer dan Sistem Intelijen (KOMMIT 2006) Auditorium Universitas Gunadarma, Depok, 23-24 Agustus 2006 ISSN : 1411-6286 PEMBUATAN BUMP MAPPING PADA OBYEK QUADRIC Liliana 1 , Kartika Gunadi 2 , Martin Dharma Kusuma Tjandra 3 . Fakultas Teknologi Industri, Jurusan Teknik Informatika, Universitas Kristen Petra Jl. Siwalankerto 121-131 Surabaya email : [email protected] , [email protected] ABSTRAK Aplikasi komputer grafis semakin berkembang dengan didukung oleh perkembangan teknologi komputer yang sangat pesat. Banyak aplikasi yang dikembangkan untuk menghasilkan obyek-obyek yang mempunyai bentuk yang bervariasi dan menarik. Ada dua jenis obyek yang biasa dimodelkan, yaitu obyek primitif dan obyek mesh. Obyek primitif adalah obyek yang dimodelkan dengan menggunakan persamaan geometri. Obyek mesh adalah obyek kompleks yang dibentuk dari banyak segitiga yang disambung-sambungkan. Obyek primitif mudah dibuat manun bentuknya terbatas, sedangkan obyek mesh mempunyai bentuk yang lebih variatif namun lebih sulit dimodelkan dan membutuhkan waktu yang lama untuk menampilkan dan memanipulasinya. Salah satu cara yang bisa digunakan untuk membuat obyek primitif menjadi lebih menarik dan bervariasi adalah dengan memetakan sebuah tekstur pada permukaan obyek tersebut Bump mapping adalah sebuah cara memetakan tekstur pada obyek permukaan obyek dengan membuat efek ukiran. Efek ukiran didapat dengan cara memperhitungkan kedalaman. Warna yang ada pada tekstur yang akan dipetakan dibuat menjadi greyscale. Semakin gelap warna pada tekstur, semakin dalam dipetakan pada permukaan obyek. Aplikasi yang dikembangkan dalam penelitian ini mampu membuat bump mapping dengan menggunakan tekstur berwarna ataupun hitam-putih. Namun untuk permukaan obyek yang sangat melengkung pemetaan tidak terlalu nampak karena kedalamandiukirkan pada permukaan yang sudah menjorok ke dalam. Kata Kunci:bump mapping, object quadric, tekstur, ray tracing. 1. PENDAHULUAN Perkembangan teknologi komputer grafis yang pesat menyebabkan banyak pembuatan program-program aplikasi grafis yang mampu menghasilkan gambar- gambar realistis, terutama gambar tiga dimensi yang Pembuatan Bump Mapping Pada 1 (Liliana)

Upload: mochammad-arif-budianto

Post on 18-Jan-2016

267 views

Category:

Documents


4 download

DESCRIPTION

Tutorial Sketchup

TRANSCRIPT

Page 1: Tutorial Bump Mapping

Proceeding, Seminar Ilmiah Nasional Komputer dan Sistem Intelijen (KOMMIT 2006)Auditorium Universitas Gunadarma, Depok, 23-24 Agustus 2006 ISSN : 1411-6286

PEMBUATAN BUMP MAPPING PADA OBYEK QUADRIC

Liliana1 , Kartika Gunadi2, Martin Dharma Kusuma Tjandra3.

Fakultas Teknologi Industri, Jurusan Teknik Informatika, Universitas Kristen Petra Jl. Siwalankerto 121-131 Surabaya

email : [email protected] , [email protected]

ABSTRAKAplikasi komputer grafis semakin berkembang dengan didukung oleh perkembangan

teknologi komputer yang sangat pesat. Banyak aplikasi yang dikembangkan untuk menghasilkan obyek-obyek yang mempunyai bentuk yang bervariasi dan menarik. Ada dua jenis obyek yang biasa dimodelkan, yaitu obyek primitif dan obyek mesh. Obyek primitif adalah obyek yang dimodelkan dengan menggunakan persamaan geometri. Obyek mesh adalah obyek kompleks yang dibentuk dari banyak segitiga yang disambung-sambungkan. Obyek primitif mudah dibuat manun bentuknya terbatas, sedangkan obyek mesh mempunyai bentuk yang lebih variatif namun lebih sulit dimodelkan dan membutuhkan waktu yang lama untuk menampilkan dan memanipulasinya. Salah satu cara yang bisa digunakan untuk membuat obyek primitif menjadi lebih menarik dan bervariasi adalah dengan memetakan sebuah tekstur pada permukaan obyek tersebut

Bump mapping adalah sebuah cara memetakan tekstur pada obyek permukaan obyek dengan membuat efek ukiran. Efek ukiran didapat dengan cara memperhitungkan kedalaman. Warna yang ada pada tekstur yang akan dipetakan dibuat menjadi greyscale. Semakin gelap warna pada tekstur, semakin dalam dipetakan pada permukaan obyek.

Aplikasi yang dikembangkan dalam penelitian ini mampu membuat bump mapping dengan menggunakan tekstur berwarna ataupun hitam-putih. Namun untuk permukaan obyek yang sangat melengkung pemetaan tidak terlalu nampak karena kedalamandiukirkan pada permukaan yang sudah menjorok ke dalam.

Kata Kunci:bump mapping, object quadric, tekstur, ray tracing.

1. PENDAHULUANPerkembangan teknologi komputer

grafis yang pesat menyebabkan banyak pembuatan program-program aplikasi grafis yang mampu menghasilkan gambar-gambar realistis, terutama gambar tiga dimensi yang photorealistic (sekualitas foto). Untuk menghasilkan gambar yang photorealistic, perlu memperhitungkan efek-efek pencahayaan. Dengan demikian, diharapkan mampu menghasilkan gambar yang mendekati gambar aslinya.

Obyek yang bisa dimodelkan adalah obyek parametrik dan obyek mesh. Namun obyek yang lebih efisien untuk digunakan dalam pembuatan grafis adalah obyek parametrik. Hal ini disebabkan karena obyek-

obyek parametrik tersebut lebih mudah dimodelkan dan dimanipulasi bentuknya. Selain itu waktu yang diperlukan untuk merender cukup singkat. Salah satu keterbatasan pemodelan obyek parametrik adalah bentuk yang tidak kompleks. Oleh karena itu maka banyak penelitian dilakukan untuk memanipulasi bentuk obyek parametrik tersebut supaya menjadi lebih bervariasi.

Manipulasi yang paling sering dilakukan terhadap obyek parametrik adalah pemberian tekstur. Ada banyak cara pembentukan tekstur, salah satunya adalah bump mapping. Bump mapping adalah sebuah tekstur kasar pada sebuah permukaan. Pemodelan bump mapping dilakukan dengan cara membentuk sebuah peta tekstur terlebih

Pembuatan Bump Mapping Pada 1(Liliana)

Page 2: Tutorial Bump Mapping

Proceeding, Seminar Ilmiah Nasional Komputer dan Sistem Intelijen (KOMMIT 2006)Auditorium Universitas Gunadarma, Depok, 23-24 Agustus 2006 ISSN : 1411-6286

dahulu. Setelah terbentu peta tekstur barulah dilakukan pemetaan ke permukaan obyek.

2. LANDASAN TEORI2.1. Bump Mapping

Walaupun memiliki cara kerja yang hampir sama dengan tekstur mapping, bump mapping menghasilkan gambar yang berbeda. Pada tekstur mapping hanya memetakan warna ke permukaan obyek, sedangkan bump mapping memetakan juga kedalaman. Perbedaan antara tekstur mapping dengan bump mapping dapat dilihat pada gambar 1.

GAMBAR 1. Penambahan Tekstur Mapping(kiri) dengan Bump Mapping(kanan)

Dengan penambahan bump mapping, akan tercipta sebuah efek pencahayaan di mana permukaan dari obyek tersebut yang sebelumnya mulus, akan menjadi seakan-akan tampak bergelombang dan berlekuk-lekuk. Efek tersebut didapatkan dari ”memanipulasi” Normal Vektor (Perturbed Normal Vektor – Normal Vektor yang dimiringkan)[3]. Dengan memanipulasi normal Vektor dari sebuah titik yang spesifik, dapat mengubah intensitas pencahayaan yang seharusnya didapatkan oleh titik tersebut, yang berasal dari efek pencahayaan Diffuse dan Specular. Hal ini dikarenakan efek pencahayaan Diffuse dan Specular bergantung sepenuhnya kepada Normal Vektor dari titik tersebut.

Bump Mapping sebenarnya mirip dengan Texture Mapping, terutama cara wrapping-nya (pemetaan)[1]. Namun Bump Mapping mempunyai pemrosesan tambahan setelah itu. Oleh karena Bump Mapping memerlukan pemrosesan tambahan dibandingkan dengan Texture Mapping, maka akan dijelaskan beberapa hal tentang proses tersebut: Menghitung Perturbed Normal Vektor Mengaplikasikan Perturbed Normal Vektor

2.2. Menghitung Perturbed Normal VektorSementara texture mapping

menggunakan map apa adanya seperti yang diberikan oleh user, bump mapping memerlukan perhitungan tambahan terhadap map tersebut. Perhitungan tambahan ini dapat dilakukan sebelum atau saat melakukan perhitungan bump mapping. Perhitungan tambahan ini berguna untuk mengetahui seberapa kemiringan dari normal vektor yang harus diaplikasikan terhadap normal vektor dari titik tersebut.

Di dalam mengkalkulasi bump mapping, height map (map yang memberikan informasi tentang ketinggian) yang dibaca dari media penyimpanan tersebut harus dikonversi menjadi contour data terlebih dahulu. Contour data adalah data yang menunjukkan seberapa tinggi atau rendahnya sebuah titik pada sebuah permukaan. Informasi ketinggian dari contour data tersebut kemudian yang digunakan untuk menentukan seberapa kemiringan ”virtual” dari sebuah titik pada permukaan, yang nantinya digunakan untuk menentukan seberapa ”perturbed”-nya sebuah normal vektor pada sebuah titik pada permukaan. Kemiringan normal vektor dari yang seharusnya ini yang akan menghasilkan bagian-bagian permukaan gelap-terang yang lain dari yang seharusnya, sehingga menciptakan ilusi bahwa ada bagian-bagian dari permukaan yang naik turun [4]. Pada gambar 2. dan gambar 3. ini dijelaskan perbedaan antara pencahayaan normal dengan yang telah dipengaruhi Bump Mapping.

GAMBAR 2. Hasil Efek Pencahayaan Biasa

2 Pembuatan Bump Mapping Pada(Liliana)

Page 3: Tutorial Bump Mapping

Proceeding, Seminar Ilmiah Nasional Komputer dan Sistem Intelijen (KOMMIT 2006)Auditorium Universitas Gunadarma, Depok, 23-24 Agustus 2006 ISSN : 1411-6286

GAMBAR 3. Hasil Efek Pencahayaan Dengan Bump Mapping

Gambar yang dibaca dari media penyimpanan biasanya adalah gambar grayscale (hitam putih). Semakin putih suatu warna, diterjemahkan dengan semakin tinggi posisi titik di tempat tersebut. Sebaliknya, semakin gelap suatu warna, diterjemahkan dengan semakin dalam pula posisi titik di tempat tersebut. Contoh Height Map dapat dilihat pada gambar 4

GAMBAR 4. Contoh Height Map dari DirectX©

SDK

Dalam menyimpan sebuah normal map dari height map untuk setiap titik, diperhitungkan keempat buah pixel yang bersebelahan dengan pixel tersebut. Pada gambar 5 ditampilkan gambar pixel dalam Height Map yang diperbesar. Pada gambar 6. ditampilkan hasil hitungan Contour Data berdasarkan seberapa terang sebuah pixel dalam Height Map. Kemudian pada gambar 7. ditampilkan arah kemiringan Perturbed Normal Vektor untuk setiap pixel, secara horisontal dan vertikal.

GAMBAR 5. Contoh Height Map (Diperbesar)

1 0.5 0

0.3 0.8 1

0.8 0.4 0.7

GAMBAR 6. Contoh Contour Data Berdasarkan Height Map

GAMBAR 7. Perhitungan Normal Map

Tanda panah tersebut menunjukkan ke arah mana normal vektor tersebut termiringkan. Bila diperhatikan, maka tanda panah selalu mengarah dari terang menuju ke gelap. Efek dari tanda panah tersebut dapat diperhatikan dalam gambar 8.

GAMBAR 8. Normal Vektor yang ter-perturbed

Dengan miringnya Normal Vektor, hal tersebut akan mengakibatkan proses perhitungan gelap-terang dari efek pencahayaan Diffuse dan Specular akan berubah, sehingga akan menimbulkan ilusi ada bagian-bagian permukaan yang timbul dan tenggelam.

Pembuatan Bump Mapping Pada 3(Liliana)

Normal vektor yang normal Normal vektoryang ter-perturbed

Page 4: Tutorial Bump Mapping

Proceeding, Seminar Ilmiah Nasional Komputer dan Sistem Intelijen (KOMMIT 2006)Auditorium Universitas Gunadarma, Depok, 23-24 Agustus 2006 ISSN : 1411-6286

Kadang-kadang, oleh karena dalam mendapatkan sebuah perturbed normal vektor diperlukan proses perhitungan yang cukup rumit, seringkali dilakukan proses perhitungan di muka terhadap height map tersebut, sehingga menghasilkan sebuah perturbed normal map. Perturbed normal map adalah sebuah map yang menyimpan nilai kemiringan normal vektor dalam bentuk warna dengan cara mengkonversinilai x, y, z menjadi r, g, b dengan menggunakan rumus seperti pada persamaan 1.

(1)

(2.1)Bila permukaan dari height map itu

rata (contoh: semuanya ”dataran tinggi” atau semuanya ”dataran rendah”), normal map tersebut mengarah ke sumbu z. Itulah sebabnya mengapa perturbed normal map kebanyakan berwarna kebiru-biruan. Semua jenis arah dari normal vektor dapat disimpan di dalam sebuah pixel rgb, asal normal vektor tersebut sudah dinormalisasi.

2.3. Teknik Wrapping terhadap Obyek Quadric Secara Umum

Untuk melakukan proses wrapping kepada obyek-obyek quadric tidaklah semudah melakukan proses wrapping terhadap bidang datar. Hal ini dikarenakan beberapa obyek yang memiliki bentuk yang kompleks, tidaklah mudah untuk mencari rumus untuk melakukan wrapping terhadap obyek tersebut. Jadi dalam hal ini, cara untuk membungkuskan map kepada obyek-obyek tersebut adalah dengan membungkuskan sebuah bola terhadap benda-benda tersebut. Ilustrasi Sphere Wrapping tersebut dijelaskan dalam gambar 9 berikut.

GAMBAR 9. Ilustrasi Sebuah Paraboloid di dalam Sphere

Dengan membungkuskan sebuah obyek di dalam Sphere, setiap titik yang hendak dicari map nya pada obyek, ditembakkan menurut Normal Vektornya sampai mengenai Sphere pembungkus. Posisi pada sphere tersebut yang kemudian dikonversikan ke koordinat map.

3. FLOWCHART

4 Pembuatan Bump Mapping Pada(Liliana)

Page 5: Tutorial Bump Mapping

Proceeding, Seminar Ilmiah Nasional Komputer dan Sistem Intelijen (KOMMIT 2006)Auditorium Universitas Gunadarma, Depok, 23-24 Agustus 2006 ISSN : 1411-6286

GAMBAR 10. Flowchart Mencari Normal

GAMBAR 11. Flowchart mencart Perturbed Normal Vektor

4. UJI COBA

Pembuatan Bump Mapping Pada 5(Liliana)

Page 6: Tutorial Bump Mapping

Proceeding, Seminar Ilmiah Nasional Komputer dan Sistem Intelijen (KOMMIT 2006)Auditorium Universitas Gunadarma, Depok, 23-24 Agustus 2006 ISSN : 1411-6286

Tabel 5.1. Pengujian Bump Mapping dengan Depth Control Ekstrim Negatif.

No Gambar Deskripsi

1

Gambar bump mapping yang dipakai, dicoba diambil yang tidak

tergantung oleh orientasi.

2

Hasil render bump mapping tersebut pada sebuah Quad berwarna biru. Nampak lubang-lubang yang disebabkan oleh bump mapping.

3

Hasil render bump mapping tersebut pada sebuah Sphere berwarna merah. Nampak bump mapping tersebut menghasilkan lubang-lubang seperti pada bola golf.

4

Hasil render bump mapping pada sebuah Hyperboloid Single Sheet hijau. Sekalipun berbeda orientasi, namun hasil yang diharapkan dari bump mapping lebih

nampak.

5

Hasil render bump mapping pada sebuah Hyperboloid Double Sheet hijau. Nampak bahwa perbedaan orientasi dari Sphere wrapping dengan orientasi dari Hyperboloid, menjadikan hasil rendering kurang maksimal.

6

Hasil render bump mapping pada sebuah Paraboloid nila. Pada pengujian ini, perbedaan oerientasi hampir tidak menimbulkan permasalahan pada

rendering object Paraboloid.

7

Hasil render bump mapping pada sebuah Ellipsoid kuning.

5. KESIMPULAN

Dari proses mengerjakan penelitian ini, dapat diambil beberapa kesimpulan sebagai berikut: Bump mapping tidak dapat diaplikasikan

pada permukaan yang melengkung dengan baik. Hal tersebut dikarenakan oleh metode Sphere mapping yang digunakan untuk menangani seluruh proses mapping untuk benda-benda Quadric (bidang selain Quad) menyebabkan bump mapping tersebut termulurkan dan menjadikan hasil wrapping tidak akurat. Agar dapat diaplikasikan dengan baik, bump mapping membutuhkan perbedaan ketinggian yang besar pada height map antara pixel yang satu dengan pixel yang bersebelahan dengannya. Kejadian termulurkannya bump mapping menyebabkan perbedaan ketinggian tersebut mengecil.

Agar efek dari bump mapping terlihat dengan jelas, memerlukan inputan yang baik dari sistem pewarnaan benda dan cahaya. Setelah dilakukan pengujian, efek bump mapping dapat terlihat lebih jelas bila dilakukan usaha-usaha berikut ini:o Mendekatkan sumber cahaya ke obyek

yang memiliki bump mapping.o Mengurangi intensitas efek pencahayaan

Ambient pada sumber cahaya dan obyek, dan sebaliknya, menambah intensitas efek pencahayaan Diffuse dan Specular.

6 Pembuatan Bump Mapping Pada(Liliana)

Page 7: Tutorial Bump Mapping

Proceeding, Seminar Ilmiah Nasional Komputer dan Sistem Intelijen (KOMMIT 2006)Auditorium Universitas Gunadarma, Depok, 23-24 Agustus 2006 ISSN : 1411-6286

o Meletakkan sumber cahaya pada sudut kemiringan yang besar terhadap obyek (jangan meletakkan sumber cahaya tegak lurus di atas obyek yang akan dirender, terutama obyek Quad).

Efek pencahayaan diffuse dan specular kurang nampak pada obyek-obyek yang lengkung permukaannya landai (tidak tajam) seperti paraboloid dan hyperboloid.

6. DAFTAR PUSTAKA

[1] Bump Mapping. (2006). From Wikipedia – The Free Encyclopedia. 15 Mei 2006. URL: http://en.wikipedia.org/wiki/Bump_mapping

[2] Egerton, P. A., Hall (n.d.), W. S. Computer Graphics Mathematical First Steps. p. 285- 286

[3] Normal Mapping. (2006). From Wikipedia – The Free Encyclopedia. 3 April 2006. URL: http://en.wikipedia.org/wiki/Normal_mapping

[4] Surdulescu, Razvan (1999). CG Bumpmapping. 24 Mei 2006. URL: http://www.gamedev.net/columns/hardcore/cgb

Pembuatan Bump Mapping Pada 7(Liliana)