On Geometry Shader

Malam ini lagi iseng jalan-jalan ke sini lalu dengerin orang-orang bergosip tentang spesifikasi OpenGL 3.0. Di forum tersebut sempat disinggung mengenai apakah fitur Geometry Shader masuk dalam spesifikasi OpenGL 3.0 atau tidak.

waduh, apa pula itu geometry shader?

Ternyata memang saya yang kurang gaul (atau memang perangkatnya yang belum tersedia dan terjangkau untuk umum) kalau geometry shader adalah modul tambahan dalam rendering pipeline yang dapat diprogram. Awalnya saya bingung karena hasil pencarian google untuk ‘geometry shader’ dalam bahasa Indonesia tidak ada yang dapat saya mengerti (entah penulisnya yang salah mengartikulasikan atau alih bahasanya yang kurang tepat). Bahkan untuk majalan PCMedia (01/2006 *halah, udah basi juga*) pun menulis seperti ini.

…Tambahan terbesar pada DirectX 10 adalah dukungn untuk geometry shader. Melalui shader ini pada developer bisa memanipulasi gambar primitif dengan menggunakan shader. Dengan geometry shader, akan membantu mengurangi bottleneck pada bandwidth memory, terutama saat melakukan rendering gambar yang berbentuk seperti rambut atau bayangan

Akhirnya saya putuskan untuk mencari dalam bahasa inggris dan akhirnya saya mendapat penjelasan yang lebih jelas untuk dipahami.


Latar Belakang Geometry Shader

Kalau tidak salah, saya pernah membaca slide tentang gosip DirectX 10 yang membahas mengenai persoalan pada perangkat keras grafik yang ada sekarang. 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 yang tinggi (jumlah vertex yang sangat banyak). Hal ini (mungkin) yang melatar-belakangi ide untuk Geometry Shader. Manfaat utama dari geometry shader adalah kemampuan untuk menyisipkan vertex ke dalam stream geometri sebelum digambar (proses rasterisasi). Umumnya jika CPU mengirim n vertex maka GPU akan memproses n vertex juga sedangkan dengan adanya geometry shader memungkinkan GPU untuk mengubah jumlah vertex yang diproses menjadi m vertex (nilai m bisa sama atau tidak sama dengan nilai n) melalui penyisipan/penghapusan vertex.

Aplikasi Geometry Shader

Kalau dipikir-pikir, aplikasi yang dimungkinkan dengan adanya geometry shader adalah LOD (level of detail) terhadap struktur geometri rekursif/fraktal atau partikulat melalui pembangkitan secara dinamis (dynamically generated) di GPU. Contoh dari LOD antara lain terrain, pohon (seperti di workshop shader model 4-nya microsoft), particles, subsurface smoothing, skinning.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s