April 24, 2008

Gambar Grafik 3D Di Website

Oleh Deny Depok
AutoBatik 3D on Web
Walau gaungnya tidak sekenceng Ajax, usaha untuk menampilkan grafik 3D di web saat ini sebenarnya mulai menunjukkan geliat yang cukup menarik untuk diamatin. Maksud saya bukan sekedar gambar 3D , tapi sistem grafik 3D yang interaktif, seperti di game-game 3D. Sebenarnya keinginan untuk menampilkan grafik 3D di web sudah lama sekali, mungkin ada yang masih inget sama VRML jaman dulu ?

Jika memang udah lama kenapa baru mulai ribut-ribut sekarang ? jawabannya adalah dulu lingkungan yang tersedia untuk 3D di web feasible banget. Apakah sekarang sudah ? jawabannya belum.

Saya mulai cerita dari VRML. Yang membuat VRML sadar kalo projek mereka gagal, alasannya  macem-macem, saya tidak mau membahas disini, tapi yang pasti makin lama suara VRML makin tidak kedengaran. Melihat kenyataan tersebut, tim VRML mencoba untuk memperbaiki spek VRML agar dapat mengikuti struktur modern a.k.a XML, sehingga lahirlah X3D. Selain spek sintaks, X3d juga menambah kemampuan interaksi antara model 3D dengan lingkungan pemrograman yang diberi nama X3D SAI (scene application interface). Akhirnya model 3D dengan X3D ini bisa untuk membuat aplikasi 3D yang lumayan kompleks. Saya dah pernah buat aplikasi pake X3D, screenshotnya seperti gambar diatas itu. Gambar tersebut adalah gambar fraktal 3D dengan pendekatan LSystem.

Walaupun X3D punya banyak fitur, tapi gaungnya tetep gak kenceng, sampai mencoba membajak nama Ajax sehingga munculah Ajax3D seperti yang ada di web www.ajax3d.org. Tapi tetep tidak banyak yang tertarik, kalau saya analisa kebanyakan developer trauma dengan kegagalan VRML yang dulu sempat booming tapi kemudian  mati pelan-pelan. Menurut saya ditambah kurangnya dukungan web browser (yang bagusnya sih otomatis include kemampuan X3d),  apalagi belum ada plugin X3D yang benar-benar free membuat orang males memakainya. Download plugin yang free untuk personal sebesar 5MB tidak berminat, apalagi harus bayar jika mau mengembangkan aplikasi komersial untuk plugin yang performansinya tidak begitu bagus.

Perkembangan lain datang dengan munculnya tag canvas di browser selain IE (firefox + opera tentunya, tapi google sudah menyediakan emulasinya untuk IE). Tag ini memungkinkan developer web untuk menggambar secara programming di dalam area canvas tersebut. Developer yang senang main grafik, langsung excited banget untuk mengexploitasi fitur ini, dan tentu saja mulai berfikir untuk menampilkan grafik 3D dengan canvas tersebut. Dari percobaan saya untuk membangun 3D engine diatas canvas, hasilnya tidak feasible banget, walau baru wireframe + shadding flat, untuk 100 surface saja sudah sangat lambat. Dari beberapa orang lain yang mencoba hasilnya tidak jauh beda. Ya bagaimana lagi, canvasnya tidak dioptimasi untuk pemrograman grafik yang rumit ditambah kecepatan javascript yang anda tahu.

Tapi sebenarnya canvas memang sudah didesain untuk mengantisipasi grafik kompleks seperti 3D. Karena memang saat ini baru konteks 2D yang didukung, makanya nmembuat engine 3D manual pakai javascript diatas konteks 2D seperti jamannya program DOS ingin menampilkan 3D. Ada beberapa tim yang mencoba untuk membuat konteks 3D diatas canvas, minimal ada 2 yang sudah saya dengar, dari orang firefox dan orang opera. Tapi sayang kedua tim tadi memilih pendekatan yang berbeda.

Tim firefox mencoba mengembangkan dari OpelGL embedded, sedangkan opera mengembangkan dari model engine yang tidak tergantung sama library 3D pipenya. Sebenernya keduanya ada keuntungannya, tapi sayang kalo tidak sepakat. Tim opera berargumentasi kalo engine yang tidak tergantung library mudah untuk diimplementasikan diberbagai sistem sampai hardware seperti handphone. Kalo saya sebagai orang manajemen, saya pasti mendukung opera, implementasi bisa buat hampir semua hardware. Tapi kalo sebagai programmer yang pernah main-main sama 3D, tim firefox benar sekali. Bukan apa-apa, kalo kita memprogram 3D, pasti ada saja yang harus kita buat sendiri, dan semakin low level (OpenGL kan langsung main ke hardware) performansinya pasti lebih bagus. Buat apa punya hardrware 3D bagus tapi tidak bisa dipakai optimal, engine 3D sendiri dibangun berdasarkan ketersediaan hardware saat dibangun dan harus mengakomodasi banyak orang jadi mungkin tidak optimal untuk kebutuhan tertentu.

Mungkin perlu waktu beberapa saat lagi sebelum canvas 3D didukung secara default di browser (firefox + opera ya, IE sih saya tidak berharap banyak). Tapi percaya jika tim-tim di atas akan menuntaskan tujuannya, untuk perkembangan firefox bisa dilihat di Canvas3D Forum Mozilla. Tapi sebenarnya ada satu hal lagi yang belum dipegang sama tim-tim tersebut, yaitu matematika 3D. Pasti langsung banyak yang mikir kenapa harus khusus bikin untuk matematika 3D, kan tinggal bikin aja di javascript. Saya tahu, tapi jangan lupa, kalau program 3D yang profesional itu tidak menghitung matematika 3D secara programming standar, tapi memakai bantuan hardware.

Ingat sama MMX/3D Now/SSE ? Semua istilah tadi mengacu pada teknologi SIMD (Single Instruction Multiple Data). Maksudnya dengan sekali instruksi (jadi satu cycle CPU) bisa mengoperasikan perhitungan matematika terhadap beberapa data. Ya bayangin aja 3D kan mainnya vektor yang berisi 3 data floating point, plus matriks 4×4 biasanya. Kalo memakai programming biasa pasti prosesnya sebanyak datanya, tapi kalo pake SIMD cuma sekali jalan, asik kan ? Jadi mungkin objek Math-nya javascript harus dikembangin untuk operasi 3D dan matriks, tapi tentu saja mengeksploitasi MMX/3D Now/SSE.

Walau banyak yang skeptis terhadap 3D di web seperti bilang buat apa, ya terserah mereka. Tapi saya yakin aplikasi 3D on web dimasa depan akan sagat banyak. Kondisinya seperti dulu orang nonton TV/Video atau mendengarkan radio/ nelpon lewat internet juga banyak yang bilang tidak mungkin dan untuk apa, tapi setelah ada youtube + skype malah jadi makanan sehari-hari. Dan 3D di web, saya rasa bakal booming tidak lama lagi, tinggal kita lihat saja. Saya sendiri sudah punya banyak ide 3D di web, tinggal apakah ada yang mau men-sponsori tidak? (telah diedit-Roy)

Sumber : Denny.klorofil.org

Tags: , ,

Spread the word

del.icio.us Digg Furl Reddit Ask BlinkList blogmarks BUMPzee Blogg-Buzz Google Ma.gnolia muti Netscape Newsvine PlugIM ppnow Rojo Shadows Simpy Slashdot Socializer Sphere Spurl StumbleUpon Tailrank Technorati Windows Live Wists Yahoo! Help

Permalink • Print • Comment

Trackback uri

http://d-software.org/aplikasi-web/243-gambar-grafik-3d-di-website/trackback

Related Entries

Google
 

Leave a Comment

You must be logged in to post a comment.