VIEW DEPENDENT LOD UNTUK RENDERING TERRAIN BERBASIS ARRAY TEXTURE SHADER MODEL 4.0 Edy Prabowo Atanasius1) Moch. Hariadi, ST., MSc., PhD. Game Technology Research Group, Department of electrical Engineering Sepuluh Nopember Institute of Technology, Surabaya.
controller), yang dapat dimanfaatkan menyampaikan informasi dan pengetahuan dalam bentuk visual.Visualisasi sebagai salah satu bagian pengembangan aplikasi teknologi permainan (video game) yang langsung berinteraksi dengan pemain haruslah dapat menggambarkan keadaan yang sebenarnya, agar pemain benar-benar merasakan seperti berada dalam area permainan itu sendiri. Hal ini tentunya membutuhkan dukungan perangkat keras pengendali tampilan (display controller) untuk menghasilkan gambar dengan batasan waktu yang cukup singkat sehingga dapat diterapkan pada aplikasi yang bersifat interaktif (real-time). Adapun salah satu teknologi pendukung yang menjadi katalis untuk mendukung cepatnya penggabungan atau konvergensi pendekatan dalam grafika komputer adalah pada prosesor khususnya untuk operasi grafik yang disebut GPU (Graphic Processing Unit). GPU ini menyatu dengan pengendali tampilan (display controller). Berbeda dari CPU yang merupakan prosesor yang lebih bersifat umum, GPU dikhususkan untuk melakukan komputasi-komputasi grafik. Perkembangan GPU diawali dengan perangkat keras khusus yang berfungsi melakukan rasterisasi sehingga komputasi yang dilakukan di CPU hanya operasi geometri. Pendekatan rasterisasi geometri prinsip dasarnya adalah tiap representasi geometri dipetakan dalam ruang diskret (matriks citra) dan kemudian titik-titik pada citra disusun sedemikian rupa sehingga merepresentasikan geometri objek yang dimaksud. Persoalannya terletak pada transfer data (geometri dan material) antara CPU dengan GPU yang dilakukan secara serial sehingga menimbulkan bottleneck untuk proses penggambaran objek dengan resolusi geometri
Abstrak Shader model 4.0 memperkenalkan array texture dan 3D texture. Berbagai variasi image dapat ditampilkan sebagai sebuah layer dalam array texture (atau sebagai 3D texture). Aplikasi yang dimungkinkan dengan adanya fitur shader Model 4.0 adalah LOD (level of detail) terhadap struktur geometri rekursif atau fraktal melalui pembangkitan secara dinamis (dynamically generated) di GPU. Penerapan LOD dapat diaplikasikan pada rendering terrain dengan peta ketinggian yang disimpan sebagai sebuah image. Penulisan ilmiah dalam bentuk penelitian tesis ini, penelitian difokuskan pada proses rendering untuk visualisasi real time 3D terrain, teknik diajukan guna mengatasi ukuran data terain yang besar lebih dari 4k dalam interaktif frame ratenya adalah menggunakan texture array pada model geometri shader 4.0. Latar belakang gagasan penelitian ini adalah memperluas kemampuan dari teknik LOD View Dependent dan meningkatkan kemampuan proses visualisasi terrain secara real time dan sistem navigasinya. Hasil akhir yang diharapkan adalah metode penggambaran terrain ini dapat menghasilkan peningkatan segitiga tergambar sebesar 15% dan dari hasil pengamatan adanya penurunan fps yang 10% dengan menggunakan array texture. Kata kunci : Terrain,Rendering Shader, Array Texture,LOD 1. PENDAHULUAN Perkembangan teknologi komputer saat ini mengalami kemajuan dengan cepat. Seiring dengan berkembangnya teknologi perangkat keras pengendali tampilan (display 1
yang tinggi (jumlah vertex yang sangat banyak), sehingga dikemukakan gagasan baru yang disebut dengan Geometry Shader. Hal ini merupakan terobosan yang dikombinasikan dengan dipindahkannya proses rendering (graphics rendering pipeline) ke GPU. Proses rendering pada GPU dapat dimodifikasi dan bahkan diprogram (programmable pipeline) dengan bahasa yang disebut sebagai ”shader‘. Penelitian mengenai teknik shader yang diterapkan pada pembangkitan objek geometri (geometry shader) sampai dengan saat ini telah membuka peluang untuk menciptakan teknik kombinasi pemrograman shader yang cukup luas hingga penggunaannya. Teknik pemrograman shader awalnya memiliki tahapan proses yang berbeda untuk bagian vertex shader dan fragment shader sebelum digambar (proses rasterisasi). Shader Model 4 melakukan perubahan pada proses rendering . Shader model 4.0 memperkenalkan array texture dan 3D texture. Berbagai variasi image dapat ditampilkan sebagai sebuah layer dalam array texture (atau sebagai 3D texture). Array Texture merupakan fitur dari Shader Model 4.0 dengan 2 unit penyimpan texture baru yang disebut dengan satu dan dua dimensi array texture. Shader Model 4.0 ini membawa beberapa inovasi baru yang tentunya diharapkan bisa memberikan kecepatan dan kualitas yang lebih baik. Ada dua kunci penting di Shader Model 4.0, yaitu adanya geometry shader dan unified shading architechure. Geometry shader merupakan programmable stage baru yang ditambahkan untuk memungkinkan proses manipulasi objek primitif. Geometry shader ini memberikan terobosan baru karena shader ini memungkinkan pembuatan dan penghapusan geometry langsung di dalam GPU. Jadi, GPU tidak hanya bisa memroses data, melainkan juga bisa membuat obyek yang dibutuhkan tanpa perlu melibatkan CPU. Shader Model 4.0 menyimpan semua shader pada level yang sama yang disebut dengan arsitektur unified. Fitur ini dapat digunakan untuk menggambar objek yang
memiliki informasi geometri yang dismpan sebagai sebuah image. Aplikasi yang dimungkinkan dengan adanya fitur shader Model 4.0 adalah LOD (level of detail) terhadap struktur geometri rekursif atau fraktal melalui pembangkitan secara dinamis (dynamically generated) di GPU. Penerapan LOD dapat diaplikasikan pada rendering terrain dengan peta ketinggian yang disimpan sebagai sebuah image. Terrain, atau sering juga disebut dataran, merupakan salah satu data yang penting dalam pemodelan pemograman grafik. Terrain umumnya diimplementasikan untuk obyek-obyek yang statis. Salah satu implementasi terrain yang banyak digunakan adalah dalam pemodelan lanskap. Contoh pemodelan lanskap adalah pemodelan bentangan tanah, pinggiran pantai, pegunungan dan lain sebagainya. Penggunaan visualisasi terrain sebagai model lansekap ini banyak didapati dalam game motor rally dan real-time strategy. Visualisasi Terrain secara real time (interaktif) memiliki permasalahan dalam kecepatan dan pengaturan tampilan agar realistik. Ada dua isu kunci utama yaitu management data terrain dan kecepatan visualisasi (Kofle, 1988). Ukuran data terain yang besar memerlukan cara yang efisien untuk dapat ditampilkan secara realtime dengan kapasitas memori yang terbatas. Hal ini termasuk cara untuk mengatur data geometrinya dan tekstur datanya. Pada saat yang sama, secara interaktif ukuran frame rate harus dapat mencapai keadaan yang konsisten untuk melakukan generalisasi bagian permukaan yang memiliki banyak poligon pada setiap framenya. Beberapa peneliti telah mengajukan cara penyelesaian permasalahan yang berkaitan dengan real time rendering terrain. Penelitian yang dilakukan dari mengimplementasikan struktur hirarki data, metode cara sistem visibility culling dan teknik Level Of Detail (LOD). Pada umumnya untuk mengatur tipe data struktur yang digunakan adalah KdTree (Bentley, 1975; Britney et al., 2001; Langbein et al., 2003), quadtree (Samet, 1984, Rottger et al.,1998; Pajarola, 2
1998), R-tree (Guttman,1984; Kofler, 1998; Yu et al.,1999; Zlatannova, 2000) dan Tiled block (VTP,1999; Lindstrom et al.,1996; Pajarola, 1998; Ulrich,2002). Perbedaannya adalah tergantung pada bagaimana data itu dibagi dalam perlakuan hirarkinya (Gaede dan Gunther, 1998). Sistem pandang culling(visibility culling) ada empat tipe metode yang telah diadopsi yaitu backface culling (Laurila, 2004), small feature culling (Burns dan Osfield, 2001); occlusion culling (Stewart, 1997;Mortensen, 2000; Martens,2003) dan view frustum culling (Hoff, 1996; Assarsson and Moller, 2000). Keseluruhan merupakan metode yang berguna untuk menghapus data yang tidak diperlukan dalam bagian proses rendering. Salah satu kompoen penting dalam metode culling adalah uji bagian data yang beririsan. Penelitian yang berkaitan adalah teknik bounding box (Beckmann et al, 1990; Morley, 2000), Bounding Sphere(Hubbard, 1995;Dunlop, 2001; Morley, 200; Picco, 2003) dan k-Discrete polytope orientasi (Klosowski et al.,1998). Teknik LOD digunakan untuk mengurangi ukuran poligon dan pengaturan detail yang terlihat dalam scene. Teknik yang terkenal adalah RealTime Optimally adapting Meshes(ROAM, Duchaineau et al.,1997), Real-Time Generation of Continuos LOD(Rottger et al.,1998), View-Dependent Progressive Meshes (Hoppe,1998) dan Out-core Terrain Visualization (Lindstrom dan Pascucci, 2001). Meskipun teknik LOD dapat mengurangi kompleksitas permasalahan tapi banyak poligon yang tidak masuk dalam jarak pandang masih tetap di render, hal ini mengakibatkan memburuknya performa sistem. Kebanyakan permasalahan yang disebutkan diatas oleh peneliti yang telah dilakukan suatu integrasi sistem dengan menggunakan metode culling pada vertex atau level urutan poligon untuk menyelesaikan permasalahan. Teknik LOD berbasis triangle telah dipilih untuk penelitian karena memiliki potensi untuk menghapus banyak geometry terrain dan
kemampuan untuk meningkatkan kecepatan frame rate interaktif tanpa menghilangkan penampilan visual dari bagian yang akan ditampilkan(Duchaineau et al.,1997; Hoppe, 1998; Pajarola, 1998; Rottger et al.,1998;Lindstrom dan Pascucci,2001). Penulisan ilmiah dalam bentuk penelitian tesis ini, penelitian difokuskan pada proses rendering untuk visualisasi real time 3D terrain, teknik diajukan guna mengatasi ukuran data terain yang besar lebih dari 4k dalam interaktif frame ratenya adalah menggunakan texture array pada model geometri shader 4.0. Latar belakang gagasan penelitian ini adalah memperluas kemampuan dari teknik LOD View Dependent dan meningkatkan kemampuan proses visualisasi terrain secara real time dan sistem navigasinya. Ada 2 bagian tahap yang terpisah yaitu pre-processing dan run time processing. Pada tahap pertama, data terrain dalam bentuk DEM dilakukan konversi ke dalam data image heightmap. Dalam proses run time, beberapa tile ditampilkan tergantung pada posisi kamera. Kemudian. tile ini dilakukan pengujian untuk status penampilan dan dihapus dari blok data yang tidak terlihat. Pada akhirnya, proses penyederhaan geometri dari penampilan terrain dalam bentuk tile telah menjadi ukuran minimal dari bentuk segitiga kemudian diproses dan menjadi bagian yang akan dilakukan rendering. 1.3. Perumusan Masalah Berdasarkan latar belakang Penggambaran terrain menggunakan metode model shader 4.0 diharapkan dapat menampung ukuran data heightmap lebih dari 4k mempercepat proses penggambaran dengan perancangan dan pengimplementasian konsep scene manajemen yaitu quadtrees visibility algorithm dengan menggunakan frustrum culling untuk mencapai proses efisiensi penggambaran. dalam dunia 3D yang disebut sebagai View Dependent LOD (Level Of Detail). 1.4. Tujuan 3
Mendesain dan mengimplementasikan terrain engine dengan menggunakan metode model shader 4.0 gabungan antara metode visibility algorithm dengan view-dependent LOD.
buffer vertex objek dapat dibaca dan diupdate oleh pemetaan buffer ke dalam ruang memori. Membuat VBO membutuhkan 3 langkah : 1. Menghasilkan objek buffer baru dengan glGenBuffersARB (). 2. Bind objek buffer dengan glBindBufferARB (). 3. 3. Salin data Vertex ke dalam buffer objek dengan glBufferDataARB ().
1.5. Batasan Masalah Batasan masalah diasumsikan sebagai berikut: 1. Data terrain diambil dengan menggunakan aplikasi terrain generator. 2. Format penyimpanan data terrain dalam bentuk image grayscale yang dianggap sebagai heightmap dari suatu terrain. 3. Penggambaran untuk menguji fps menggunakan texture array pada model shader 4.0. OpenGL Vertex Buffer Object (VB0) GL_ARB_vertex_buffer_object ekstensi ini dimaksudkan untuk meningkatkan performa OpenGL dengan menyediakan manfaat dari vertex array dan menampilkan daftar, sementara menghindari kerugian dari implementasinya. Vertex buffer objek (VBO) memungkinkan vertex array data yang akan disimpan dalam grafis performa tinggi pada memori memungkinkan melakukan transfer data yang efisien. Jika objek buffer digunakan untuk menyimpan data pixel, hal itu disebut Pixel Buffer Object (PBO). Menggunakan vertex array dapat mengurangi jumlah pemanggilan fungsi dan penggunaan berlebihan bersama simpul. Vertex buffer object (VBO) menciptakan "penyangga objek" untuk vertex atribut dalam memori berkinerja tinggi dan menyediakan akses yang sama berfungsi untuk referensi array, yang digunakan di vertex arrays, seperti glVertexPointer (), glNormalPointer (), glTexCoordPointer (), dll. Manajemen memori buffer objek vertex akan menempatkan objek ke dalam buffer tempat terbaik memori berdasarkan petunjuk pengguna: "target" dan "penggunaan" mode. Oleh karena itu, manajer memori dapat mengoptimalkan buffer dengan menyeimbangkan antara 3 jenis memori: system, AGP dan memori video. Data dalam
Pixel OpenGL Buffer Obyek (PBO)
Gambar OpenGL PBO Data Terrain Dalam penyimpanan struktur datanya, data terrain dapat dibedakan menjadi dua jenis yaitu penyimpanan dengan metode regular grid dan penyimpanan dengan metode TIN (Triangulated Irregular Network). a. Regular Grid Data terrain dalam bentuk regular grid banyak sekali dipakai sebagai model penyimpanan data. Hal tersebut karena metode penyimpanan tersebut dapat membuat data yang disimpan dapat dikompresi sehingga dapat menghemat ruang penyimpanan. Regular grid adalah metode langsung. Pada dasarnya, ini membagi field data ke dalam beberapa blok, yang kemudian sub-sampel untuk mendapatkan model resolusi yang lebih rendah (Blekken dan Lilleskog, 1997). Menggunakan sebuah array dari nilai-nilai tinggi teratur ruang x dan y koordinat. Ada banyak variasi dalam menghasilkan reguler grid tergantung pada sistem yang dikembangkan seperti digambarkan Sebagai contoh, Lindstrom et al (1996) Duchaineau et al.(1997) dan Röttger et al. (1998) dalam pengujian teknik yang diusulkan mereka.
4
node dan nilai selain nol mewakili simpul parent dengan empat child. Level Of Detail (LOD) Gambar Variasi dari representasi Grid Tujuan dari teknik LOD view dependent adalah membangun meshes dengan sekecil mungkin jumlah polygon dari model dengan sudut pandang dimana pengamatan seara real time untuk mengupdate jumlah poligon yang di render di setiap framenya yang dilakukan terus-menerus mengamati posisi (sudut pandang) yang mempengaruhi pembaruan poligon meshes di setiap frame. Level Of Detail (LOD) merupakan suatu metode yang memungkinkan suatu objek digambar dengan tingkat detail tertentu. Ada beberapa jenis dari LOD yaitu discreate LOD, continuous LOD, dan view-dependent
Kelemahan utama dari regular grid adalah tidak mempunyai kemampuan untuk menghemat polygon yang akan digambar karena mempunyai lebar dan panjang yang sama untuk setiap polygon. Quadtree Hirarki Quadtree berbasis pada prinsip penguraian yang berulang. Pertama kali diperkenalkan oleh Samet(1984). Quadtree adalah sebuah pohon data yang setiap nodenya mempunyai empat buah anak. Secara umum, Node pada level paling atas merepresenatsikan pohon sebagai area dataset dan setiap anak dalam Quadtree yang ditampilkan satu-empat dalam wilaya setiap parentnya. Setiap noide dalam tree berhubungan dengan data blok terrain yang memilki level kedalaman pada setiap tree.
Graphic Processing Unit (GPU) GraphicsProcessingUnit (GPU) merupakan salah satu bagian dari perangkat keras komputer yang menangani permasalahan grafik yang akan ditampilkan ke layar monitor. Graphics card adalah nama sebuah komponen PC yang tugas utamanya mengolah tampilan grafik. Dari namanya dapat diketahui bahwa sebenarnya graphics card berupa sebuah kartu (card) tambahan. Namun seringkali, istilah graphics card juga digunakan untuk chip graphics yang terdapat pada solusi integrated graphics (onboard graphics). GPU Shader Pada arsitektur modern seperti yang terlihat pada gambar (disusun berdasarkan standar OpenGL), terdapat banyak perubahan berarti untuk konsep
Gambar. Model Quadtree Banyak peneliti yang menggunakan teknik ini dalam komponen system secara umum. Rottger et al(1998) membangun hirarki quadtree dengan matrik 2D untuk diterapkan dalam model terrain multiresolusi. Pajarola (1998) telah membuat algoritma quadtree sebagai urutan untuk menggurangi geometry terrain dalam scene. Hirarkis quadtree struktur data merupakan struktur sebatang pohon di mana setiap node mempunyai node atau empat anak-anak dimana anak-anak node dengan nol adalah node daun. Untuk quadtree mewakili struktur, numerik matriks ukuran W x H digunakan di mana W adalah lebar daerah dan H adalah tinggi. Matriks ini disebut matriks quadtree. Setiap simpul di pohon sesuai dengan satu nilai dalam matriks quadtree, yang menunjukkan jika node harus dibagi atau tidak. Nilai nol mewakili daun 5
Skema pada gambar 33 dapat direlasikan sebagai berikut:
penanganan vertex dan fragment pada pipeline. Untuk arsitektur GPU yang modern, vertex prosessor dan fragment prosessor dapat dipro-gram langsung oleh programmer sehingga menghasilkan performa penggambaran yang lebih cepat dan hasil penggambaran yang lebih realistik. Ada tiga jenis shader yang dapat digunakan yaitu vertex shader, fragment shader, dan geometry shader. 1. Vertex Shader Vertex shader merupakan shader yang digunakan untuk memanipulasi suatu vertex (scaling, translasi, rotasi, dan sebagainya). 2. Fragment Shader Fragment shader digunakan untuk memanipulasi fragment yang akan digambar. Fragment shader memungkinkan programmer untuk melakukan proses perhitungan per piksel. Salah satu contoh yang banyak dipakai adalah metode per piksel lighting yaitu melakukan perhitungan percahaya-an untuk tiap piksel dari polygon yang digambar dengan beberapa sumber cahaya. Displacement Mapping Displacement mapping merupakan metode perubahan koordinat dari suatu vertex sesuai dengan peta yang dinginkan. Displacement mapping banyak dipakai untuk menggambar relief-relief yang disimpan secara dua dimensi dan divisualisasikan dengan penggambaran tiga dimensi memakai teknik displacement mapping ini. Selain itu, displacement mapping juga digu-nakan untuk memperindah scene sehingga terlihat lebih realistik. Peta yang digunakan pada displacemenet mapping adalah berupa gambar grayscale yang merupakan peta kedalaman dari suatu scene. Konsep displacement mapping secara sederhana dapat diilustrasikan seperti gambar
Dimana P1 adalah vektor hasil dari displacement mapping, P0 adalah vektor awal, N adalah normal vektor, df adalah faktor displacement yang ternormalisasi, dan uf adalah faktor scaling. Faktor displacement yang ternormalisasi didapatkan dari peta displacement, dan faktor scaling di-tentukan sesuai dengan kebutuhan. Partisi data terrain Tujuan utama dari langkah ini adalah untuk mengubah data mentah DEM ke struktur data yang diusulkan, yang berfungsi sebagai representasi data ekstrernal yang akan diolah untuk sistem. Proses ini dibagi menjadi dua bagian yaitu format data DEM yang berisi informasi header yang berkaitan dengan Data DEM. Parameter penting yang diambil dari catatan ini tanah koordinat untuk sudut; minimum dan maksimum nilai-nilai elevasi dankolom dan baris data. Minimum dan maksimum nilai-nilai elevasi kisaran koordinat z mewakili dataran tinggi. Kolom dan baris data adalah jumlah data poin atau simpul untukmenentukan ukuran medan di arah vertikal dan horisontal masing-masing Ekstrak dan Cropping data DEM Penggambaran atau rendering Terrain yang akan digunakan dalam system ini, mencoba untuk menampilkan data local dari peta geografis Indonesea. Peta data local yang digunakan sebagai sampling adalah peta pulau jawa, wilayah yang diambil adalah jawa timur. Pertimbangan yang akan ditampilkan adalah memiliki wilayah dataran dan ketinggian sehingga peta jawa timur dipersempit kembali dengan mengambil daerah gunung Bromo dan Semeru. Data wilayah yang akan digunakan untuk sampling percobaan ini berupa data 6
Geografis Information System (GIS) disimpan dalam struktur data Digital Elevation Model (DEM). Pertimbangan mengenai ketinggian (elevasi ) yang sesungguhnya tidak secara detail menjadi ukuran untuk divisual, karena hanya dijadikan sebagai parameter untuk membedakan kontur ketinggian dan dataran.
Proses tersebut diulang secara rekursif hingga besar terrain sama dengan 16 vertex. Proses tersebut dilustrasikan seperti pada gambar
Gambar Proses tile mapping. Seperti yang telah dibahas sebelumnya, pembentukan quadtree dilakukan dengan menggunakan fungsi rekursif. Proses yang dilakukan adalah mem-bagi koordinat dari heightmap per 4 bagian untuk satu level hingga mem-punyai lebar dan tinggi sebesar 16. Kode program 2 merupakan kode program untuk pembentukan quadtree. Quadtree dibentuk dengan menggunakan class CGLNodeQuadTree. Class tersebut berisi parameter-parameter yang dibutuhkan untuk melakukan view frustum culling pada tahap penggambaran. Metode Penelitian 3.1. Pendahuluan Pada bab ini dibahas beberapa perbaikan pada sistem rendering terrain yang akan dirancang menggunakan metode campuran antara view-dependent LOD dengan texture_array guna menempatkan data image serta displacement mapping dalam implementasinya menggunakan texture_array Model Shader 4.0 . Perbaikan sistem rendering data image Terrain yang diamati menggunakan metode Model Shader 4.0 bertujuan untuk peningkatan ukuran data heightmap yang dapat ditampung dalam Vertex Buffer Object (VBO) dalam proses rendering pada GPU. Secara umum, sistem ini memiliki dua fase utama yaitu tahap Preprocessing (prapengolahan ) dan Run-Time Processing (proses pengolahan). Masing-masing tahap ini diimplementasikan sebagai subsistem yang terpisah, ada empat langkah utama yang terlibat dalam pengembangan yang efektif untuk pengembangan sistem rendering
Gambar 3.4 Proses Quadtree Quadtree Quadtree pada sistem akan digunakan untuk melakukan frustum culling sehingga dapat menghilangkan polygon yang tidak terlihat lebih cepat. Pa-da sistem, node-node pada quadtree akan berisi informasi tentang koordi-nat tengah dari quad dan besar quad. Untuk membangun suatu quadtree, maka sistem memerlukan besar total dari terrain, dan jarak antar vertex pada terrain. Proses pembuatan quadtree dimulai dengan pembuatan root dari tree dengan nilai koordinat tengah dari quad adalah (0,0) dan dengan besar sama dengan besar terrain. Proses selanjutnya adalah memecah quad tersebut menjadi empat bagian dengan besar masing-masing adalah 25% dari besar awal. 7
Terrain dan sistem navigasinya (kamera). Setiap langkah mewakili kebutuhan objektif yang akan dicapai dalam penelitian ini. Langkah – langkah untuk melakukan pengembangan sistem secara umum dirancang dengan alur sebagai berikut :
1
Mulai Runtime Pengolahan
inisialisasi Pra Pengolahan
Pemeriksaan event
1 Selesai
Tahap 1. Partisi data Terrain Ekstrak dan Cropping data DEM Konversi data DEM ke Heightmap Image
8
Gambar Data heightmap yang digHasil pengambilan data untuk pengujian dengan data sebesar 4Kx4K disajikan dengan grafik perbandingan antara fps (frame per second) yang dihasilkan dengan parameter zfar.
20270
36807
108245
400
640x480
13047
1317
22798
41942
126257
500
640x480
14311
14994
25721
48025
147508
600
640x480
15812
17127
29039
54819
172472
700
640x480
17392
18944
32673
62561
200912
800
640x480
19051
21946
36702
71330
232907
900
640x480
20868
23921
41126
80889
268141
1000
640x480
11667
14762
20209
17343
106967
400
800x600
12536
16184
22737
22636
125058
500
800x600
13879
17922
25581
28798
147178
600
800x600
15538
19897
28978
35908
172221
700
800x600
16881
22109
32454
43887
201056
800
800x600
18461
24479
36562
52735
232656
900
800x600
20199
27244
40907
62610
268665
1000
800x600
Zfar
Resolusi
LOD Array Texture xscale=2.0
11834
LOD Array Texture xscale=3.0
12020
LOD Array Texture xscale=4.0
9
Resolusi
LOD Array Texture xscale=5.0
Pengujian ini dilakukan untuk memeriksa kinerja sistem dalam melakukan rendering untuk image heightmap dengan ukuran 8k x 8k. Uji yang dilakukan terhadap data sampling yaitu heightmap image gunung bromo. Image ini berasal dari data DEM yang dikonversi menggunakan aplikasi MicroDEM. Data image yang digunakan image texture dan heightmap gunung bromo Hasil pengukuran yang didapatkan adalah : Tabel data pengukuran fps
Zfar
LOD Array Texture xscale=1.0
image Data image texture
LOD Array Texture xscale=1.0
Data heightmap
LOD Array Texture xscale=2.0
melakukan pembandingan terhadap data image uji sampling dari penelitian yang pernah dilakukan(Reza,2008) dibandingkan dengan menggunakan metode Array Texture.nakan adalah sebagai berikut :
LOD Array Texture xscale=3.0
Pengujian Pertama
LOD Array Texture xscale=4.0
LOD Array Texture xscale=5.0
PENGUJIAN SISTEM
910
897
858
840
509
400
640x480
897
887
862
801
359
500
640x480
886
871
836
758
260
600
640x480
873
860
808
655
200
700
640x480
868
843
779
533
159
800
640x480
858
821
752
442
128
900
640x480
840
800
711
370
106
1000
640x480
597
622
564
549
439
400
800x600
593
616
559
531
357
500
800x600
585
608
548
512
261
600
800x600
575
599
536
490
198
700
800x600
574
592
522
468
159
800
800x600
567
580
510
444
129
900
800x600
562
569
495
373
105
1000
800x600
Dari keseluruhan data tabel dan gambar grafik yaitu data hasil pengambilan dengan heightmap sebesar 8Kx8K dengan resolusi 640x480, dapat dianalisa bahwa dengan menggunakan LOD kombinasi dengan array texture terdapat penurunan fps di semua variasi parameter. Dari gambar yaitu data hasil pengambilan dengan heightmap sebesar 8Kx8K dengan resolusi 800x600, juga didapatkan hasil yang tidak jauh berbeda dengan pada resolusi 640x480.
Teori tentang segitiga yang tergambar bahwa segi tiga yang tergambar akan naik secara cepat seiring dengan bertambahnya parameter zfar pada sistem. Gambar merupakan grafik perbandingan antara segitiga tergambar dengan zfar dengan berbagai parameter xzscale Dari grafik pada gambar dapat dianalisa bahwa dengan menggu-nakan sistem LOD yang dirancang, segitiga yang tergambar menjadi lebih banyak daripada tidak memakai LOD tanpa array texture. Efisiensi penggambaran ratarata adalah sebesar 15%, atau dengan kata lain dengan menggunakan sistem ini dapat meningkatkan segitiga yang digambar sampai dengan 15%.
Perbandingan antara fps dengan zfar pada sistem dengan parameter xzscale yang lain menghasilkan grafik yang mirip dengan perbedaan yang berbeda. Kedua data tersebut menunjukkan bahwa LOD yang dirancang menurunkan fps dari sistem sebesar 10 % -15 % tergantung dari parame-ter zfar yang digunakan. Tabel 4.2 merupakan data lengkap pengambilan data fps pada sistem dengan heightmap sebesar 8Kx8K. Hasil pengambilan data yang lain adalah segitiga yang tergambar.
Kesimpulan Perancangan dan implementasi penggambaran terrain dengan menggunakan metode view-dependent LOD model shader 4.0 telah berhasil dilakukan. Dari hasil beberapa pengujian yang dilakukan pada sistem viewdependent LOD yang dirancangkan, maka dapat disimpulkan beberapa hal yaitu: Sistem yang dirancang dapat meningktkan segitiga yang digambar sampai 15% sehingga didapatkan penggambaran yang lebih detail dan efisien serta peningkatan terhadap kinerja sistem. Kinerja dari sistem sangat dipengaruhi oleh parameter zfar (jarak kedalaman terjauh dari kamera yang merupakan batas penggambaran) dan xzscale (jarak antar sampling). Saran Untuk pengembangan lebih lanjut, dapat diusulkan pengembangan sebagai berikut: 10
Simulation. University of Iowa: Ph.D. Thesis. Hill, D. (2002). An Efficient, HardwareAccelerated, Level-of-Detail Rendering Technique for Large Terrains. University of Toronto: M.Sc. Thesis. Hjaltason, G.R. and Samet, H. (1995). Ranking in Spatial Databases. Proceedings of the 4th International Symposium on Advances in Spatial Databases. August 69. London, UK: Springer-Verlag, 83-95. Hoff, K. (1996). A Fast Method for Culling of Oriented-Bounding Boxes (OBBs) Against a Perspective Viewing Frustum in Large Walkthrough Models. http://www.cs.unc.edu/hoff/research/index.html Hoppe, H. (1998). Smooth View Dependant Level-of-Detail Control and its Application to Terrain Rendering. Proceedings of IEEE Visualization 1998. July 29-31. Los Alamitos, CA, USA: IEEE Computer Society Press, 35-42. Hoppe, H. (1999). Optimization of mesh locality for transparent vertex caching. Hubbard, P.M. (1995) Collision Detection for Interactive Graphics Applications. IEEE Transactions on Visualization and Computer Graphics. 1(3): 218-230. Jagadish, H.V. (1990). Linear Clustering of Objects with Multiple Attributes.
1. Optimasi dapat diterapkan dengan menggunakan tambahan metode frustum occulision culling sehingga dapat menghilangkan quad yang tertut-up oleh quad yang lain. 2. Implementasi textureheight map dengan menggunakan kompresi texture sehingga dapat menghemat memori pada GPU. 3. Implementasi detail texture dapat menggunakan motif texture yang lebih realistik untuk memperindah hasil penggambaran.
DAFTAR REFERENSI Ahn, H.K., Mamoulis, N. and Wong H.M. (2001). A Survey on Multidimensional Access Methods. COMP630c - Spatial, Image and Multimedia Databases: Technical Report UU-CS-2001-14. Optimized View Frustum Culling Algorithms for Bounding Boxes. Journal of Graphics Tools. 5(1): 9-22. Bentley, J.L. (1975). Multidimensional binary search trees used for associative searching. Communications of the ACM. 18(9): 509-517. Bittner, J., Wonka, P. and Wimmer, M. (2001). Visibility Preprocessing for Urban Scene using Line Space Subdivision. Bradley, D. (2003). Evaluation of Real-time Continuous Terrain Level of Detail Algorithms. Charlton University: COM4905 Honours Project. Burns, D. and Osfield, R. (2001). Gribb, G. and Hartmann, K. (2001). Fast Extraction of Viewing Frustum Planes from the World-View-Projection Matrix. unpublished. Guttman, A. (1984). R-trees: A Dynamic Index Structure for Spatial Searching. Proceedings of SIGMOD ‘84. Jun 18-21. Boston, MA: ACM Press, 47-57. Haines, E. (2001). 3D Algorithmic Optimizations. California, USA: SIGGRAPH 2001 Course. Hawkins, K. and Astle, D. (2002). OpenGL Game Programming. Ohio, USA: Premier Press. He, Y. (2000). Real-time Visualization of Dynamic Terrain for Ground Vehicle
11