Texturing dan Rendering



Texturing dan Rendering Blender 3D
1.      Texturing
Texturing adalah proses pemberian gambar tertentu pada permukaan objek agar terkesan lebih realistis. Atau bisa diartikan lain adalah proses pemberian karakteristik permukaan pada objek. Maksud dari karakteristik adalah pewarnaan, kilauan, dan lainnya. Pada umumnya teksturing bisa disebut juga pemberian warna pada permukaan objek atau pengecatan, walaupun ada proses yang mengubah geometri objek. Namun texture mempunyai arti berbeda dengan texturing. Texture dapat dikatakan sebagai suatu gambar aktual warna dari material yang membantu menjelaskan atau memperhalus.
Teknik teksturing adalah termasuk langkah pembuatan suatu proyek gambar 3D (tiga dimensi). Dimana selain teksturing, juga terdapat langkah lain seperti konseptualitas, modelling, lighting, animasi dan rendering. Proses texturing ini menentukan karakteristik sebuah objek dari segi struktur. Untuk materi sebuah object yang akan di buat, bisa digunakan aplikasi properti tertentu seperti reflectivity, transparency dan refraction. Texture kemudian bisa digunakan untuk meng-create berbagai variasi warna pattern, tingkat kehalusan.kekasaran sebuah lapisan object secara lebih detail.Dalam membentuk sebuah objek pemodelan, texturing bisa dikerjakan secara overlap dengan modelling, tergantung tingkat kebutuhan.
Terdapat tiga masalah utama yang berhubungan dengan tekstur yaitu :
1.      Segmentasi Tekstur (Texture segmentation)
Merupakan masalah yang memecah suatu citra ke dalam beberapa   komponen dimana tekstur dianggap konstan. Segmentasi tekstur melibatkan representasi suatu tekstur, dan penentuan dasar dimana batas segmen akan ditentukan.
2.      Sintesis Tekstur (Texture synthesis) 
Berusaha untuk membangun region tekstur besar yang berasal dari contoh citra kecil yang ada. Dengan menggunakan contoh citra akan dibangun model probabilitas tekstur tersebut, dan kemudian menggambarkannya pada model probabilitas untuk menentukan tekstur citra.
3.      Bentuk Tekstur (Shape from Texture) 
Melibatkan perbaikan orientasi permukaan atau bentuk permukaan dari tekstur. Di sini diasumsikan bahwa tekstur “kelihatan sama” pada titik-titik yang berbeda pada suatu permukaan, ini artinya bahwa deformasi tekstur dari titik ke titik adalah petunjuk  bentuk permukaan.
Berdasarkan strukturnya, tekstur dapat diklasifikasikan dalam 2 golongan :
1). Makrostruktur
Tekstur makrostruktur memiliki perulangan pola local secara periodik dalam suatu daerah citra, biasanya terdapat pada pola-pola buatan manusia dan cenderung mudah untuk direpresentasikan secara matematis.
2). Mikrostruktur 
Pada tekstur mikrostruktur, pola-pola lokal dan perulangan tidak terjadi begitu jelas, sehinggga tidak mudah untuk memberikan definisi tekstur yang komprehensif.
Untuk contoh kasus pada tekturing ini, saya akan mengambil sebuah contoh yaitu pengenalan texture pada image. Texture pada citra yakni frekuensi perubahan rona pada citra yang dinyatakan dengan kasar (coarseness), sedang (regularity), dan halusnya (smoothness) suatu permukaan pada citra tersebut. Aspek tekstural dari sebuah citra dapat dimanfaatkan sebagai dasar dari segmentasi, klasifikasi, maupun interpretasi citra. Tekstur dapat didefinisikan sebagai fungsi dari variasi spasial intensitas piksel (nilai keabuan) dalam citra. Misalnya hutan bertekstur kasar, semak belukar bertekstur sedang, sedangkan sawah bertekstur halus.
Secara garis besar, texturing merupakan salah satu teknik rendering (pembentukan gambar yang mengandung gambar geometris untuk menghasilkan gambar yang lebih realistis), yang mana shading dan lighting juga termasuk dalam proses rendering itu.
1. Texture Mapping dan Mapping Coordinate

A. Texture Mapping
Pemetaan tekstur adalah metode untuk menambahkan detail, tekstur permukaan (bitmap atau raster image), atau warna ke dalam model grafis yang dihasilkan komputer atau 3D. Teknik ini diciptakan oleh Edwin Catmull pada tahun 1974.
Texture merupakan data segi-empat sederhana yang berada pada bidang texture. Bidang texture diwakili oleh dua sumbu koordinat yaitu sumbu s dan sumbu t. Setiap texture akan memenuhi bidang koordinat (0.0,0.0) sd. (1.0,1.0). Nilai individual dari array texture biasanya dikenal dengan istilah texels (texture pixels).

Mapping ialah sebuah bentuk kegiatan untuk melakukan pewarnaan atau memetakan permukaan geometri pada objek 3D. Sedangkan Maps adalah bentuk gambar atau warna yang digunakan untuk melapisi objek 3D pada saat dilakukan mapping. Dengan kata lain pemetaan texture merupakan pemberian sebuah gambar pada permukaan objek sehingga objek akan tampak realistis. Texture mapping memungkinkan untuk menaruh gambar pada geometric primitive tersebut dan sekaligus mengikuti transformasi yang diterapkan kepada objek. Contohnya apabila sebuah objek kubus tanpa gambar diberi texture bebatuan pada permukaannya, maka objek tersebut akan tampak memiliki tekstur kasar seperti batu. Texture pada permukaan objek dapat dilihat dari berbagai perspective yang berbeda. Beberapa contoh texture pada objek sebagai berikut:



Contoh 1. Tekstur Objek 3D

Filter pembesaran texture berpengaruh pada bagaimana OpenGL melakukan proses rasterisasi texture saat texture ditampilkan pada jumlah pixel yang lebih besar atau lebih kecil dari ukuran sebenarnya. Pada Nearest Filtered Texture, texture yang ditampilkan merupakan hasil pemilihan nilai pixel pada posisi terdekat. Sedangkan dengan Linear Interpolation Texture (LPT), texture yang ditampilkan merupakan hasil interpolasi linear antara pixel-pixel disekitarnya. Pada Mipmapped Texture(MPT), interpolasi linear dilakukan pada awal secara offline sehingga dihasilkan banyak texture dengan ukuran dari yang kecil hingga yang besar. LPT dan MPT akan menghasilkan kira-kira hasil yang sama dengan LPT akan sedikit lebih lambat dari MPT walaupun memori yang digunakan jauh lebih kecil.
Namun terkadang efek texture yang diinginkan dapat diperoleh dengan mencampur lebih dari satu texture. Proses pencampuran lebih dari satu texture disebut dengan istilah blending. Salah satu efek blending yang paling sederhana adalah dengan memblending texture dengan warna. Fungsi yang digunakan pada proses blending adalah glEnable(GL_BLEND).
Implementasi texture pada objek grafika computer terdapat pada, animasi seperti toy story maupun game animasi.

B. Mapping Coordinat
Mapping coordinate adalah setiap titik dalam polygon diberi koordinat teksture (yang dalam kasus 2D juga dikenal sebagai UV koordinat) baik melalui tugas eksplist atau menurut definisi prosedural. Gambar lokasi sampling kemudian diinterpolasi di muka poligon untuk menghasilkan hasil visual yang tampaknya memiliki lebih kekayaan daripada yang bisa dicapai dengan sejumlah poligon. Contohnya apabila sebuah objek kubus tanpa gambar diberi texture bebatuan pada permukaannya, maka objek tersebut akan tampak memiliki tekstur kasar seperti batu. Texture pada permukaan objek dapat dilihat dari berbagai perspective yang berbeda.

Secara sederhana dalam pemetaan tekstur dilakukan perhitungan koordinat dunia (world coordinates) yang berasal dari koordinat teksturnya. Gambar 2.20 mengilustrasikan pemetaan tekstur.
x = x(s,t)
y = y(s,t)
z = z(s,t)



Dalam memetakan suatu tekstur pada suatu permukaan dikenal 4 komponen yang terlibat.Parametric coordinates, digunakan untuk memodelkan permukaan objek. Texture coordinates, digunakan untuk mengenali posisi dari tekstur yang akan dipetakan. World coordinates, dimana pemetaan dilakukan. Screen coordinates, dimana pemetaan dari tekstur ditampilkan. Gambar 2.21 mengilustrasikan 4 komponen dalam pemetaan tekstur.



2.      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.
Rendering Animasi 
Rendering harus dilakukan secara cermat dan teliti. Oleh karena itu terkadang dilakukan pre rendering sebelum rendering dilaksanakan. Per rendering sendiri ialah proses pengkomputeran secara intensif, biasanya digunakan untuk pembuatan film, menggunakan graphics card dan 3D hardware accelerator untuk penggunaan real time rendering.
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.

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.






Referensi:

Komentar