TEKNIK CUBE MAPPING DENGAN OPENGL

dokumen-dokumen yang mirip
ANALISA TEKNIK CUBE MAPPING BERBASIS OPENGL

BAB III ANALISA DAN PERANCANGAN

BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM

BAB 2 DASAR TEORI. Pada bagian ini akan dibahas tentang teori dasar dari grafika komputer, yang

PEMBENTUKAN TRANSFORMASI OBJEK 2 DIMENSI DENGAN OPENGL

ALGORITMA PERPOTONGAN OBJEK

BAB 1. PENDAHULUAN 1.1 Latar Belakang 1.2 Rumusan Masalah 1.3 Tujuan

Contoh: tanpa & dengan texture mapping

Bab 3 Metode dan Perancangan Sistem 3.1 Metode Pengembangan Sistem

GRAFIK KOMPUTER & PENGOLAHAN CITRA

BAB III ANALISIS DAN PERANCANGAN

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB IV IMPLEMENTASI DAN PENGUJIAN

LAPORAN PRATIKUM KOMPUTER APLIKASI

Pewarnaan dan Perputaran Polygon Untuk Objek Gambar Segi Tiga dan Segi Empat Menggunakan Program OPENGL 32

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM

Sistem Multimedia. Image. Donny Reza, S.Kom

Lulu Mawaddah Wisudawati ST., MMSI., MSc

ANALISA PERANCANGAN SISTEM

BAB 3 PERANCANGAN DAN PEMBUATAN. Engine akan dirancang agar memenuhi syarat maintainability, reusability dan

BAB IV IMPLEMENTASI DAN EVALUASI. akan dilakukan untuk mengetahui kelebihan dan kekurangan aplikasi. Untuk itulah,

PERANCANGAN DAN PEMBUATAN APLIKASI UNTUK MENDESAIN KARTU UCAPAN

BAB 3 PERANCANGAN SISTEM

GAMBAR TEKNIK DAN AUTOCAD

TIU: Mahasiswa mampu menghasilkan aplikasi Komputer Grafik sederhana. Pemrograman OpenGL API dasar 2 dimensi. Penggunaan aplikasi pengolah grafis 3D

JURNAL TEKNIK POMITS Vol. 1, No. 1, (2012) 1-6 1

Pengembangan Canvas J2ME : Gradasi Kotak

PEMBUATAN MODUL AJAR GRAFIKA KOMPUTER BERBASIS WEB UNTUK OBYEK TIGA DIMENSI

BAB 1 PENDAHULUAN 1.1. Latar Belakang Masalah

[DOCUMENT TITLE] [DOCUMENT SUBTITLE]

Penerapan strategi BFS untuk menyelesaikan permainan Unblock Me beserta perbandingannya dengan DFS dan Branch and Bound

PENGANTAR GRAFIKA KOMPUTER

MODUL 9 Material Texture

PROSES PEMBUATAN MODELING ARSITEKTUR 1. PENGATURAN BACKGROUND IMAGE

BAB 3 ANALISIS DAN PERANCANGAN

SISTEM PENJEJAK POSISI OBYEK BERBASIS UMPAN BALIK CITRA

BAB III ANALISA DAN PERANCANGAN

TUGAS PROGRAM DIAGONAL, VETIKAL, DAN HORIZONTAL OPENGL (MENGGUNAKAN JAVA) NAMA : SYIFA MUTIARA SARI KELAS : 3KA23 NPM :

TIU: Mahasiswa mampu menghasilkan aplikasi Komputer Grafik sederhana. Pemrograman OpenGL API dasar dan interaksi 2 dimensi

VISUALISASI STAND PAMERAN BERBASIS AUGMENTED REALITY DENGAN MENGGUNAKAN OPENSPACE3D

PENGANTAR 3D. 3 Dimensi - Pengantar 1

Bab 8 PEMROGRAMAN GRAFIK

BAB II LANDASAN TEORI

BAB II Tinjauan Pustaka

BAB 2 LANDASAN TEORI

PERANGKAT LUNAK PERBAIKAN KUALITAS CITRA DIGITAL MODEL RGB DAN IHS DENGAN OPERASI PENINGKATAN KONTRAS

3D STUDIO MAX. Setting awal 3D Studio Max 9

BAB 3 PERANCANGAN PROGRAM APLIKASI

IMPLEMENTASI DAN EVALUASI

DIAN PRATIWI. ST, MTI

MODUL I PENDAHULUAN. Modul I : Pengenalan Visual Basic 1

BAB III PERANCANGAN SISTEM. Pada dewasa sekarang ini sangat banyak terdapat sistem dimana sistem tersebut

Animation. Semua gerakan yang Anda pikirkan, dapat dilakukan dalam Maya.

BAB IV IMPLEMENTASI DAN PENGUJIAN

Markerless Augmented Reality Pada Perangkat Android

VISUALISASI GERAKAN OBJEK 3D PADA AUGMENTED REALITY DENGAN DETEKSI TUMBUKAN BERBASIS BOUNDING BOX

BAB 3 ANALISIS DAN PERANCANGAN

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB. SHEET PRAKTIKUM GRAFIKA KOMPUTER

IMPLEMENTASI ALGORITMA LAYER-BY-LAYER UNTUK MENYELESAIKAN RUBIK S CUBE DALAM KODE PROGRAM

BAB III PERANCANGAN KECERDASAN-BUATAN ROBOT PENCARI JALUR

IMPLEMENTASI OPEN GL32 UNTUK MEMANIPULASI GAMBAR SEGITIGA DAN SEGIEMPAT

DAFTAR ISI TOOLBAR SOLID TOOLBAR SHADE TOOLBAR 3D ORBIT TOOLBAR SURFACE TOOLBAR SOLIDS EDITING TOOLBAR MODIFY II TOOLBAR VIEW TOOLBAR TOOLBAR UCS


BAB II LANDASAN TEORI. Pengolahan Citra adalah pemrosesan citra, khususnya dengan menggunakan

Basic 3D Modelling dan Animasi Menggunakan 3DS MAX

BAB 5 SPRITE. Contoh sebuah Sprite

Sistem Koordinat 3D. +y +y

Grafika Komputer. Pendahuluan. Dr. Ahmad Sabri Universitas Gunadarma

BAB 4 IMPLEMENTASI DAN EVALUASI

ANIMASI OBYEK TIGA DIMENSI DENGAN TEKNIK NON-PHOTOREALISTIC RENDERING UNTUK AUGMENTED REALITY MENGGUNAKAN LOGIKA FUZZY

BAB II LINGKUNGAN PEMROGRAMAN GRAFIK DENGAN OPEN GL

Pemrograman dengan Java

Jurnal INFORMASI Vol.4 No.2 (1), November Chairuddin. Teknik Informatika, STMIK IM, Jl.Jakarta No.79 Bandung

BAB 1 PENDAHULUAN. menggunakan sistem komputerisasi. Salah satu bentuk perusahaan yang sangat

BAB II LANDASAN TEORI

BAB III ANALISA DAN PERANCANGAN SISTEM

BAB 4 IMPLEMENTASI DAN EVALUASI

Menggambar Grafik Menggunakan Winplot

Aplikasi Peta 3-Dimensi Universitas Negeri Manado

PAGI. SOAL PILIHAN GANDA : No

BAB 3 ANALISIS DAN PERANCANGAN

BAB 3 PERANCANGAN SISTEM

FORMAT GAMBAR PRAKTIKUM PROSES MANUFAKTUR ATA 2014/2015 LABORATURIUM TEKNIK INDUSTRI LANJUT UNIVERSITAS GUNADARMA

BAB 2 LANDASAN TEORI

LAMPIRAN SOURCE CODE

Ray Tracing S1 Teknik Informatika

PERANCANGAN DAN PEMBUATAN APLIKASI INTERIOR DESIGN MENGGUNAKAN WEBGL

Simulasi Transformasi Linier pada Bidang 2D Dengan Menggunakan OpenGL API

Tutorial 04 Modeling & Transformasi Proyeksi

KONTROL ROBOT MOBIL PENJEJAK GARIS BERWARNA DENGAN MEMANFAATKAN KAMERA SEBAGAI SENSOR

BAB 3 PERANCANGAN SISTEM. mendapatkan input, melakukan proses, dan menghasilkan output yang diinginkan oleh

BAB III ANALISIS DAN PERANCANGAN

BAB II LANDASAN TEORI. Android adalah sebuah sistem operasi yang ditargetkan untuk smartphone

BAB IV REKAYASA SISTEM

BAB III ANALISIS DAN PERANCANGAN SISTEM 3.1 Analisis Sistem Analisis sistem dapat didefinisikan sebagai penguraian dari suatu sistem informasi yang

BAB 3 PERANCANGAN PROGRAM. objek, analisis blob, SMS service, dan video saving. Deteksi objek adalah proses untuk

BAB 1 MENYIAPKAN BIDANG KERJA PENGGAMBARAN

Pembuatan Simulasi Pergerakan Objek 3D (Tiga Dimensi) Menggunakan OpenGL

Transkripsi:

TEKNIK CUBE MAPPING DENGAN OPENGL Eri Prasetyo(t), Dian Kusuma Ningtyas(2), Prasetiyo(3) Abstrak: 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. Cube Mapping sebagai bagian dari metode Environment Mapping merepresentasikan lingkungan sekitarnya dengan cara "menempelkan" enam buah gambar yang berbeda di keenam sisi obyek. Hal ini membuat obyek seolah memiliki enam sisi pantul, yaitu depan, belakang, kanan, kiri, atas, dan bawah. OpenGL sebagai kumpulan library, fungsi, dan prosedur untuk bidang komputer grafik telah mendukung Cube Mapping sebagai salah satu teknik Texture Mapping. Kemampuan OpenGL dalam mendukung Cube Mapping membuat dunia komputer grafik memiliki fitur tambahan untuk dapat lebih menghasilkan sesuatu yang lebih realistis. Keunggulan OpenGL yang platform-independent memungkinkan kita untuk membuat grafik yang dapat dijalankan di semua sistem operasi dengan hanya sedikit penyesuaian. l. Kata Kunci : komputer grafik, proyeksi, refleksi lingkungan, Texture Mapping. Pendahuluan - Reflection Mapping Gambar. 1. Bagan Pembagian Metode 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. 2. 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. (1) Eri Prasetyo, Mahasiswa Program Sarjana Magister (Jniversitas Gunadarma. Email : eri@snff.gunadarma.ac.id (2) Dian Kusuma N ingtyas, Mahasiswa Program Sarjana Magister (Jniversitds Gunadarma. Email : blue_dtctive@yahoo.com (3) Prasetiyo, Mahasiswa Program Sarjana Magister (Jniversitas Gunadarma. Emall : prasetiyo@student.gunadarma.ac.id

2 JURNAL INFORMATIKA, VOLUME 4 NOMOR 1, APRIL 2OO8 Gambar. 2. Chrome Mapping dan Environment Mapping 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. 2.1. 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'. Konsep tersebut diilustrasikan pada gambar di bawah ini. Gambar. 3. Konsep Sphere Mapping 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 (lihat gambar 4). Sehingga teknik ini membutuhkan gambar yang berbeda untuk setiap sudut pandang yang berbeda. ;l 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. 2.2. 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. 1 Lingkungan sekitar yang berpotensi untuk dipantulkan oleh objek 2 Proyeksi ortografik adalah cara untuk memproyeksikan obyek 3D ke dalam media 2D

Prasetyo, Ningtyas, Prasetiyo, Teknik Cube Mapping Dengan OpenGL 3 Teknik ini pertama kali diajukan dan dikembangkan oleh Wolfgang Heidrich dan Hans-peter Seidel. Keuntungan dari Dual paraboloid Mapping, antara lain : 1) Dapat meng-capture lingkungan secara utuh. 2) Berbasis linear. Gambar. 4. Kesalahan yang terjadi pada Sphere Mapping. Pada gambar i.uetutt kanan}d"k mungkin bisa melihat kolam pada posisi frontal sementara pada kenyataannya kolam berada di bawah obyik. Gambar. 5. Munculnya lubang akibat dari keterbatasan pada metode Sph;;; Ni;ppi;g 3) cocok untuk hardware yang memiliki dual-texture, contohnya RIVATNT. 4) View independent. Gambar. 6. Dual Paraboloid Mapping 2.3. Cube Mapping Cube Mapping sebagai bagian dari metode Environment Mapping merepresentasikan lfngkungan sekitarnya dengan cara'omenempelkan" 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 (lihat gambar 7). 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 3 Sisi pantul adalah sisi obyek yang dapat memantulkan lingkungan sekitarnya

4 JURNAL INFORMATIKA, VOLUME 4 NOMOR 1, APRIL 2OO8 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. Gambar. 7. Cube Mapping 3. Cube Mapping dalam OpenGL Dahulu, OpenGL hanya mengenal dua macam Texture Mapping, yaitu tekstur ld dan 2D. Mulai OpenGL versi 1.2 diperkenalkan dua macam Texture Mapping baru, yaifu 3D dan Cube Map sehingga secara keseluruhan OpenGL telah mendukung empat macam Texture Mapping, yaitu tekstur ld,2d,3d, dan Cube Map. Dalam tulisan ini, akan dibahas pemrograman OpenGL dengan menggunakan bahasa pemrograman Borland Delphi. Seperti yang telah dibahas sebelumnya, ide pokok Cube Mapping adalah memproyeksikan lingkungan sekitarnya dengan cara menempelkan gambar 2D di keenam sisi kubus. Untuk itu, OpenGL menggunakan perintah-perintah : glbindtexture(gl TEXTURE CUBE MAP POSITIVE X EXT,CubeMap[0] glbindtexture(gl TEXTURE CUBE MAP NEGATIVE X EXT,CubeMap[1] glbindtexture(gl TEXTURE CUBE MAP POSITIVE Y EXT,CubeMap[2] glbindtexture(gl TEXTURE CUBE MAP NEGATIVE Y EXT,CubeMap[3] glblndtexture(gl TEXTURE CUBE MAP POSITIVE Z EXT,CubeMap[4] glbindtexture(gl TEXTURE CUBE MAP NEGATIVE Z EXT,CubeMap[5] Penjelasan : s 18 i ndr extu re : Mengaktifkan tekstur (gambar). GL TEXTURE CUBE MAP PosrTrvE{NEGArrvEi x{y,z} EXT : Menempatkangambarpadasumbu XNIZ positif/negatif. Akhiran EXT menandakan bahwa perintah/fungsi ini lintas platform Qt I atfo rm in d ep end ent). cubemap to.. s I : Array tekstur I gantbar yang akan ditempelkan (sebanyak enam buah). t^ ' Terdiri dari enom sisi/enam gambar

Prasetyo, Ningtyas, Prasetiyo, Teknik Cube Mapping Dengan OpenGL E Gambar. 8. Posisi Koordinat pada Cube Mapping Untuk mengaktifkan fitur Cube Mapping, maka digunakan perintah : glenable (cl TEXTURE CUBE MAp EXT); sebaliknya, untuk me-nonaktifkan fitur ini digunakan perintah : gldisable (GL TEXTURE CUBE MAP trxt) ; Bila terdapat lebih dari satu mapping, maka OpenGL memiliki prioritass. Prioritas tertinggi dimiliki oleh Cube Mapping, diikuti dengan 3D, 2D, dan yang paling rendah adalah Texture Mapping 1D. Satu hal pokok yang harus dicatat adalah terdapat perbedaan antara koordinat tekstur dan koordinat obyek pada CubeMapping. Koordinat obyek menggunakan koordinat Cartesian umum, yaitu +X, -X, +Y -Y, +2, dan -2. Sementar a tekstur menggunakan koordinat STR (+S, -S, +T, -T, +R, dan -R). Untuk itu, digunakan perintah : glenab]e (GL TEXTURE GEN S) ; glenable (GL TEXTURE GEN T) ; glenable (cl TEXTURE GEN R) ; Untuk menonaktifkan koordinat STR, cukup dengan mengganti Enabte menjadi Disabfe. Sesuai dengan namanya, maka gambar yang ditempelkan harus berbentuk persegi dengan dimensi (tinggi&lebar) sama. Untuk menetapkan gambar-gambar mana saja yang akan menempati sisi-sisi kubus, maka digunakan perintah : LoadTexture ('xpos.jpg,,cubemap l0l, false,gl LINEAR MIpMAp LINEAR/ GL LINEAR, GL TEXTURE CUBE MAP POSITIVE X EXT); LoadTexture (' xneq. jpg,, CubeMap [ 1 ], false, cl LINEAR MIpMAp LINEAR, GL LINEAR, GL TEXTURE CUBE MAP NEGATIVE X EXT); Loadrexture (' ypos.jpg',cubemap l2f, fatse,gl LTNEAR MrpMAp LTNEAR,GL LINEAR, GL TEXTURE CUBE MAP POSITIVE Y EXT); LoadTexture (, yneg' : ]pgi,, CubeMap [ 3 ], fa1se, GL LINtrAR MIpMAp LINEAR, GL LINEAR, GL TEXTURE CUBE MAP NEGATIVE Y EXT),. LOAdTCXIUTE (' ZPOS.JPg,,CUbCMAP [4], fa1se, GL LINEAR MIPMAP LfNEAR, GL LINEAR, GL TEXTURE CUBE MAP POSITIVE Z EXT); LoadTexture (' zneg'. lpg', cubemap [ 5 ], false, GL LTNEAR MrpMAp LTNEAR, GL LINEAR/ GL TEXTURE CUBE MAP NEGATIVE Z EXT); Dengan cara yang sama, untuk memuat gambar latar (background) digunakan perintah : LoadTexture (,back. jpg', Texture, false) ; 5 (Jntuk menentukan Texture Mapping mana yang akan dimunculkan terlebih dahulu

6 JURNAL INFORMATIM, VOLUME 4 NOMOR 1, APRIL2OOS Perintah-perintah di atas pada dasarnya menempatkan file-file gambar yang akan digunakan untuk membentuk tekstur Cube Mapping pada anay bernafft? cubemap t I. Fungsi Loadrexture O bukanlah rutin turunan OpenGL, melainkan fungsi yang ada pada file Texture.pas. Dengan catatan bahwa pemanggilan fungsi di atas menggunakan perintah : slenabre( cr, rexrunr zo) karena yang akan diimplementasikan adalah tekstur 2D. Dengan mengacu pada program Cube Mapping kami, maka dengan adanya perintahperintah di atas akan terbentuk enam buah gambar yang selanjutnya akan membentuk sebuah kubus seperti yang terlihat pada gambar di bawah ini: Lalu, untuk menempelkan gambar-gambar tadi sebagai tekstur pada obyek digunakan perintah : gltexgeni (GL S/ GL TEXTURE GEN MODE, GL REFLECT]ON MAP EXT) ; gltexgeni (GL T, GL TEXTURE GtrN MODE, GL REFLECTTON MAP EXT); gltexgenl (GL R, GL TEXTURE GEN MODE, GL REFLECTION MAP EXT); Selanjutnya, bagian empat akan menjelaskan jalannya program secara garis besar. Termasuk di dalamnya penjelasan lebih lanjut mengenai beberapa sintaks yang berhubungan dengan pembuatan tekstur Cube Mapping. Gambar. 9. Cube Mapping yang terbentuk pada program 4. Alur Program Program utama yang akan diuraikan pada bab ini adalah OpenGlApp.dpr yang ditulis dalam bahasa pemrograman Borland Delphi 7. Sebelum memulai program, dibutuhkan enam buah gambar sebagai map yang akan direfleksikan, dan satu buah gambar sebagai background atau " fake e nvi ro n me nf '. Awalnya, untuk inisialisasi OpenGL digunakan prosedur slrnir yang berisi serangkaian perintah, seperti : glclearcolor(0.0, o.o, o.o, o.o) :Untukmenentukanwarnalatar(background),untuk hal ini warna yang dihasilkan adalah hitam. Bentuk umum r gtctearcolor (Redrndex, Greenlndex, Bluelndex, Alphalndex). slshademodel (GL smoorh) : Untuk menentukan modus bayangan (shadow), untuk hal iniyang dipilih adalah smooth. slenable (GL DEprH resr) : Untuk mengaktifkan memori buffer kedalaman {Depth Buffer). Selain itu, perintah lain di luar prosedur slrnir yang juga berhubungan dengan inisialisasiadalah : glclear (GL COLOR BUFFER BIT or GL DEPTH BUFFER BIT) : UntUk membersihkan memori buffer warna atau memori buffer kedalaman dari keadaan sebelumnya. slloadrdentity O : Untuk mengembalikan posisi koordinat ke posisi normalnya. Setelah tahap inisialisasi, maka langkah selanjutnya adalah membentuk obyek. Obyek yang akan kita bentuk adalah bola dan kubus yang berputar dengan bola sebagai poros putarnya. Perintah yang digunakan untuk menggambar bola ialah

Prasetyo, Ningtyas, Prasetiyo, Teknik Cube Mapping Dengan OpenGL T ; - -i::-=:e (spherequadratic, O. B, 32, 32 ). Dengan perintah ini, obyek akan berbentuk bola uar.rg diameternya 0.8, bersisi 32, danjumlah irisannya 32. Untuk mulai menggambar kubus, digunakan perintah slbesin (cl euads). Sedangkan rrtuk memulai menggambar sisi-sisi kubus, digunakan perintah di bawah ini : glnormal3f ( 0.0, 0.0, 1.0) ; qlvertex3f (-A.25, -1.0, 1.0); ElVertex3f( 0.25t -1.0, 1.0); glvertex3f ( 0.25, 1.0, 1.0) ; glvertex3f (-0.25, 1.0, 1.0) ; Pada bagian slnormal3f, angka 0.0 yang pertama mengacu pada sumbu X dan yang rscua mengacu pada sumbu Y. Angka '1.0 mengacu pada sumbu Z. Artinya, sisi yang digambar - rnpunyai poros normal sumbu Z positif. Sebagai contoh, jika sumbu Z diberi nilai 1, maka sisi iang digambarialah sisi depan. Sebaliknya jika sumbu Zdiberi nilai-1, maka sisi yang digambar a ah sisi belakang. Kemudian barulah ditentukan vertex-vertexnya yang juga mengacu pada s,.nbu X, Y dan Z. Penggambaran sisi ini diulangi terus hingga bentuk kubus yang diinginkan :ercapai, dan diakhiri dengan perintah sttrnd O. Proses pembentukan obyek di atas dapat direpresentasikan sebagai matrix yang :.tampung dalam sebuah penampung (sfack). Prinsip kerjanya adalah, OpenGL akan Tenganggap semua masukan pasangan vertex sebagai matrix dan akan ditampung ke dalam suatu penampung. Untuk itu, OpenGL menyediakan perintah slpushmarrix dan sebaliknya jika :ba saatnya untuk menampilkan obyek, maka perintah srpopmatrix dapat digunakan. Pada Lrmumnya, perintah glpushmarrlx dan gf popmarrix berpasangan dengan,:..' = rbu f f e r s / ql FLu sh sebagai "eksekutor"6 nya. Untuk pemuatan gambar latar, yditu back. jps, digunakan perintah: LoadTexture ('back. jpg', Texture, false). Sedangkan untuk memuat masing-masing gambar tekstur Cube Map, digunakan rangkaian perintah berikut : -:=CTexture('xpos.)pg',CubeMap[0],fafse,cL LINtrAR MIPMAP LINEAR/cL LINEAR, GL -:xrure cube MAp posrrrve x EXr) : Untuk memuat gambarxpos.jpg pada array - _-!vrruylvj. ;amrnlal -radtexture('xneg.)pg',cubemap[1],false,gl LINEAR MIPMAP LINEAR,GL LINtrAR/ GL -:xrurtr cube MAp NtrcArrvE x EXr): Untuk memuat gambarxneg.jpg pada array J:beMap[1]. - cadtexture ('ypos.)pg', CubeMap l2l,'false, GL LINtrAR MIPMAP LINEAR/ cl LINEAR/ GL -ixrure cubtr MAp posrrrve y EXr):Untuk memuatgambarypos.jpg pada array JubeMap [2]. - cadtexture (' yneg. fpg', CubeMap [ 3 ], false, GL LINEAR MIPMAP LfNEAR, GL LfNEAR, GL -EXruRE cube MAp NEGATTvE y EXr):Untuk memuatgambaryneg.jpg pada array JubeMap l3l. -,oadtexture ('zpos.)p9', CubeMap[4], false,gl LINEAR MIPMAP LINEAR,GL LINtrAR/ GL rexrure cubtr MAp posrrrve z EXr) : Untuk memuat gambar zpos.jpg pada array -rrhom:n l l l -oadtexture ('zneg.)p9', CubeMap [5], fafse, cl LINtrAR MIPMAP LINEAR, GL LTNEAR, GL rex?ure cube MAp NEGATTvE z Exr): Untuk memuat gambar zneg.ipg pada array CubeMap [5]. Selanjutnya, pengaturan posisi set obyek dilakukan dengan menggunakan perintah : gltranslatef(0.0,0.0,-5) Makin besar nilai sumbu Z, makin besar gambar yang terlihat. Namun jika sumbu Z bernilai positif, maka set obyek akan nampak kosong sebab gambar berada di luar jangkauan layar. Sebaliknya, semakin kecil nilainya, maka set obyek juga akan terlihat mengecil (menjauh). Selanjutnya, agar kubus dapat berotasi, digunakan perintah i qlroraref (yansle, o. o, 1.0, 0.0). Sumbu Y diberi nilai 1, artinya kubus akan berotasi sebesar yangle derajat terhadap sumbu Y (horizontal). 6 SwapBuffers/glFlush adalah perintah yang digunakan untuk menampilkan gambar di layar.

8 JURNAL INFORMATIKA, VOLUME 4 NOMOR 1, APRIL 2OO8 Kecepatan rotasi kubus diatur dengan rumus yansle :: yangle + yspeed sehingga kecepatannya dapat berubah-ubah sesuai nilai dari variabel yspeed. Dengan menjalankan perintah: 1f (keys [vk RrGHr] ) then yspeed :: yspeed + 0.002, jika tombol kanan ditekan maka kecepatan rotasi akan bertambah sebesar 0,002 fps. Sedangkan dengan mengganti (keys[vk RrGHT]lmenjadi (keys[vk LEFT]) danthen yspeed :: yspeed + o.o02 menjadi then yspeed :: yspeed - 0.002, maka jika tombol kiri ditekan kecepatan rotasi akan berkurang sebesar 0,002 fps dan dapat berubah haluan (berputar ke arah kiri). Jika user menggerakkan mouse, maka pergerakan tersebut dianggap tidak ada (tidak terjadi apa-apa). Begitu juga dengan penekanan mouse, baik itu tombol kiri, tengah, maupun kanan, akan dianggap tidak ada dengan perintah yang digunakan: case MouseButton of 1: MouseButton :: 0; 2: MouseButton :: 0; 3: MouseButton :: 0,' end; Jika user mengubah ukuran window, maka ukuran gambar juga akan disesuaikan. Jika ukuran window diperbesar maka gambar juga ikut membesar, begitu juga sebaliknya. Perintah yang digunakan : if (Height : O) Lhen Haiahf.- 1. glviewport (0, 0, Width, Height) ; glmatrixmode (GT, PROJECTION) ; gll,oadldentity ( ) ; gluperspective (45.0, Width/Height, 1.0, 100.0) ; qlmatrixmode (GL MODELVIEW),' glloadldentity ( ) ; Perintah-perintah tersebut akan terus dijalankan sampai tombol Escape ditekan. Untuk itu digunakan perintah: if (keystvk EScAptrl) then finished :: True. 5. Simpulan dan Penutup Bila dibandingkan dengan Sphere Mapping dan Dual Paraboloid Mapping, secara konsep Cube Mapping lebih to the point dan praktis. Hal ini dapat dilihat dari kebutuhan Cube Mapping yang hanya memerlukan satu unit tekstur dan satu tahap rendering. Selain itu, teknik Cube Mapping tidak mengurangi resolusi gambar (teknik Sphere Mapping dan Dual Paraboloid Mapping dapat mengurangi resolusi gambar sampai 78o/o dari resolusi semula). lntinya, hal-hal yang menjadi kelemahan Sphere Mapping dan Dual Paraboloid Mapping seperti ketergantungan sudut pandang (view dependency), keterbatasan cangkupan tekstur (warping and distortion), dan kerumitan penerapan menjadi alasan beralihnya teknik mapping ke Cube Mapping. Namun, dibutuhkan kemampuan lebih pada proses texturing Cube Mapping untuk dapat mengakses enam gambar sekaligus. OpenGL sebagai kumpulan rutin dan fungsi yang banyak dipakai di bidang komputer grafik telah menyediakan fasilitas Cube Mapping. Dengan menggunakan rutin tersebut, para pemrogram komputer grafik dapat membuat grafis yang lebih realistis dari sekedar gambar 2D dan 3D biasa. Portabilitas OpenGL sebagai kumpulan library memungkinkan untuk diakses melalui bahasa pemrograman (dengan menyertakan library OpenGL di direktori library bahasa tersebut) dan dijalankan pada platform komputer apapun. 6. Daftar Pustaka '.. [ 1 ]http://en.wikipedia.org/wiki/reflection mapping, 2007. l2lhttp.,llwww.opengl.org/resources/code/samples/sig99/advancedgg/notes lnodel74.btml,2007. [3]http://www.opengl.org/resources/code/samples/ sigggladvancedgg/notes/node176:html,2007. [4]http://www.opengl.org/resources/code/samples/sig99/advancedgg/notes/node183.html,2007. [5 ] http : //developer.nvidia. com/obj ectlcube map o gl tutorial.html, 2007. [6]http ://www. developer.com/lang/other/article.php I 21 69281, 2007. [1]http:lldeveloper.nvidia.com/objectldlual paraboloid env mapping.html,2007. [ 8 : ]http //www. glpro gramming. com/red/, 2007,

Prasetyo, Ningtyas, Prasetiyo, Teknik Cube Mapping Dengan OpenGL g [9]http://developer.nvidia.com/obj ectlio 20010903 47 02.htm 2007. [ 1 O]ht@ : //www.nvidia. com/obj ecvfeature cube.html, 2007. [11]F.S. H1ll. Computer Graphics tjsing OpenGL. Prentice Hall Inc,2001.