Algoritma Octree Algoritma Manajemen Scene

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

Dalam proses rendering algoritma manajemen scene merupakan instrumen yang sangat penting jika ingin menampilkan menampilkan lebih dari ratusan ribu polygon segitiga yang membentuk obyek-obyek 3D ke dalam layar. Hal ini dikarenakan keterbatasan dari pengolahan yang dapat dilakukan oleh kartu grafis yang ada saat ini. Algoritma tersebut membantu memilih polygon yang diperlukan terhadap lokasi dan orientasi tertentu dari penonton agar dapat dikeluarkan dari seluruh anggota ratusan ribu lebih polygon dari scene. Karena kebanyakan dari polygon tersebut tidak terlihat oleh user. Metode algoritma manajemen scene yang akan digunakan oleh framework rendering engine ini adalah Octree dan BSP Tree.

3.2.1. Algoritma Octree

Octree merupakan salah satu algoritma manajemen scene yang umumnya digunakan untuk area outdoor. Algoritma tersebut akan membagi menjadi 8 kelompok simpul kecil dari kelompok polygon secara rekursif, yang kemudian dapat diuji persimpangannya dan melakukan traversal agar dapat ditampilkan pada layar. Berikut adalah pembuatan algoritma Octree berdasarkan inputan polygon. STIKOM SURABAYA Gambar 3.2 Flowchart Pembuatan Algoritma Octree Mulai Load seluruh polygon Buat obyek Octree Set Octree menjadi Root Daftarkan polygon jumlahnya ke dalam Octree Kalkulasi Bounding Box Root Cek apakah jumlah polygon 10 Inisialisasi Child berdasarkan ID dan Parentnya sebanyak 8 bagian Proses memisahkan polygon berdasarkan Bounding Box Child Ya Rekursif Pembuatan Child Selesai Tidak STIKOM SURABAYA Berikut adalah penjelasan langkah-langkah pembuatan algoritma Octree: 1. Pertama-tama diawali dengan seluruh memuat load seluruh polygon baik yang berasal dari file atau sumber lainnya data polygon disimpan menjadi pointer array TumozPolygon. 2. Proses selanjutnya adalah membuat obyek Octree yang ditujukan untuk membangun tree baru berdasarkan polygon yang ada. 3. Polygon-polygon yang telah di muat kemudian didaftarkan pada Octree yang baru dibuat dan juga memasukkan jumlahnya sebagai parameter. 4. Octree yang baru dibuat tersebut kemudian dijadikan root simpul akar atau parent simpul induk dari tree diagram pohon. Hal ini dilakukan agar menjadi acuan bagi semua child simpul anak. 5. Setelah di atur menjadi root, maka dilanjutkan dengan proses mengkalkulasi bounding box root tersebut. Setiap obyek simpul di dalam Octree harus mengkalkulasikan bounding boxnya menggunakan AABB agar nanti dapat dikelompokkan berdasarkan posisisnya dan untuk mengetahui ruang lingkup dari tiap simpul. 6. Setelah itu melakukan pemeriksaan jumlah anggota simpul yaitu polygon- polygon yang telah didaftarkan, apabila melebihi batas jumlah yang ditentukan maka akan dilanjutkan ke proses selanjutnya sistem ini memberikan batas 10 polygon per simpul. Dan jika sebaliknya maka akan menjadi simpul daun leaf sehingga proses pembuatan child akan diakhiri. 7. Root atau parent akan di bagi menjadi 8 child dan melakukan proses inisialisasi. Inisialisasi tersebut merupakan proses pemberian ID untuk masing-masing child, lalu mengkalkulasi ulang bounding box berdasarkan STIKOM SURABAYA posisinya, serta menyimpan data parentnya. Kedelapan ID atau Posisi dari child tersebut adalah Timur Laut Atas UP_NE, Barat Laut Atas UP_NW, Tenggara Atas UP_SE, Barat Daya Atas UP_SW, Timur Laut Bawah LW_NE, Barat Laut Bawah LW _NW, Tenggara Bawah LW _SE, dan Barat Daya Bawah LW _SW. 8. Apabila child telah diinisialisasi maka dilanjutkan dengan proses memotong atau mengelompokkan polygon-polygon berdasarkan ruang lingkup bounding box dari child tersebut. Setelah selesai maka akan dilakukan proses rekursif kembali ke langkah ke 6, dan menjadikan child tersebut menjadi root atau parent bagi child dibawahnya secara terus menerus sampai memenuhi kondisi dimana jumlah polygon tidak melebihi batas yang telah ditentukan yaitu 10 polygon pada langkah ke 6.

3.2.2. Algoritma BSP Tree