- Back to Home »
- Texture pada Open GL
Posted by : Yaqut tina
Selasa, 30 April 2013
A.
Sejarah Texture Modelling
Pemetaan
Tekstur – Menurut Alan Watt (Komputer Grafis 3D, bagian 7.3), “Pemetaan Tekstur
adalah salah satu perkembangan pertama menuju membuat gambar tiga dimensi benda
yang lebih menarik dan ternyata lebih kompleks.”
Secara umum, pemetaan tekstur adalah
proses “melukis” sebuah gambar ke permukaan dalam sebuah model. Karena gambar
yang telah diberikan texture itu bisa sangat kompleks – tetapi biaya texture
mapping gambar kompleks persis sama dengan texture mapping gambar sederhana.
Penggunaan tekstur-pemetaan memungkinkan bentuk yang cukup sederhana untuk
diberikan penampilan yang sangat realistis. Misalnya, dinding planar dapat
memiliki tekstur batu dan dipetakan ke model untuk gambar yang sangat
meyakinkan dari tiga-dimensi dinding batu (Contohnya, game check out 3D
permainan komputer yang sangat baik dalam penggunaan texture mapping).
B.
Konsep
Texture mapping
Texturing merupakan proses mewarnai, memberi
tekstur, atau memberi efek material pada sebuah model 3D. Texture mapping adalah
teknik shading untuk pengolahan gambar yang memetakan sebuah fungsi pada
permukaan tiga dimensi dalam scene. Fungsi yang dipetakan mencakup satu
dimensi, dua dimensi, dan tiga dimensi dan dapat digambarkan sebagai array atau
fungsi matematika atau gambar.
- Bump mapping
untuk
memperjelas karakteristik permukaan yang bergelombang.
Bump mapping merupakan suatu proses dimana tekstur (texture), atau texture map diaplikasikan pada suatu permukaan dalam sebuah program grafis komputer tiga dimensi (3D) untuk membuat detail yang lebih baik pada permukaan tersebut. Bump map biasanya digunakan untuk menambahkan detail pada suatu permukaan, seperti benjolan, bubungan, goresan dan detail lainnya yang mempengaruhi kemulusan suatu permukaan. Penggunaan pemetaan (mapping) ini memungkinkan objek yang dibuat oleh program komputer grafis biasanya dibentuk melalui penggunaan tardisional bump map, normal, atau parallax map.
- Transparency mapping
untuk
mengatur intensitas cahaya permukaan tembus pandang.
Pemetaan Transparansi adalah metode lain menggunakan Bitmap untuk membuat bahan. Perbedaannya adalah bahwa ini adalah menggunakan alpha channel untuk menyingkirkan bagian yang tidak diinginkan dari Bitmap, hanya menyimpan bagian yang tertutup oleh alpha channel. Ini disebut topeng.
- Specularity mapping untuk mengubah kehalusan permukaan
-
Illumination maaping untuk memodelkan distribusi cahaya yang datang dari berbagai arahNamun dari semua itu yang paling penting adalah Geometrical mapping, geometrical mapping secara keseluruhan ditentukan dengan dengan transformasi tiga dimensi terhadap kamera, tansformasi model yang menggambarkan geometri scene dan pemberian parameter pada permukaan dengan tujuan memetakan tekstur ke permukaan.
Texture
Mapping
Texture mapping merupakan teknik pemetaan sebuah tekstur pada pola
gambar wireframe, dimana wireframe yang telah dibuat akan ditampilkan memiliki
kulit luar seperti tekstur yang diinginkan.
Reflection Mapping
Reflection Mapping adalah teknik yang dapat membuat gambar/obyek
menjadi terlihat semakin nyata dengan cara merefleksikan lingkungan sekitar di
permukaan obyek. Dua metode Reflection Mapping yang dikenal adalah Chrome
Mapping dan Environment Mapping. Pada metode Chrome Mapping, refleksi/pantulan
lingkungan sekitar obyek direpresentasikan dengan gambar yang dikaburkan
(blurred) seperti halnya melihat pantulan pada benda-benda logam. Metode ini
memberikan kesan mengkilap pada obyek. Metode lainnya, yaitu metode Environment
Mapping merepresentasikan lingkungan sekitarnya dengan benar-benar
“mencerminkan” lingkungannya. Tidak seperti metode Chrome Mapping yang hanya
membuat obyek sekedar mengkilap, Environment Mapping memberikan kesan
seolah-olah obyek tersebut merupakan “cermin” dari lingkungan sekitarnya.
Environment Mapping
Di bidang komputer grafik, Environment Mapping merupakan teknik untuk
mensimulasikan sebuah obyek agar dapat merefleksikan lingkungan sekitarnya.
Teknik ini pertama kali diajukan oleh Blinn dan Newell pada tahun 1976. Pada
bentuk yang paling sederhana, teknik ini biasanya memakai obyek yang
permukaannya terlihat seperti krom. Konsep dari teknik ini ialah menggunakan
beberapa gambar yang diambil dari lingkungan sekitarnya ataupun gambar rekaan
untuk dijadikan lingkungan yang akan direfleksikan oleh obyek.
Ada beberapa teknik Environment Mapping, antara lain Sphere Mapping,
Dual Paraboloid Mapping, dan Cube Mapping. Adapun yang akan dijelaskan lebih
lanjut ialah teknik Cube Mapping
a)
Sphere
Mapping
Sphere Mapping merupakan salah satu tipe dari
Environment Mapping, di mana irradiance image’ ekuivalen dengan apa yang
mungkin terlihat pada sphere (bola) saat dilihat dengan proyeksi ortografik’.
Walaupun Sphere Mapping terasa
meyakinkan, teknik ini belum sempurna benar. ldealnya, jika obyek yang akan
direfleksikan berada dekat dengan obyek yang akan merefleksikan, refleksi yang
didapat akan terlihat berbeda ketika dilihat dari titik yang berbeda pula.
Tetapi, hal itu tidak akan terjadi jika menggunakan Sphere Mapping. Hasil dari
Sphere Mapping hanya akan benar jika semua obyek yang akan direfleksikan berada
jauh dari obyek yang merefleksikan. Sehingga teknik ini membutuhkan gambar yang
berbeda untuk setiap sudut pandang yang berbeda.
Sebagai akibat dari tidak
tertutupnya semua permukaan obyek dengan gambar tekstur, teknik inijuga kadang
menimbulkan “lubang” pada pinggiran obyek. Berikut gambar hasil Sphere Mapping
dimana terlihat adanya “lubang” yang terbentuk.
b)
Dual
Paraboloid Mapping
Dual Paraboloid Mapping dapat mengatasi
keterbatasan yang ada pada Sphere Mapping, tetapi teknik ini lebih rumit sebab
membutuhkan 2 unit tekstur atau 2 tahap rendering. Keuntungan dari Dual
Paraboloid Mapping yaitu :
1. Dapat meng-capture lingkungan secara utuh.
2. Berbasis linear.
3. Cocok untuk hardware yang memiliki dual-texture,
contohnya RIVATNT.
4. View independent.
c)
Cube Mapping
Cube Mapping sebagai bagian dari metode Environment
Mapping merepresentasikan lingkungan sekitarnya dengan cara”menempelkan” enam buah gambar-yang UerUeaa di
keenam sisi obyek. Hal ini membuat obyek seolah memiliki enam sisi pantul3,
yaitu depan, belakang, kanan, kiri, atas, dan bawah.
Cube Mapping muncul sebagai pengganti dua metode
mapping sebelumnya. Hal-hal yang menjadi kelemahan dua metode terdahulu seperti
ketergantungan sudut pandang (viei dependency), keterbatasan cangkupan tekstur
(warping & distortion), dan kerumitan penerapan menjadi alasan beralihnya
teknik mapping ke Cube Mapping. Dengan mentransformasikan tekstur ke dalam enam
sisi kubus, Cube Mapping lebih menawarkan kemudahan implementasi karena
pantulan pada permukaan obyek cukup dikonsentrasikan di keenam sisi obyek.
Tidak seperti Dual Paraboloid Mapping, teknik Cube
Mapping hanya membutuhkan satu unit tekstur4 dan satu tahap rendering. Selain
itu, teknik Cube Mapping tlAal mengurangi resolusi gambar (teknik Sphere
Mapping dan Dual Paraboloid Mapping dapat mengurangi resolusi gambar sampai 78%
dari resolusi semula). Secara konsep, Cube Mapping memang lebih “fo fhe point’
dibandingkan dengan dua teknik lainnya. Namun, proses texturing pada Cube
Mapping membutuhkan kemampuan yang lebih agar dapat mengakses enam gambar
secara bersamaan.
d)
Forward
Mapping
Dispesifikasikan dengan fungsi linier parametric. Object-to-image space mapping dilakukan dengan
transformasi: viewing – projection. Kekurangan:
ukuran texture patch seringkali tidak sesuai dengan batas pixel, sehingga harus
ada perhitungan untuk pemotongan. Inverse
Mapping. Pada prakteknya, inverse
mapping lebih sering digunakan. Metoda:
Interpolasi bilinear dan Memanfaatkan permukaan antara Inverse Mapping dengan Interpolasi Bilinear. Dapat dibayangkan sebagai transformasi dari 2D
screen space (x,y) ke 2D texture space (u,v). Operasi image warping, dimodelkan dengan:
-
The Inverse
Transform
Hubungan antara titik sudut poligon dengan
koordinat pada texture map dispesifikasikan pada fase pemodelan. Dengan empat
titik sudut quadrilateral, bisa didapat 9 koefisien (a,b,c,d,e,f,g,h,i) ->
Gaussian elimination.
-
Interpolasi
Bilinear pada Screen Space
• Tiap koordinat vertex punya koordinat texture
(u’,v’,q).
• Yang diinterpolasikan: (u’,v’,q) – (u,v) tidak
berubah secara linear thd (x,y)
• (u,v) = (u’/q,v’/q)
Inverse Mapping dengan Penggunaan Permukaan Antara
·
Bisa
digunakan jika belum ada hubungan antara koordinat vertex dan texture.
Digunakan untuk menentukan hubungan tsb
·
Two-part
mapping: Texture dipetakan ke permukaan antara (biasanya non-planar) kemudian
dipetakan ke objek (3D-to-3D mapping)
C. JENIS - JENIS TEXTURE PADA OPENGL
a.
GL_TEXTURE_1D : Gambar pada texture ini
semuanya 1 dimensi.Mempunyai lebar tetapi tidak memiliki tinggi atau kedalaman
b.
GL_TEXTURE_2D : Gambar pada texture ini
semuanya 2 dimensi.Mempunyai lebar dan tinggi tetapi tidak memiliki kedalaman
c.
GL_TEXTURE_3D : Gambar pada texture ini
semuanya 3 dimensi.Mempunyai lebar, tinggi dan kedalaman.
d.
GL_TEXTURE_RECTANGLE : Gambar dalam
teksture ini 2 dimensi (hanya satu gambar,tidak memiliki
multimapping).Koordinat teksture digunakan untuk teksture yang tidak dengan
titik yang sebenarnya.
e.
GL_TEXTURE_BUFFER: Gambar dalam teksture
ini 1 dimensi (hanya satu gambar,tidak memiliki multimapping).Penyimpanan untuk
data ini dating dari sebuah buffer object.
f.
GL_TEXTURE_CUBE_MAP : Terdapat 6 sisi
dari gambar 2D ,dan semua memiliki
ukuran yang sama
g.
GL_TEXTURE_1D_ARRAY : Gambar di teksture
ini semuanya 1 dimensi.Bagaimanapun terdiri dari banyak set dari 1 gambar
dimensi, semuanya dengan satu teksture. Panjang array adalah bagian dari ukuran
teksture
h.
GL_TEXTURE_2D_ARRAY : Gambar di teksture
ini semuanya 2 dimensi.Bagaimanapun terdiri dari banyak set dari 2 gambar
dimensi, semuanya dengan satu teksture. Panjang array adalah bagian dari ukuran
teksture.
i.
GL_TEXTURE_CUBE_MAP_ARRAY : Gambar di
teksture ini semuanya peta kubus. Terdiri dari banyak set peta kubus,semuanya
dengan satu teksture.Panjang array * 6 (angka dari sisi kubus) adalah bagian
dari ukuran teksture
j.
GL_TEXTURE_2D_MULTISAMPLE : Gambar di
teksture ini 2 dimensi (hanya satu gambar,tidak ada multimapping).Kebanyakan
pixel di gambar ini terdiri dari banyak contoh di dalamnya hanya satu nilai
k.
GL_TEXTURE_2D_MULTISAMPLE_ARRAY : Kombinasi
2D array dan jenis 2D multisample.tidak ada
multimapping
Daftar Pustaka
Rosyid,
Harist Ar. 2010. Modul 10 Praktikum
Grafika Komputer. Malang: Teknik Elektro.
ijin sharing blog Opengl, moga2 blog ini bisa bermanfaat, ada 100 artikel lebih tentang pemrograman grafik dan game, juga dilengkapi dengan source code yang bisa di download
BalasHapuswww.heriadyblog.blogspot.co.id
Trims