Rabu, 19 April 2017

Visualisasi Lampu Taman

       Berikut ini adalah langkah-langkah dalam membuat visualisasi lampu taman menggunakan software Blender 3D:
1.  Pertama kita buat bagian tiang lampunya terlebih dahulu. Buatlah sebuah circle dengan cara menekan shift+A, pilih mesh lalu circle.





    2.  Masuk ke edit mode dengan cara menekan tab. Setelah itu seleksi seluru bagian dari circlenya,            kemudian tekan F.


    3.  Kemudian kita extrude ke atas dengan menekan E, lalu tarik ke atas.



4.   Lakukan extrude lagi, kemudian tekan S untuk scale (memperlebar atau memperkecil                  permukaan).






 5.  Lakukan extrude dan scale lagi sesuai dengan kreasi anda sehingga menyerupai bentuk seperti tiang lampu taman.





    6. Langkah berikutnya adalah memberi pewarnaan pada tiang lampu tersebut. Caranya adalah kita klik menu material yang tersedia di bar sebelah kanan. Buat warna baru dengan mengklik new. Beri nama tekstur tersebut dengan kayu. Lalu pilih warna coklat yang tersedia di pallete warna pada bagian diffuse. Setelah selesai klik assign. Jangan lupa untuk menseleksi seluruh bagian dari tiang lampu tersebut dengan cara menekan A sebanyak 2 kali, kemudian baru klik assign.



    7.  Setelah selesai dengan bagian tiang, kita masuk ke tahap membuat lampunya. Kembali ke object mode dengan mengklik tab, kemudian pilih layer baru. Buatlah sebuah UV sphere dengan menekan shift+A pilih mesh lalu pilih UV sphere.

   8.   Kemudian masuk ke teknik pencahayaannya. Pertama kita buat material dengan cara yang sama dengan memberi warna pada tiang lampu tadi. Kita klik menu material di bar sebelah kanan, kemudian buat warna kuning untuk lampunya, jangan lupa assign setelah selesai membuat warnannya. Pada bagian specular kita set intensitynya sebesar 1. Pada bagian shading kita set emitnya dengan nilai 2.

   9. Lalu kita pilih menu world yang ada pada deretan menu yang sama dengan material tadi. Cari bagian indirect lightning kemudian centang pilihan tersebut. Di bawahnya pada bagian gather kita klik approximate, set value untuk passes menjadi 4.


   10. Kita pindahkan objek lampu tersebut ke layer tempat tiang berada dengan cara klik objectnya lalu tekan M, pilih layer yang diinginkan.
    
   11.  Atur posisi dari kedua objek sehingga terlihat pas.

   12. Untuk membuat objek kursi taman tambahkan 6 cube yang dibentuk pipih dan atur seperti gambar berikut.


   13. Tambahkan cube untuk membuat besi penyangga kursi, tekan R+ x untuk mengatur kemiringan besi.  Tekan CTRL+R lalu tekan E untuk membuat peyangga tempat duduk. 

   14.  Pada bagian bawah besi penyangga tempat duduk, tekan E lalu drag ke bawah untuk membuat kaki kursi. 


   15. Tekan shift+D drag searah sumbu Y untuk membuat besi peyangga berikutnya. Beri warna dan hasilnya seperti gambar di bawah.


   16.  Seleksi objek kursi lalu klik join untuk menggabungkan semuanya. Kemudian pindahkan objek kursi ke layer tempat objek lampu berada. 


   17. Tambahkan tembok di sekeliling lampu dan kursi dengan cara membuat objek plane. Lalu pada plane bagian bawah tekan CTRL + R untuk membuat edge baru. 

   18.  Seleksi face pada plane lalu berikan tekstur rumput. Tekan CTRL + R, ekstrude untuk membuat jalan dan pembatas.  Selanjutnya berikan warna untuk jalanan dan pembatas pada plane.

   19. Render object tersebut dalam mode camera. Cara merubah ke mode camera adalah dengan mengklik menu view yang ada di kiri bawah lembar kerja anda, pilih camera. Atau cara lainnya adalah dengan menekan numpad 0. Kemudian cari posisi yang pas dan lakukan render dengan menekan F12.

   20. Hasilnya akan menjadi seperti ini 




Tugas 1A Visualisasi Lampu Taman

Kelompok :
Afriandri Prima Utama (50414413)
Alfonsius Krisnanda ( 50414827)
Annisa Larasati A (51414380)
Fenton Martin (54414156)
Indra Arianggi S (55414290)

3IA01
Konsep Ray Tracing

Ada dua konsep yang menjadi dasar teori untuk ray tracing, yaitu :
  • Kita dapat melihat sebuah benda karena benda tersebut memantulkan cahaya. Cahaya yang dipantulkan tersebut lalu akan ditangkap oleh retina mata dan diterjemahkan oleh otak menjadi apa yang kita lihat.
  •  Dalam perjalanan sebuah sinar, jika sinar tersebut menabrak suatu permukaan, dapat terjadi tiga hal tergantung pada jenis permukaan yang ditabrak, yaitu penyerapan, pemantulan, dan pembiasan. Sebuah permukaan dapat memantulkan semua atau sebagian dari sinar, baik ke satu atau banyak arah. Permukaan tersebut juga dapat menyerap sebagian dari sinar, mengurangi intensitas sinar yang terpantul atau terbias. Jika permukaan tersebut mamiliki sifat tembus cahaya (transparency/translucent) maka permukaan itu akan membiaskan sebagian sinar  dan menyerap sebagian atau semua spektrum sinar, sehingga dapat mengubah warna sinar.

Namun perlu diperhatikan bahwa ada perbedaan mendasar antara konsep diatas dengan ray tracing. Pada ray tracing, umumnya sinar berasal dari mata pengamat, sedangkan pada kenyataannya sinar selalu berasal dari sumber cahaya. Karena itu ada dua jenis ray tracing, eye-based dan light-based. Eye-based adalah ray tracing dimana sinar berasal dari mata pengamat, sedangkan pada light-based ray tracing, sinar berasal dari sumber cahaya.
Pada ray tracing, ada beberapa hal penting yang harus kita perhatikan :
  • Tiga efek umum dalam ray tracing adalah pemantulan, tembus cahaya, dan bayangan.
  • Ray tracing adalah fungsi rekursif.
  • Sinar
  •  Fungsi Perpotongan
  •   Pemantulan
  • Tembus cahaya/Tranparansi Bayangan


Implementasi Ray Tracing pada game Quake Wars 

       Game pada umumnya menggunakan teknik render Rasterization, dimana teknik ini membutuhkan pekerjaan pada programming yang sulit dan jika terlalu banyak spesial efek (bayangan dan refleksi) makan semakin banyak yang perlu diperhitungkan sebagai perkiraan sebagaimana terjadinya beberapa kali rendering dan sering disimpan dalam tekstur resolusi terbatas. Dan perkiraan tadi bahkan akan gagal pada kasus tertentu. Dengan Ray Tracing, kita hanya perlu mengecek path (jalur) dari sumber cahaya ke surface (permukaan) terblokir atau tidak. Hal ini dapat ditentukan dengan mudah hanya dengan ray (sinar) atau biasa disebut shadow ray (sinar bayangan).  Jika sinar dari sumber cahaya bisa mencapai permukaan, maka titik dipermukaan akan bersinar. Jika sebaliknya, maka akan gelap (membentuk bayangan). Dalam game Quake wars, Ray Tracing paling banyak digunakan diluar ruangan, dimana sinar cahaya berupa sinar matahari. Kita dapat menerapkan Ray Tracing dengan sangat mudah, dan hasil yang didapat pun memuaskan.

       Namun hal tersebut tidak selalu mudah pada semua hal. Jika kita menerapkan sebuah transparansi pada sebuah objek, maka kasusnya akan berbeda lagi. Jika kita menggunakan teknik Rasterization untuk mengkalkulasikan bayangan atau biasa disebut shadow mapping, kita akan mendapatkan objek sebuah bayangan yang menyatu dengan objek. Maksudnya jika sumber cahaya berubah posisi seperti halnya pada scene dari matahari terbit ke matahari tenggelam, maka posisi bayangan takkan berubah kecuali kita tambahkan suatu algoritma lagi. Namun pada Ray Tracing hal ini adalah masalah yang simple, program dapat membaca nilai transparansi (Transparency Value) dari teksture dan terus memancarkan sinar tersebut sesuai dengan nilai transparansinya. Hal ini akan menimbulkan efek tertentu, namun juga menciptakan sebuah tantangan. Pada gambar dibawah, terlihat bahwa bayangan tercipta dari medan gaya tergantung dari nilai transparansi dari medan gaya tersebut.

Terdapat bayangan yang berbeda yang merupakan hasil dari Ray Tracing

         Keuntungan lainya menggunakan Ray Tracing pada objek yang setengah transparan, maka objek tersebut tidak perlu di urutkan berdasarkan kedalamanya. Namun hal ini juga memberikan kerugian pada waktu rendering, dimana waktu rendering akan menjadi lebih besar dari pada sebelumnya. Jika terjadi sekali dua kali, mungkin tidak akan terlalu mempengaruhi rendering, tetapi jika terjadi hingga sepuluh atau lebih, maka hal ini akan menjadi sebuah masalah yang serius. Kasus ini dapat terjadi jika sebuah objek, yang kita akan misalkan sebuah pohon, memiliki sebuah objek yang memiliki transparansi sebagian dari daun-daunan. Untuk lebih jelasnya lihat gambar dibawah.

Pada gambar diatas, objek ranting dan daun kita jadikan satu, tetapi memiliki nilai transparansi yang berbeda.

Dari gambar sebelumnya, kita menginginkan pohon agar terlihat seperti ini.

            Merender beberapa pohon pun akan menjadikan sebuah masalah yang besar bagi performance pada game nantinya. Dan untuk mengakalinya, maka dibaut sebuah peningkatan atau batasan tertentu seperti yang telah dijelaskan pada teori ray tracing diatas

“Dalam menggunakan ray tracing, umumnya dibuat suatu batasan agar lebih mangkus”.

Batasan-batasan tersebut adalah : 

  •        Hindari menembak sinar baru setiap kali setelah membaca nilai transparansi;
    sebaliknya, sinar yang sama akan digunakan lagi yang berasal dari posisi hit dan terus ke arah yang sama.
  •         Menandakan apakah tekstur menggunakan transparansi dengan flag tunggal. Jika tidak, maka tidak ada kebutuhan untuk menembak sinar tambahan melalui transparansi potensial. Kulit dalam pohon adalah contoh dari tekstur buram dicampur dengan banyak tekstur transparan sebagian.
  •        Menurunkan jumlah sinar yang dibundel bersama-sama. Dalam banyak kasus, bundling sinar dengan jalan yang sama dapat menyebabkan mempercepat substansial. Namun, jika salah satu bagian dari bundel menabrak permukaan lainya, maka dibutuhkan beberapa perubahan. Dalam kasus rendering pohon, overhead dapat menjadi hal yang signifikan, dan akan memperlambat semuanya.

              Bahkan dengan beberapa peningkatan/batasan dala merender tadi, merender sebuah pohon masih membutuhkan waktu yang sangat banyak. Untuk lebih jelasnya, gambar dibawah dapat menjelaskan seberapa banyak sulitnya merender sebuah pohon melalui visualisasi warna, dimana merah berarti objek membutuhkan waktu yang lama untuk dirender, sedangkan objek dengan warna biru lebih cepat untuk dirender.

.
Gambar untuk menunjukan waktu yang diperlukan untuk merender sebuah objek dengan visualisasi warna
        Seperti yang telah tergambarkan diatas, merender sebuah pohon bahkan lebih lama dari merender sebuah air yang merefleksikan objek lainya pada scene.

         Didalam game Quake Wars, juga terdapat beberapa objek yang menggunakan ray tracing, seperti sebuah Dome (kubah), yang permukaanya diubah agar terlihat seperti terbuat dari kaca. Dengan menggunakan index pembiasan yang biasa terdapat pada buku-buku fisika, dapat dihasilkan sebuah kubah yang merefleksi dan membiaskan cahaya seperti gambar dibawah.

Refleksi dan Refraksi menggunakan ray tracing kepada sebuah kubah berpermukaan kaca
             Ray Tracing juga diterapkan dalam merender objek air, yang mana objek air dapat terbentuk dari sebuah 2D, atau menjadikan air 3D sebagai sifat asli dari airnya dengan menggunakan mesh berupa 100.000 segitiga.

Air dengan 3D


Sumber :



Tugas 1B Implementasi Ray Tracing pada Game Quake Wars

Kelompok :
Afriandri Prima Utama (50414413)
Alfonsius Krisnanda ( 50414827)
Annisa Larasati A (51414380)
Fenton Martin (54414156)
Indra Arianggi S (55414290)

3IA01