Analisa Identifikasi Permasalahan PERANCANGAN SISTEM

33

BAB III PERANCANGAN SISTEM

3.1. Analisa Identifikasi Permasalahan

Dalam mengembangkan aplikasi berbasis tiga dimensi pihak pengembang biasanya memerlukan suatu alat tool yang dapat berupa API yang berfungsi untuk menghubungkan antara perangkat lunak yang dikembangkan dengan perangkat keras untuk mengolah data tiga dimensi yang diinginkan. API tersebut merupakan kumpulan interface atau perintah untuk menjalankan hal-hal yang dibutuhkan dalam melakukan pengolahan data tiga dimensi yaitu antara lain: enumerasi device rendering, pengaturan tampilan, mengolah data primitif tiga dimensi, menghitung posisi model, menampilkan gambar ke layar, memproses file tekstur, dan sebagainya. API tersebut dari awal ditujukan sebagai antarmuka interface untuk perangkat grafis tiga dimensi. Dengan demikian tahapan-tahapan dalam pengolahannya menyesuaikan urutan proses yang panjang dalam hardware grafis tiga dimensi tersebut. Contohnya pada gambar tahapan proses pada API Direct3D Direct3D Graphics Pipeline dibawah ini: Gambar 3.1. Direct3D Graphics Rendering Pipeline [Sumber: http:www.viznet.ac.ukfilesd39pipeline.gif Time Download: 15012013 14:38:10] STIKOM SURABAYA Berdasarkan gambar diatas prosedur pipeline dimulai dari membuat data primitif primitive data berupa titik, garis, segitiga dan poligon serta mendefinisikan data verteks vertex data beserta parameternya sesuai kebutuhan. Setelah itu tesselator unit akan mengkonversi urutan dari atas ke bawah data primitif, displacement maps, dan mesh patches ke lokasi verteks lalu menyimpan lokasi tersebut ke dalam verteks buffer dan proses ini dinamakan Tesselation. Kemudian pada tahapan Vertex Processing transformasi data Direct3D diaplikasikan ke verteks yang kemudian disimpan di verteks buffer. Selanjutnya tahap Geometry Processing akan melakukan beberapa proses yang meliputi clipping , backface culling, evaluasi atribut, dan rasterization yang kemudian digunakan pada verteks yang sudah ditransformasikan. Tahapan Pixel Processing akan melakukan operasi pixel shader menggunakan data geometri untuk memodifikasi input nilai verteks dan data tekstur sehingga menghasilkan output berupa nilai warna pixel pixel color values. Dan terakhir pada tahapan Pixel Rendering merupakan proses rendering akhir yang memodifikasi warna pixel dengan nilai alpha, depth kedalaman, stencil testing, blending dan fog lalu semua hasil nilai pixel akan ditampilkan ke output display layar. Tahapan- tahapan pipeline grafis tersebut harus dilalui untuk menghasilkan gambar tiga dimensi sekecil apapun agar dapat di proses ke dalam layar. Berdasarkan penjelasan diatas maka pengembang akan sulit untuk mengembangkan aplikasi berbasis tiga dimensi dikarenakan oleh proses yang panjang dan kompleks dari prosedur tahapan-tahapan pipeline grafis dari API. Permasalahan lainnya adalah banyaknya fungsi-fungsi teknis yang rumit pada API seperti fungsi persiapan device beserta parameternya, pengaturan tipe data STIKOM SURABAYA verteks, pengaturan buffer-buffer untuk perangkat grafis tiga dimensi dan sebagainya. API grafis tiga dimensi juga memiliki keterbatasan yaitu kurangnya dukungan algoritma-algoritma untuk efisiensi dan efektifitas dalam proses rendering, dan perhitungan matematika dalam mengolah data tiga dimensi. Serta tidak adanya manajemen untuk mengelola sumber daya yang saling terintegrasi antara perangkat lunak yang dikembangkan oleh pihak pengembang dengan perangkat keras grafis tiga dimensi yang disediakan. Untuk mengatasi permasalahan diatas maka perlu dirancang suatu sistem framework rendering engine yang membantu pihak pengembang dalam mengembangkan aplikasi berbasis tiga dimensi yang diinginkan. Konsep framework dinilai dapat sangat bermanfaat untuk pengembangan aplikasi karena fungsi dan perintah dari API grafis seperti Direct3D berserta algoritma-algoritma dan perhitungan matematika akan dikelompokkan ke dalam modul-modul subsistem yang saling terintegrasi antara satu dengan yang lain. Kemudian akan menyediakan class-class yang berisi perintah dan fungsi-fungsi yang hanya dibutuhkan oleh pihak pengembang untuk membuat suatu aplikasi berbasis tiga dimensi. Sedangkan rendering engine berfungsi sebagai manjemen pengelolaan sumber daya dari aplikasi yang dibuat ketika ditampilkan di layar secara realtime. Rendering engine juga melakukan fungsi-fungsi tertentu khusus seperti enumerasi adapter grafis, mengolah data dan model tiga dimensi, berkomunikasi dengan kartu grafis, mengelola memory buffer, melakukan komputasi perhitungan matematika dan pekerjaan-pekerjaan tingkat rendah lainnya. Selain itu pada framework rendering engine ini menggunakan teknologi SIMD atau perhitungan matematika cepat dengan bantuan hardware seperti MMX STIKOM SURABAYA dan SSE untuk mengolah komputasi algoritma dan perhitungan matematika. Dengan adanya framework rendering engine tersebut pihak pengembang akan lebih mudah mengelola dan menjalankan aplikasi berbasis tiga dimensi yang dikembangkannya sesuai dengan yang diharapkan.

3.2. Algoritma Manajemen Scene