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