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.