Minggu, 30 Oktober 2011

Rendering

Pada kesempatan kali ini saya akan menjelaskan tentang Rendering.Rendering merupakan salah satu sub topik utama dalam 3D computer graphics. Dan pada prakteknya selalu berhubungan dengan aspek-aspek yang lain. Seperti Graphic pipeline, yang merupakan tahapan terakhir, memberikan tampilan akhir pada model dan animasi.
Rendering tidak hanya digunakan pada game programming. Rendering juga sering digunakan untuk desain arsitektur, simulator, movie atau juga spesial effect pada tayangan televisi, dan design visualization. Setiap bidang tadi mempunyai perbedaan dalam keseimbangan antara features dan tehnik dalam rendering. Terkadang rendering juga diintegrasikan dengan model yang lebih besar, paket animasi, terkadang juga berdiri sendiri dan juga terkadang free open-source product.

Rendering adalah salah satu sub-topik utama dari komputer grafis 3D , dan dalam praktek selalu terhubung dengan orang lain. Dalam pipa grafis , itu adalah langkah besar terakhir, memberikan penampilan akhir untuk model dan animasi. Dengan meningkatnya kecanggihan komputer grafis sejak tahun 1970, telah menjadi subjek lebih jelas.

Rendering telah digunakan dalam arsitektur , video game , simulator , film atau TV efek visual , dan visualisasi desain, masing-masing menggunakan keseimbangan yang berbeda fitur dan teknik. Sebagai produk, tersedia berbagai renderers. Beberapa diintegrasikan ke dalam paket pemodelan dan animasi yang lebih besar, beberapa berdiri sendiri, beberapa bebas proyek open-source. Di bagian dalam, penyaji adalah sebuah program dengan hati-hati rekayasa, berdasarkan campuran selektif disiplin yang berkaitan dengan: cahaya fisika , persepsi visual , matematika dan pengembangan perangkat lunak .
Dalam kasus grafis 3D, rendering bisa dilakukan perlahan-lahan, seperti pada pra-rendering , atau secara real time. Pra-rendering adalah proses komputasi secara intensif yang biasanya digunakan untuk pembuatan film, sedangkan real-time rendering sering dilakukan untuk 3D video game yang mengandalkan pada penggunaan kartu grafis dengan akselerator 3D hardware.


Berbagai teknik rendering diterapkan untuk adegan 3D tunggal

Secara umum, proses untuk menghasilkan rendering dua dimensi dari objek-objek 3D melibatkan 5 komponen utama, yaitu geometri, kamera, cahaya, karakteristik permukaan dan algoritma rendering.
Secara umum, proses untuk menghasilkan rendering dua dimensi dari objek-objek 3D melibatkan 5 komponen utama :

Geometri

Kamera

Dalam grafika 3D, sudut pandang (point of view) adalah bagian dari kamera. Kamera dalam grafika 3D biasanya tidak didefinisikan secara fisik, namun hanya untuk menentukan sudut pandang kita pada sebuah world, sehingga sering disebut virtual camera. Sebuah kamera dipengaruhi oleh dua buah faktor penting.

Faktor pertama adalah lokasi (camera location). Lokasi sebuah kamera ditentukan dengan sebuah titik (x,y,z).

Faktor kedua adalah arah pandang kamera. Arah pandang kamera ditunjukkan dengan sebuah sistem yang disebut system koordinat acuan pandang atau sistem (U,N,V). Arah pandang
kamera sangat penting dalam membuat sebuah citra, karena letak dan arah pandang kamera menentukan apa yang terlihat oleh sebuah kamera. Penentuan apa yang dilihat oleh kamera
biasanya ditentukan dengan sebuah titik (x,y,z) yang disebut camera interest.

Pada kamera, dikenal field of view yaitu daerah yang terlihat oleh sebuah kamera.Field of view pada grafika 3D berbentuk piramid, karena layar monitor sebuah komputer berbentuk segiempat. Objekobjek yang berada dalam field of view ini akan terlihat dari layar monitor, sedang objek-objek yang berada di luar field of view ini tidak terlihat pada layar monitor. Field of view ini sangat penting dalam pemilihan objek yang akan diproses dalam rendering. Objekobjek diluar field of view biasanya tidak akan diperhitungkan, sehingga perhitungan dalam proses rendering, tidak perlu dilakukan pada seluruh objek.

Cahaya

Sumber cahaya pada grafika 3D merupakan sebuah objek yang penting, karena dengan cahaya ini sebuah world dapat terlihat dan dapat dilakukan proses rendering. Sumber cahaya ini juga membuat sebuah world menjadi lebih realistis dengan adanya bayangan dari objek-objek 3D
yang ada. Sebuah sumber cahaya memiliki jenis. Pada grafika 3D
dikenal beberapa macam sumber cahaya, yaitu :
a. point light
memancar ke segala arah, namun intensitas cahaya yang diterima objek bergantung dari posisi sumber cahaya. Tipe ini mirip seperti lampu pijar dalam dunia nyata.
b. spotlight
memancarkan cahaya ke daerah tertentu dalam bentuk kerucut. Sumber cahaya terletak pada puncak kerucut. Hanya objek-objek yang terletak pada daerah kerucut tersebut yang akan nampak.
c. ambient light
cahaya latar/alam. Cahaya ini diterima dengan intensitas yang sama oleh setiap permukaan pada benda. Cahaya latar tersebut dimodelkan mengikuti apa yang terjadi di alam, diaman dalam keadaan tanpa sumber cahaya sekalipun, benda masih dapat dilihat.
d. area light
e. directional light
memancarkan cahaya dengan intensitas sama ke suatu arah tertentu. Letak tidak mempengaruhi intensitas cahayanya. Tipe ini dapat menimbulkan efek seolah-olah sumber cahaya berada sangat jauh dari objek
f. parallel point
sama dengan directional, hanya pencahayaan ini memiliki arah dan posisi.

Model dari pencahayaan, dipakai untuk menghitung intensitas dari cahaya yang terlihat dari setiap posisi pada setiap permukaan benda yang terlihat oleh kamera. Ketika melihat sebuah benda, terlihat cahaya yang dipantulkan dari permukaan benda, dimana cahaya ini merupakan intregrasi dari sumber-sumber cahaya serta cahaya yang berasal dari pantulan cahaya permukaan-permukaan yang lain. Karena itu benda-benda yang tidak langsung menerima cahaya dari sumber cahaya, masih mungkin terlihat bila menerima cahaya pantulan yang cukup dari
benda didekatnya.

Model sederhana dari sumber cahaya adalah sebuah titik sumber, dimana dari titik ini cahaya dipancarkan. Perhitungan pencahayaan bergantung pada sifat dari permukaan yang terkena cahaya, kondisi dari cahaya latar serta spesifikasi sumber cahaya.

Semua sumber cahaya dimodelkan sebagai sumber titik yang dispesifikasikan dengan :
a. Lokasi; Lokasi (x,y,z) dari sebuah sumber cahaya akan menentukan pengaruhnya terhadap sebuah objek.
b. Intensitas; Intensitas cahaya menyatakan kekuatan cahaya yang dipancarkan oleh sebuah sumber cahaya. Parameter ini merupakan angka, yang biasanya makin besar nilainya, makin terang sumber cahaya tersebut.
c. Warna; Warna cahaya dari sumber ini akan mempengaruhi warna dari sebuah objek, jadi selain warna objek tersebut warna cahaya yang jatuh pada objek tersebut akan mempengaruhi warna pada rendering. Warna cahaya ini biasanya terdiri dari 3 warna dasar grafika komputer, yaitu: merah, hijau, biru atau lebih dikenal dengan RGB.

Karakteristik Permukaan

Karakteristik permukaan dari sebuah objek adalah sifat dari permukaan sebuah objek. Karakteristik permukaan ini meliputi: warna, tekstur, sifat permukaan, seperti kekasaran (roughness), refleksifitas, diffuseness (jumlah cahaya yang dipantulkan oleh objek), transparansi, dan lain-lain.
Parameter Warna dalam karakteristik permukaan direpresentasikan dengan tiga warna dasar, yaitu RGB. Saat rendering, warna pada sebuah objek tergantung dari warna dalam karakteristik permukaan dan warna cahaya yang mengenainya. Jadi citra hasil rendering mungkin akan memiliki warna yang sedikit berbeda dengan warna objek tersebut.

Parameter tekstur direpresentasikan dengan sebuah nama file. File ini akan menjadi tekstur pada permukaan objek tersebut. Selain itu juga ada beberapa parameter dalam tekstur yang berguna untuk menentukan letak tekstur pada sebuah objek, sifat tekstur, perulangan tekstur, dan lain-lain.

Sifat Permukaan, seperti diffuseness, refleksisifitas, dan lain-lain direpresentasikan dengan sebuah nilai. Nilai ini menentukan sifat dari parameter-parameter tersebut. Misalnya pada roughness, makin besar nilai parameternya, makin kasar objek tersebut.


Algoritma Rendering

Algoritma Rendering adalah prosedur yang digunakan oleh suatu program untuk mengerjakan perhitungan untuk menghasilkan citra 2D dari data 3D. Kebanyakan algoritma rendering yang ada saat ini menggunakan pendekatan yang disebut scan-line
rendering berarti program melihat dari setiap pixel, satu per satu, secara horizontal dan menghitung warna di pixel tersebut. Saat ini dikenal 3 algoritma :
Ray-Casting
Ray-Tracing
Radiosity


Rendering Animasi

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.

Tidak ada komentar:

Posting Komentar