Pengertian Dan Manfaat Bump Mapping Pada Obyek Quadric
Perkembangan teknologi komputer grafis yang pesat menyebabkan banyak pembuatan acara-acara aplikasi grafis yang mampu menghasilkan gambar-gambar realistis, terutama gambar tiga dimensi yang photorealistic (sekualitas foto). Untuk menciptakan gambar yang photorealistic, perlu memperhitungkan imbas-efek pencahayaan. Dengan demikian, dibutuhkan mampu menghasilkan gambar yang mendekati gambar aslinya.
Obyek yang mampu dimodelkan adalah obyek parametrik dan obyek mesh. Namun obyek yang lebih efisien untuk digunakan dalam pengerjaan grafis yakni obyek parametrik. Hal ini disebabkan alasannya adalah obyek-obyek parametrik tersebut lebih mudah dimodelkan dan dimanipulasi bentuknya. Selain itu waktu yang dibutuhkan untuk merender cukup singkat. Salah satu keterbatasan pemodelan obyek parametrik yakni bentuk yang tidak kompleks. Oleh sebab itu maka banyak penelitian dilakukan untuk memanipulasi bentuk obyek parametrik tersebut agar menjadi lebih beragam.
Manipulasi yang paling sering dilakukan kepada obyek parametrik yaitu tunjangan tekstur. Ada banyak cara pembentukan tekstur, salah satunya ialah bump mapping. Bump mapping ialah suatu tekstur kasar pada sebuah permukaan. Pemodelan bump mapping dilakukan dengan cara membentuk sebuah peta tekstur apalagi dahulu. Setelah terbentu peta tekstur barulah dilakukan pemetaan ke permukaan obyek.
Bump Mapping
Walaupun mempunyai 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.
Gambar Penambahan Tekstur Mapping(kiri) dengan Bump Mapping(kanan)
Dengan penambahan bump mapping, akan tercipta suatu efek pencahayaan di mana permukaan dari obyek tersebut yang sebelumnya mulus, akan menjadi seperti tampak bergelombang dan berlekuk-lekuk. Efek tersebut didapatkan dari ”memanipulasi” Normal Vektor (Perturbed Normal Vektor Normal Vektor yang dimiringkan). Dengan memanipulasi normal Vektor dari suatu titik yang spesifik, dapat mengganti intensitas pencahayaan yang seharusnya didapatkan oleh titik tersebut, yang berasal dari imbas pencahayaan Diffuse dan Specular. Hal ini dikarenakan imbas 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 memiliki pemrosesan suplemen sehabis itu. Oleh karena Bump Mapping membutuhkan pemrosesan suplemen ketimbang Texture Mapping, maka akan diterangkan beberapa hal wacana proses tersebut:
- Menghitung Perturbed Normal Vektor
- Mengaplikasikan Perturbed Normal Vektor
Menghitung Perturbed Normal Vektor
Sementara texture mapping menggunakan map apa adanya mirip yang diberikan oleh user, bump mapping memerlukan perkiraan tambahan kepada map tersebut. Perhitungan tambahan ini dapat dijalankan sebelum atau ketika melakukan perkiraan bump mapping. Perhitungan komplemen ini berguna untuk mengenali seberapa kemiringan dari normal vektor yang harus diaplikasikan kepada wajar vektor dari titik tersebut.
Di dalam mengkalkulasi bump mapping, height map (map yang memperlihatkan isu ihwal ketinggian) yang dibaca dari media penyimpanan tersebut mesti dikonversi menjadi contour data apalagi dulu. Contour data adalah data yang memberikan seberapa tinggi atau rendahnya sebuah titik pada suatu permukaan. Informasi ketinggian dari contour data tersebut kemudian yang dipakai untuk memilih seberapa kemiringan ”virtual” dari suatu titik pada permukaan, yang nantinya dipakai untuk memilih seberapa ”perturbed”-nya sebuah normal vektor pada suatu titik pada permukaan. Kemiringan normal vektor dari yang semestinya ini yang hendak menciptakan bagian-bab permukaan gelap-terang yang lain dari yang sebaiknya, sehingga menciptakan delusi bahwa ada bagian-bagian dari permukaan yang naik turun.
Gambar Hasil Efek Pencahayaan Biasa
Gambar 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 kawasan tersebut. Sebaliknya, makin gelap suatu warna, diterjemahkan dengan makin dalam pula posisi titik di tempat tersebut. Contoh Height Map dapat dilihat pada gambar
Gambar Contoh Height Map dari DirectX© SDK
Dalam menyimpan suatu normal map dari height map untuk setiap titik, dipertimbangkan 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 menurut seberapa terperinci suatu pixel dalam Height Map. Kemudian pada gambar 7. ditampilkan arah kemiringan Perturbed Normal Vektor untuk setiap pixel, secara horisontal dan vertikal.
Tanda panah tersebut menawarkan 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.
Gambar Normal Vektor yang ter-perturbed
Dengan miringnya Normal Vektor, hal tersebut akan menimbulkan proses perhitungan gelap-jelas dari efek pencahayaan Diffuse dan Specular akan berganti, sehingga akan menimbulkan delusi ada bagian-bab permukaan yang timbul dan tenggelam.
Kadang-kadang, oleh alasannya adalah dalam menerima suatu perturbed wajar vektor diperlukan proses perhitungan yang cukup rumit, terkadang dikerjakan proses perhitungan di muka terhadap height map tersebut, sehingga menciptakan suatu perturbed wajar map. Perturbed normal map yakni suatu map yang menyimpan nilai kemiringan normal vektor dalam bentuk warna dengan cara mengkonversi nilai x, y, z menjadi r, g, b dengan memakai rumus mirip pada persamaan.
Bila permukaan dari height map itu rata (pola: seluruhnya ”dataran tinggi” atau semuanya ”dataran rendah”), normal map tersebut mengarah ke sumbu z. Itulah sebabnya mengapa perturbed wajar map pada umumnya berwarna kebiru-biruan. Semua jenis arah dari normal vektor dapat disimpan di dalam sebuah pixel rgb, asal wajar vektor tersebut telah dinormalisasi.
Teknik Wrapping kepada Obyek Quadric Secara Umum
Untuk melaksanakan proses wrapping terhadap obyek-obyek quadric tidaklah semudah melaksanakan proses wrapping terhadap bidang datar. Hal ini dikarenakan beberapa obyek yang memiliki bentuk yang kompleks, tidaklah gampang untuk mencari rumus untuk melakukan wrapping terhadap obyek tersebut. Makara dalam hal ini, cara untuk membungkuskan map kepada obyek-obyek tersebut yakni dengan membungkuskan sebuah bola terhadap benda-benda tersebut. Ilustrasi Sphere Wrapping tersebut diterangkan dalam gambar 9 berikut.
Gambar Ilustrasi Sebuah Paraboloid di dalam Sphere
Dengan membungkuskan sebuah obyek di dalam Sphere, setiap titik yang akan dicari map nya pada obyek, ditembakkan menurut Normal Vektornya hingga perihal Sphere pembungkus. Posisi pada sphere tersebut yang kemudian dikonversikan ke koordinat map.
FLOWCHART
Gambar Flowchart mencart Perturbed Normal Vektor