Materi OpenGL & API (Application Programming Interface)

OpenGL

OpenGL (Open Graphics Library) adalah standar API yang dapat digunakan untuk membuat aplikasi berbasis grafik, baik dua dimensi (2D) maupun tiga dimensi (3D). OpenGL ini bersifat cross-platform, artinya dapat dijalankan pada berbagai platformsistem operasi yang ada saat ini.  Untuk membuat aplikasi menggunakan OpenGL, terlebih dahulu kita membutuhkan suatu konsepsi interfacing dalam implementasinya. Salah satu cara yang sudah umum digunakan adalah dengan membuat window-based OpenGL. Untuk dapat membuat konsep windowing pada OpenGL, kita memerlukan tool tertentu. Yang kita gunakan kali ini adalah GLUT (OpenGL Utility Toolkit). GLUT dipilih karena di dalamnya telah terdapat banyak fungsi yang dapat dipakai untuk pembuatan application window

Disamping itu, windowing pada GLUT juga bersifat independen terhadap sistem operasi, sehingga kita tidak perlu repot-repot untuk mengubah kode program jika diterapkan pada sistem operasi yang berbeda.

IDE yang digunakan :
Kecenderungan implementasi pemrograman yang ada saat ini adalah dengan memanfaatkan IDE. Karena memang pada kenyataannya dunia pemrograman semakin lama akan semakin kompleks. Dengan banyaknya primitif-primitif atau fungsi-fungsi dasar yang telah dibungkus ke dalam berbagai struktur referensi library, maka sepertinya akan sangat menyusahkan jika kita tidak memanfaatkan IDE untuk membantu kita dalam memrogram. Secara pengertian, IDE (Integrated Development Environment) adalah suatu tool pengembangan yang di dalamnya minimal terdapat: editor kode program, compiler atau interpreter atau link ke compiler atau interpreter,builder, dan debugger. Banyak sekali IDE yang ada sekarang, beberapa contohnya adalah: Visual Studio, Codeblocks, Netbeans, Eclipse, dsb. Tapi sekarang kita tidak akan membahas lebih detail mengenai IDE.

API (Application Programming Interface)

Sekumpulan perintah, fungsi serta protocol yang dapat digunakan untuk programmer saat membangun perangkat lunak untuk system operasi tertentu

RENDERING
Rendering adalah proses akhir dari keseluruhan proses pemodelan ataupun animasi komputer. Dalam rendering, semua data-data yang sudah dimasukkan dalam proses modeling, animasi, texturing, pencahayaan dengan parameter tertentu akan diterjemahkan dalam sebuah bentuk output (tampilan akhir pada model dan animasi).

Rendering tidak hanya digunakan pada game programming, tetapi juga digunakan pada banyak bidang, misalnya arsitektur, simulator, movie, spesial effect pada tayangan televisi, dan design visualization. Rendering pada bidang-bidang tersebut memiliki perbedaan, terutama pada fitur dan teknik renderingnya. Terkadang rendering juga diintegrasikan dengan model yang lebih besar seperti paket animasi, tetapi terkadang berdiri sendiri dan juga bisa free open-source product.

Metode Rendering
- Ray Tracing Rendering
        Ray tracing sebagai  sebuah metode  rendering pertama kali digunakan pada tahun 1980
        untuk pembuatan gambar tiga dimensi. Ide dari metode rendering ini sendiri berasal dari
        percobaan Rene Descartes,  di mana ia menunjukkan pembentukan  pelangi  dengan
        menggunakan  bola  kaca berisi air dan kemudian merunut kembali arah datangnya
        cahaya  dengan  memanfaatkan  teori  pemantulan  dan pembiasan cahaya yang telah 
        ada saat itu.
        Metode  rendering ini  diyakini  sebagai  salah  satu metode  yang  menghasilkan  gambar
        bersifat  paling fotorealistik. Konsep dasar  dari  metode ini  adalah  merunut  proses yang 
        dialami  oleh  sebuah  cahaya  dalam perjalanannya dari  sumber  cahaya  hingga  layar
        dan  memperkirakan warna  macam apa  yang  ditampilkan  pada  pixel  tempat jatuhnya
        cahaya.  Proses  tersebut  akan  diulang  hingga seluruh pixel yang dibutuhkan terbentuk. 
     - Wireframe rendering
       Wireframe yaitu Objek 3D dideskripsikan sebagai objek tanpa permukaan. Pada wireframe   rendering, sebuah objek dibentuk hanya terlihat garis-garis yang menggambarkan sisi-sisi
       edges dari sebuah objek. Metode ini dapat dilakukan oleh sebuah komputer dengan 
       sangat cepat, hanya kelemahannya adalah tidak adanya permukaan, sehingga sebuah
       objek terlihat tranparent. Sehingga sering terjadi kesalahpahaman antara siss depan dan
       sisi belakang dari sebuah objek.
     - Hidden Line Rendering
       Metode ini menggunakan fakta bahwa dalam sebuah objek, terdapat permukaan yang 
       tidak terlihat atau permukaan yang tertutup oleh permukaan lainnya. Dengan metode ini, 
       sebuah objek masih direpresentasikan dengan garis-garis yang mewakili sisi dari objek, 
       tapi beberapa garis tidak terlihat karena adanya permukaan yang menghalanginya. Metode
       ini lebih lambat dari dari wireframe rendering, tapi masih dikatakan relatif cepat.
       Kelemahan metode ini adalah tidak terlihatnya karakteristik permukaan dari objek tersebut 
,      seperti warna, kilauan (shininess), tekstur, pencahayaan, dll.
     - Shaded Rendering
       Pada metode ini, komputer diharuskan untuk melakukan berbagai perhitungan baik 
       pencahayaan, karakteristik permukaan, shadow casting, dll. Metode ini menghasilkan citra 
       yang sangat realistik, tetapi kelemahannya adalah lama waktu rendering yang dibutuhkan.

     Contoh nyata dari rendering adalah dengan menggunakan software Blender, Vray (3DS Max) dan OpenGL. Satu trik khusus membuat kita dapat me-render seluruh film yang tengah kita buat dengan sangat cepat, yaitu render pranala. Bayangkan kita dapat segera menyaksikan karya kita, memeriksa kualitas animasi dan narasinya, tanpa perlu menunggu proses render yang terlalu lama. Render pranala memanfaatkan pustaka OpenGL yang menggambar seluruh antarmuka Blender termasuk viewport 3D ke layar, sehingga meski ia mengorbankan kualitas visual, jenis render ini dapat dilakukan dengan sangat cepat.

Contoh rendering dengan menggunakan OpenGL adalah render pranala. Render ini tidak dapat langsung dilakukan melalui baris perintah. Blender harus terlebih dahulu memiliki “kanvas” OpenGL, yang artinya proses render harus dimulai saat antarmuka grafis tersedia. Eksekusi perintah render dilakukan dengan injeksi perintah Python, dengan satu-satunya perbedaan adalah fungsi yang dipanggil. Bila render normal dipanggil dengan fungsi bpy.ops.render.render(animation=True), maka render OpenGL dipanggil dengan fungsi: bpy.ops.render.opengl(animation=True, view_context=False)
Untuk merender dengan menggunakan Vray (3DS Max), proses rendering dibagi ke dalam 3 tahapan, yaitu pertama untuk proses rendering RGBA (Red Green Blue Alpha) image, kedua untuk rendering Ambience Occlusion, dan ketiga untuk rendering shadow. Vray sampai saat ini telah mengeluarkan versi Cinema 4D.








Share this

Related Posts

Previous
Next Post »