Objek 3D pada open GL merupakan objek yang lebih hidup dibandingkan
objek 2D. Namun permukaan objek 3D yang polos membuat 3D cenderung kurang
menarik dan kaku. Untuk membuat objek yang lebih hidup pada OpenGL diperlukan
suatu texture mapping. Mapping ialah sebuah bentuk kegiatan untuk melakukan
pewarnaan atau memetakan permukaan geometri pada objek 3D. Sedangkan Maps
adalah bentuk gambar atau warna yang digunakan untuk melapisi objek 3D pada
saat dilakukan mapping. Dengan kata lain pemetaan texture merupakan pemberian
sebuah gambar pada permukaan objek sehingga objek akan tampak realistis.
Texture mapping memungkinkan untuk menaruh gambar pada geometric primitive
tersebut dan sekaligus mengikuti transformasi yang diterapkan kepada objek.
Contohnya apabila sebuah objek kubus tanpa gambar diberi texture bebatuan pada
permukaannya, maka objek tersebut akan tampak memiliki tekstur kasar seperti
batu. Texture pada permukaan objek dapat dilihat dari berbagai perspective yang
berbeda. Beberapa contoh texture pada objek sebagai berikut:
Contoh 1. Tekstur Objek 3D |
Filter
pembesaran texture berpengaruh pada bagaimana OpenGL melakukan proses
rasterisasi texture saat texture ditampilkan pada jumlah pixel yang lebih besar
atau lebih kecil dari ukuran sebenarnya. Pada Nearest Filtered Texture, texture
yang ditampilkan merupakan hasil pemilihan nilai pixel pada posisi terdekat.
Sedangkan dengan Linear Interpolation Texture (LPT), texture yang ditampilkan
merupakan hasil interpolasi linear antara pixel-pixel disekitarnya. Pada
Mipmapped Texture(MPT), interpolasi linear dilakukan pada awal secara offline
sehingga dihasilkan banyak texture dengan ukuran dari yang kecil hingga yang
besar. LPT dan MPT akan menghasilkan kira-kira hasil yang sama dengan LPT akan
sedikit lebih lambat dari MPT walaupun memori yang digunakan jauh lebih kecil.
Namun
terkadang efek texture yang diinginkan dapat diperoleh dengan
mencampur lebih dari satu texture. Proses pencampuran lebih dari satu texture
disebut dengan istilah blending. Salah satu efek blending yang paling sederhana
adalah dengan memblending texture dengan warna. Fungsi yang
digunakan pada proses blending adalah glEnable(GL_BLEND).
Implementasi texture pada objek
grafika computer terdapat pada, animasi seperti toy story maupun game animasi.
Konsep
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. Beberapa hal yang perlu diperhatikan dalam pemberian
tekstur, diantaranya:
v Menentukan
tekstur
1. Membaca atau membangkitkan tekstur
2. Menandai tekstur
3. Mengenablekan tekstur
v Menandai
koordinat tekstur pada vertek
v Menentukan
parameter tekstur
Teknik-teknik
Realisme dalam Kompuer Grafik
1. . Tekstur-Maps
Maps
berwujud gambar tekstur 2D yang dituangkan ke permukaan geometri/objek untuk
membuat penampilan objek tersebut tampak halus untuk detail permukaannya. Pada
pengembangan grafik realisme tingkat tinggi diperlukan lebih banyak lapisan
tekstur, agar hasil mapping mendekati kesempurnaan. Sebuah tekstur maps yang
diterapkan (dipetakan) biasanya dipakai untuk permukaan bentuk objek polygon,
proses ini mirip dengan menerapkan texture pada kertas berpola kotak putih yang
polos.Kegiatan texture mapping untuk texture maps dapat didefinisikan sebagai
sebuah metode untuk menambahkan detail tekstur permukaan (bitmap atau raster
image), atau warna yang dihasilkan komputer grafis atau model 3D. Penerapannya
pada grafis 3D dirintis oleh Dr Edwin Catmull pada proyek Ph.D tesisnya tahun
1974.
2. Environment-Maps
Environtment-Maps
ialah maps yang memiliki pewarnaan dengan banyak gambar (tekstur) yang merekam
refleksi global dan pencahayaan pada objek. Gambar-gambar ini difungsikan
sebagai resampled selama proses rendering, dengan tujuan untuk mengekstrak, dan
melihat informasi spesifik yang kemudian diterapkan sebagai tekstur objek pada
permukaan geometri. Maps ini sering disebut reflection yang berarti tekstur
pencahayaan dari benda-benda luar di sekitar objek, maps jenis ini sangat cocok
untuk benda-benda yang memiliki tingkat refleksi yang sangat tinggi, seperti
kaca, dan lain sebagainya.Environmet mapping pada maps ini memiliki definisi
yaitu metode yang efisien untuk simulasi kompleks permukaan bercermin melalui suatu
gambar tekstur. Tekstur yang digunakan bekerja untuk menyimpan gambar dari
lingkungan sekitar objek yang diberikan. Ada beberapa cara untuk menyimpan
tekstur lingkungan sekitar objek, salah satu metode yang paling umum adalah
metode Spherical Environment Mapping, di mana dalam metode ini suatu tekstur
yang berisi citra lingkungan sekitar akan direfleksikan sebagai bola cermin,
dan kemudian dimasukkan sebagai tekstur objek yang diberi maps.
3. Bump-Maps
Bump maps
adalah maps yang memfokuskan permukaan tekstur pada objek, dengan menggunakan
maps ini, permukaan geometri/objek akan terlihat berbeda dan unik, tidak
seperti objek-objek yang memiliki permukaan normal pada umumnya. Rumus
pekerjaan dari maps ini akan menerapkan bidang untuk intensitas dalam maps yang
menunjukkan tingkat rendah tingginya suatu permukaan objek, fungsi maps ini
akan mengacaukan permukaan objek yang normal, sehingga menimbulkan kesan unik
ketika hasilnya sudah di-render.Untuk kegiatannya, bump mapping adalah sebuah
teknik grafis komputer di mana pada setiap pixel untuk permukaan normal objek,
akan diberikan efek tidak halus dan diterapkan sebelum melakukan perhitungan
iluminasi. Hasilnya, objek yang diberi maps akan lebih kaya, serta lebih rinci
untuk representasi permukaan objek dan lebih mirip pada permukaan alam.
4. Normal-Maps
Maps ini
serupa dengan bump-maps, perbedaannya adalah fungsionalitas yang ada pada
normal maps, maps ini secara alami akan menghasilkan bentuk permukaan yang
tidak halus tanpa menggunakan lebih banyak penambahan atau pengurangan poligon
pada objek.Dalam dunia grafik komputer 3D, normal mapping pada maps ini bisa
disebut " Dot3 bump mapping ", definisinya adalah sebuah teknik yang
digunakan untuk ”berpura-pura” menambahkan efek tidak halus pada permukaan
objek. Kenapa disebut ”berpura-pura” ? Hal ini disebabkan karena mapping ini
bekerja dengan menambahkan rincian tidak halus pada permukaan objek tanpa
menggunakan poligon. Normal mapping biasanya diakurasi sebagai sebuah gambar
RGB yang berhubungan dengan koordinat X, Y, dan Z dari permukaan normal suatu
objek. Penggunaan umum teknik ini adalah untuk lebih meningkatkan tampilan dan
detail dari model poligon rendah dengan menghasilkan peta normal dari model
poligon yang tinggi.
5. Shadow-Maps
Shadow maps yaitu maps yang menghasilkan suatu bayangan tekstur pada objek
dengan menangkap siluet objek tersebut dari sumber cahaya yang terlihat. Maps
ini sangat sering dipakai oleh pengembang grafik 3D, karena efek yang
dihasilkan seolah-olah menunjukkan objek tersebut sangat realistis, dan
disebabkan adanya bayangan dari sumber cahaya yang ada.Fungsi kerjanya yang
berkonsep shadow mapping adalah proses di mana bayang-bayang ditambahkan ke
grafik komputer 3D. Konsep ini diperkenalkan oleh Lance Williams pada tahun
1978, dalam sebuah makalah yang berjudul "Casting curved shadows on curved
surfaces". Sejak saat itu, teknik ini telah digunakan baik dalam
pra-render adegan, dipakai secara realtime, atau bahkan diterapkan ke banyak
konsol dan PC high-end game.
Berikut ini adalah macam-macam tekstur:
·
GL_TEXTURE_1D: semua gambar dalam tekstur ini 1-dimensi. Memiliki lebar, tapi
tidak memiliki ketinggian atau
kedalaman.
·
GL_TEXTURE_2D: semua gambar dalam tekstur ini 2-dimensi. Memiliki lebar
dan tinggi, namun tidak punya kedalaman.
·
GL_TEXTURE_3D: semua gambar dalam tekstur ini 3-dimensi. Memiliki lebar,
tinggi, dan kedalaman.
·
GL_TEXTURE_RECTANGLE: Gambar dalam tekstur
ini (hanya satu gambar pada mipmapping) 2-dimensi.
Koordinat tekstur yang digunakan untuk
tekstur ini tidak dinormalisasi.
·
GL_TEXTURE_BUFFER: Gambar dalam tekstur
ini (Hanya satu gambar ada mipmapping) 1-dimensi. Penyimpanan data
berasal dari Buffer Object.
·
GL_TEXTURE_CUBE_MAP: terdapat 6 set gambar 2D berbeda, dengan
ukuran yang sama. Berbentuk seperti 6
sisi kubus.
·
GL_TEXTURE_1D_ARRAY: Gambar dalam tekstur ini semua
1-dimensi. Namun,
berisi beberapa set gambar 1-dimensi, semua dalam
satu tekstur. Panjang
array bagian dari ukuran tekstur itu.
·
GL_TEXTURE_2D_ARRAY: Gambar dalam tekstur ini semua
adalah 2-dimensi.
Namun, mengandung beberapa set gambar 2 dimensi, semua dalam satu tekstur.
Panjang array bagian
dari ukuran tekstur itu.
·
GL_TEXTURE_CUBE_MAP_ARRAY: Gambar dalam tekstur ini merupakan
pemetaan kubus. Berisi beberapa set peta kubus
yang kesemuanya berada dalam sebuah
tekstur. Panjang Array * 6 (jumlah sisi kubus) merupakan
bagian dari ukuran tekstur.
·
GL_TEXTURE_2D_MULTISAMPLE: Gambar dalam tekstur
ini (hanya satu gambar ada mipmapping) adalah
2-dimensi. Setiap pixel dalam
gambar ini berisi beberapa sampel
bukan hanya satu nilai.
·
GL_TEXTURE_2D_MULTISAMPLE_ARRAY: Menggabungkan 2D array dan jenis multisample
2D. Tidak ada mipmapping.
Komentar ini telah dihapus oleh administrator blog.
BalasHapus