Pages

Rabu, 14 Juni 2017

Visible Surface Division dengan Metode Object Precision


      Tugas Grafik Komputer 2
      
      Kelompok 1 
  


      ALFIAN DHIMAS                   (50414808)
BAYU YUNIANTO P              (52414808)
EDHO PRATAMA BISMA A    (52412355)
RIDWAN HILMY M                 (59414315)
M SOFYAN PRIYATNA           (57414018)
FRENGKY ANGGIAT B              (54414386)

      A. Pengertian VSD (Visible - Surface Determination)

Visible-Surface Determination atau yang sering disebut dengan Hidden Surface Removal adalah suatu algoritma yang digunakan untuk menghilangkan penampilan bagian yang tertutup oleh objek yang didepannya. Apabila ada dua bidang yang berpotongan, apabila ditampilkan biasa tanpa menggunakan algoritma Visible Surface Determination maka bagian yang berpotongan itu akan tidak kelihatan, oleh karena bidang yang satu ditutupi oleh bagian yang lain tanpa memotong. Oleh karena itu untuk menampilkan bidang perpotongan, diperlukan Algoritma Hidden Surface Removal.

      B. Kelas kelas pada algoritma VSD

           Kelas-kelas pada Algoritma VSD
Terdapat beberapa cara atau metode untuk mendeteksi suatu permukaan yang terlihat ini, yaitu :

-              Conservative
-              Image Precision
-              Object Precision

     C. Pengertian Object-Precision

    Pendekatan historis pertama
   • Roberts '63 - penghapusan garis tersembunyi
   - bandingkan setiap tepi dengan setiap objek –

   Menghilangkan tepi tak terlihat atau bagian tepi.
   • Kompleksitas: lebih buruk dari O (n2) masing-masing





      D.    Pengertian Binary Space Partitioning

Dalam ilmu komputer, binary space partitioning (BSP) adalah metode untuk membagi secara rekursif ruang menjadi set cembung oleh hyperplanes. Subdivisi ini memunculkan representasi objek di dalam ruang dengan menggunakan struktur data pohon yang dikenal sebagai pohon BSP.

Partisi ruang biner dikembangkan dalam konteks grafis komputer 3D, dimana struktur pohon BSP memungkinkan informasi spasial tentang objek dalam adegan yang berguna dalam rendering. Aplikasi lainnya termasuk melakukan operasi geometris dengan bentuk (geometri solid konstruktif) di CAD, deteksi tabrakan pada robotika dan video game 3-D.

Partisi ruang biner adalah proses generik membagi secara rekursif menjadi dua adegan sampai partisi memenuhi satu atau lebih persyaratan. Hal ini dapat dilihat sebagai generalisasi struktur pohon spasial lainnya seperti pohon k-d dan quadtrees, satu di mana hyperplanes yang memisahkan ruang mungkin memiliki orientasi, daripada diselaraskan dengan sumbu koordinat seperti pada pohon k-d atau quadtrees. Bila digunakan dalam grafis komputer untuk membuat adegan yang terdiri dari poligon planar, bidang partisi seringkali (tapi tidak selalu) dipilih bertepatan dengan bidang yang didefinisikan oleh poligon di tempat kejadian.

Pilihan spesifik dari bidang partisi dan kriteria untuk mengakhiri proses partisi bervariasi tergantung pada tujuan pohon BSP. Misalnya, dalam rendering grafis komputer, adegan dibagi sampai setiap simpul pohon BSP hanya berisi poligon yang dapat dirender dalam urutan yang sewenang-wenang. Ketika pemusnahan kembali digunakan, masing-masing node mengandung satu set poligon cembung, sedangkan saat merender poligon dua sisi, setiap simpul pohon BSP hanya berisi poligon dalam satu bidang. Dalam deteksi tabrakan atau penelusuran sinar, sebuah adegan dapat dibagi menjadi primitif dimana tes persilangan tabrakan atau sinar lurus.

Partisi ruang biner muncul dari grafis komputer yang perlu dengan cepat menggambar tiga dimensi yang terdiri dari poligon. Cara sederhana untuk menggambar adegan seperti itu adalah algoritma pelukis, yang menghasilkan poligon sesuai jarak dari penampil, kembali ke depan, melukis di atas latar belakang dan poligon sebelumnya dengan masing-masing objek yang lebih dekat. Pendekatan ini memiliki dua kekurangan: waktu yang dibutuhkan untuk mengurutkan poligon di belakang ke depan dan kemungkinan kesalahan dalam poligon tumpang tindih. Fuchs dan rekan penulis menunjukkan bahwa membangun pohon BSP memecahkan kedua masalah ini dengan menyediakan metode penyortir poligon yang cepat sehubungan dengan sudut pandang tertentu (linear dalam jumlah poligon di tempat kejadian) dan dengan membagi poligon yang tumpang tindih ke Hindari kesalahan yang bisa terjadi dengan algoritma pelukis. Kerugian dari partisi ruang biner adalah menghasilkan pohon BSP dapat memakan waktu. Biasanya, oleh karena itu dilakukan sekali pada geometri statis, sebagai langkah pra-perhitungan, sebelum melakukan rendering atau operasi realtime lainnya di tempat kejadian. Biaya membangun pohon BSP membuat sulit dan tidak efisien untuk secara langsung menerapkan benda bergerak ke pohon.

Pohon BSP sering digunakan oleh video game 3D, terutama game dengan genre penembak orang pertama dan orang-orang dengan lingkungan dalam ruangan. Mesin permainan yang memanfaatkan pohon BSP termasuk mesin Doom (mungkin game paling awal yang menggunakan struktur data BSP adalah Doom), mesin Quake dan keturunannya. Dalam permainan video, pohon BSP yang berisi geometri statis dari sebuah adegan sering digunakan bersamaan dengan penyangga Z, untuk menggabungkan benda bergerak dengan benar seperti pintu dan karakter ke pemandangan latar belakang. Sementara partisi ruang biner menyediakan cara mudah untuk menyimpan dan mengambil informasi spasial tentang poligon dalam sebuah adegan, namun tidak memecahkan masalah penentuan permukaan yang terlihat.

Penggunaan pohon BSP secara kanonik adalah untuk rendering poligon (yaitu dua sisi, yaitu tanpa penghilangan muka) dengan algoritma pelukis. Setiap poligon ditunjuk dengan sisi depan dan sisi belakang yang bisa dipilih semena-mena dan hanya mempengaruhi struktur pohon tapi bukan hasil yang dibutuhkan. Pohon seperti itu dibangun dari daftar unsorted semua poligon dalam sebuah adegan. Algoritma rekursif untuk konstruksi pohon BSP dari daftar poligon tersebut adalah:

1.      Pilih poligon P dari daftar.

2.      Buat node N di pohon BSP, dan tambahkan P ke daftar poligon pada simpul tersebut.

                  Untuk poligon satu sama lain dalam daftar :

                Jika poligon itu seluruhnya berada di depan bidang yang berisi P, pindahkan poligon itu ke                   daftar nodus di depan P.

                Jika poligon itu seluruhnya berada di belakang bidang yang berisi P, pindahkan poligon itu                   ke daftar simpul di belakang P.

                Jika poligon itu berpotongan dengan bidang yang mengandung P, pisahkan menjadi dua                       poligon dan pindahkan ke masing-masing daftar poligon di belakang dan di depan P.

               Jika poligon itu terletak pada bidang yang mengandung P, tambahkan ke daftar poligon pada                simpul N.

3.      Terapkan algoritma ini ke daftar poligon di depan P.

4.      Terapkan algoritma ini ke daftar poligon di belakang P.

Diagram berikut menggambarkan penggunaan algoritma ini dalam mengubah daftar garis atau poligon menjadi pohon BSP. Pada masing-masing dari delapan langkah (i.-viii.), Algoritma di atas diterapkan pada daftar baris, dan satu simpul baru ditambahkan ke pohon.

Mulailah dengan daftar garis, (atau dalam 3-D, poligon) yang membentuk pemandangan. Dalam diagram pohon, daftar dilambangkan dengan persegi panjang bulat dan simpul di pohon BSP oleh lingkaran. Dalam diagram spasial garis, arah yang dipilih menjadi 'depan' garis dilambangkan dengan panah.



Langkah (i)



Mengikuti langkah-langkah dari algoritma di atas,
Kami memilih sebuah garis, A, dari daftar dan, ...
... menambahkannya ke sebuah simpul.

Kita membagi garis yang tersisa dalam daftar ke dalam daftar di depan A (yaitu B2, C2, D2), dan yang tertinggal (B1, C1, D1).

Kami pertama memproses baris di depan A (dalam langkah ii-v), ...
... diikuti oleh orang-orang di belakang (dalam langkah-langkah vi-vii).

Langkah (ii)



Kami sekarang menerapkan algoritma ke daftar garis di depan A (mengandung B2, C2, D2). Kita memilih sebuah garis, B2, menambahkannya ke sebuah simpul dan membagi sisa daftar ke garis-garis yang ada di depan B2 (D2), dan yang ada di belakangnya (C2, D3)

Langkah (iii)



Pilih garis, D2, dari daftar garis di depan B2. Ini adalah satu-satunya garis dalam daftar, jadi setelah menambahkannya ke sebuah simpul, tidak perlu dilakukan lebih jauh lagi.

Langkah (iv)



Kita selesai dengan garis di depan B2, jadi perhatikan garis di belakang B2 (C2 dan D3). Pilih salah satu dari ini (C2), tambahkan ke simpul, dan letakkan baris lainnya dalam daftar (D3) ke dalam daftar garis di depan C2.

Langkah (v)



Sekarang lihat daftar garis di depan C2. Hanya ada satu baris (D3), jadi tambahkan ini ke simpul dan lanjutkan.

Langkah (vi)


Kita sekarang telah menambahkan semua garis di depan A ke pohon BSP, jadi kita sekarang mulai pada daftar garis di belakang A. Memilih garis (B1) dari daftar ini, kita menambahkan B1 ke sebuah simpul dan membagi sisa dari Daftar ke garis di depan B1 (yaitu D1), dan garis di belakang B1 (yaitu C1).

Langkah (vii)


Pengolahan daftar baris pertama di depan B1, D1 adalah satu-satunya garis dalam daftar ini, jadi tambahkan ini ke simpul dan lanjutkan.

Langkah (viii)



Melihat selanjutnya daftar garis di belakang B1, satu-satunya garis dalam daftar ini adalah C1, jadi tambahkan ini ke simpul, dan pohon BSP sudah selesai.

      E.     Contoh Kasus Binary Space Partitioning

Menggunakan BSP untuk membuat adegan

Meningkatkan kinerja rendering adalah salah satu alasan pohon BSP digunakan. Pohon BSP pada dasarnya mengungguli precalculation yang luas untuk algoritma back to front painters atau algoritma backline back to back. Pohon itu bisa dilalui dalam waktu linier dari sudut pandang yang sewenang-wenang.

Karena algoritma pelukis bekerja dengan menggambar poligon terjauh dari mata terlebih dahulu, kode berikut akan terulang kembali ke bagian bawah pohon dan menarik poligon. Saat rekursi terhindar, poligon mendekati mata ditarik jauh dari poligon. Karena pohon BSP allready memisahkan poligon menjadi potongan sepele, bagian tersulit dari algoritma pelukis sudah bisa dipecahkan.

Kode untuk kembali ke traversal pohon depan.

traverse_tree(bsp_tree* tree,point eye)
{
location = tree->find_location(eye);

if(tree->empty())
  return;


  if(location > 0)      // if eye infront of location
  {
    traverse_tree(tree->back,eye);
    display(tree->polygon_list);
    traverse_tree(tree->front,eye);
  }
  else if(location < 0) // eye behind location
  {
    traverse_tree(tree->front,eye);
    display(tree->polygon_list);
    travers_tree(tree->back,eye);
  }
  else                  // eye coincidental with partition hyperplane
  {
    traverse_tree(tree->front,eye);
    traverse_tree(tree->back,eye);
  }
}

Menurut, pohon BSP juga dapat digunakan untuk membuat adegan dengan front to back traversal pohon menggunakan algoritma pemindaian scanline. Sebuah topeng tulis bisa digunakan untuk mencegah sebuah pixel ditulis lebih dari satu kali. Dalam sebuah adegan dengan banyak sumber cahaya, algoritma pelukis akan mengevaluasi piksel yang sama lebih dari satu kali. Untuk melintasi pohon dari depan ke belakang, cukup ubah urutan rekursi pada kode di atas.

Menggunakan BSP untuk Beberapa Sumber Cahaya

Pohon SVBSP dapat dengan mudah diperluas ke beberapa sumber cahaya. Pada dasarnya, buatlah pohon SVBSP dengan sumber cahaya pertama. Simpan semua fragmen poligon pada simpul pohon BSP yang sesuai yang menentukan pemandangan. Setelah semua poligon telah dipartisi, buanglah pohon SVBSP saat ini. Selanjutnya, buat pohon SVBSP dari sumber cahaya berikutnya. Saring fragmen poligon ke pohon baru ini. Ulangi sampai tidak ada lagi sumber cahaya dan ada SVBSP terakhir yang siap untuk generasi bayangan.

Chin dan Feiner memperingatkan bahwa beberapa sumber cahaya bisa menghasilkan pohon yang sangat besar dengan banyak poligon split. Mereka merekomendasikan agar sumber cahaya diproses agar menyebabkan fragmentasi paling sedikit. Salah satu caranya adalah mengolah sumber cahaya dalam rangka meningkatkan jumlah poligon yang menghadapinya. Sebagai alternatif, proses sumber cahaya statis sumber pertama dan dinamis terakhir.

Semua kode sumber dari Near Real-Time shadow Generation Menggunakan Pohon BSP oleh Chin dan Feiner. The shadowGenerator menciptakan volume bayangan dengan menerapkan fungsi rekursif menentukan. Membentuk semua poligon pemandangan. DefineShadow menyaring poligon dari pohon SVBSP yang membelahnya saat diperlukan dan menambahkan volume bayangan fragmen yang menyala ke pohon SVBSP.




Minggu, 11 Juni 2017

Game Simba Run

Tugas Softskill
Kelas : 3IA09
Anggota Kelompok :

Fakhri Riandi 53414902
Kevin Faturrahman 55414826
Ridwan Hilmy M 59414315



Dalam pembuatan game ini diperlukan software yaitu unity. Lalu untuk objek objek yang ada dalam game ini dibuat di software blender. Objek objek yang dibuat di blender antara lain adalah singa, kue, pemen, tempura, sandwich, kayu. Lalu untuk lintasanya dibuat langsung di unity.

Tutorial Game Simba Run

1. Struktur Navigasi


Pada game ini saat user mengklik icon dari aplikasi game simba run, user akan langsung diarahkan menuju tampilan loading screen dari game ini.


Setelah itu untuk melanjutkan dari tampilan ini menuju permainan, jika user mengklik dimana pun user akan langsung menuju ke layout utama, yaitu permainan.

1.                 2. Rancangan Tampilan

Pada rancangan tampilan ini berisi format desain dari game simba run.

·   Tampilan Loading Screen

Sebelum user bermain gamenya user akan dihadapkan terlebih dahulu pada layar tunggu seperti dibawah ini.


·     Tampilan Permainan

Pada layar ini user akan melihat tampilan utama dari game yaitu score, objek singa, jalan yang di jalan tersbut ada benda benda seperti kue dan kayu.


4. Rules

Pada game Simba Run ini terdapat beberapa aturan seperti berikut.

-Terdapat objek singa (simba) sebagai karakter utama dari game ini. Simba akan mendapat rintangan
dalam melewati jalan ini.

-Di jalanan ini terdapat objek objek lain selain simba yang harus dilewati ada benda yang bisa
dimakan dan benda yang tidak bisa dimakan.

-Benda yang tidak bisa dimakan meliputi seperti kayu lalu benda yang bisa dimakan yaitu kue, sandwich, tempura, permen.

-Pada game ini bersifat highscore sehingga tidak ada batasan dalam jalan yang dilewati simba.

-Jika yang ada dihadapan simba adalah kue maka simba bisa memakan kue tersebut dengan menabraknya dan mendapat poin sebesar 100 poin.

-Game ini akan berakhir jika simba menabarak benda yang tidak seharusnya, seperti kayu.

-Untuk menghindari benda yang membuat game berakhir user harus mengarahkan simba dengan
menekan keyboard atas untuk melompat lalu kanan kiri untuk menghindar.

4. Goals

Tujuan dari permainan ini adalah menghindari beda yang tidak seharusnya untuk simba makan. Simba dapat menghindari benda yang tidak seharusnya dengan melewatinya dengan melompat atau menghindarinya dengan jalan kanan kiri.

5. Output Game

Output Game dari simba run yaitu tampilan awal lalu tampilan utama yaitu berjalanya game saat user mengklik mouse.








Rabu, 03 Mei 2017

Texture Object dengan aplikasi Blender


Anggota Kelompok :

ALFIAN DHIMAS                   (50414808)
BAYU YUNIANTO P               (52414808)
EDHO PRATAMA BISMA A     (52412355)
RIDWAN HILMY M                  (59414315)
M SOFYAN PRIYATNA            (57414018)
FRENKY ANGGIAT B              (54414386)


Pada kesempatan kali ini kami akan membuat bagaimana suatu object diberikan texture. Sehingga texture yang ada pada permukaan object tersebut akan memberikan efek yang realistis. Pada contoh pemberian texture kali ini akan membuat botol kecap. Dimana biasanya pada botol kecap terdapat logo berupa stiker yang memperkenalkan merek dari kecap tersebut. Lalu selain itu juga pada botol kecap yang baru pada tutupnya terdapat segel. Berikut ini langkah pemberian texture pada botol kecap.

Pertama yaitu buat dahulu objeknya yaitu botol, sementara kami disini akan langsung membahas ke pemberian texturenya.



Gambar diatas adalah botol kecap yang sudah dibuat. Lalu beri tekstur menggunakan uv map, caranya seperti ini :

Pertama kita memasukan tekstur label merk botol, pilih face pada bagian bawah, pilih tengah, coba seleksi seperti gambar dibawah ini. Tarik window kanan, kemudian di ubah editor tipe window kanan menjadi uv image, lalu open image yang akan kita taruh diface itu. Jika sudah tekan u pilih unwrap, lalu ubah viewport shadingnya menjadi tekstur, sehingga akan tampak seperti ini.



Kedua kita masukan tekstur botol kecapya itu sendiri, masukan image warna hitam sehingga akan tampak seperti ini.



Ketiga kita masukan tekstur tutup botolnya, masukan warna kuning sehingga tampak seperti ini.




Keempat kita memberikan label melingkar di leher botol, sehingga tampak seperti ini. *cara ini sama seperti memberi merek di tahap sebelumnya*.



Jika kita render tekstur tersebut masih berantakan, kita perlu memasukan uv imagenya tersebut kedalam tekstur, lalu mengasign material pada tiap face tersebut. Jika sudah coba atur pencahayaan dan kamera, jika hasilnya kurang memuaskan coba mainkan diffuse, speculare, transparant dan mirror dari tekstur” tersebut, sehingga hasil rendernya akan tampak seperti ini.








Kamis, 13 April 2017

Membuat Api Unggun dengan Efek Pencahayaan terhadap Objek


Untuk membuat simulasi pencahayaan ini diperlukan objek utama sebagai sumber cahaya yaitu api unggun dan objek lainnya. Berikut langkah - langkah untuk membuat simulasi api.

      Jalankan aplikasi blender. Pada tutorial ini, versi blender yang digunakan adalah versi 2.78


Pada awal menjalankan blender akan langsung memuat default new project. Dimana pada defaultnya akan disertakan 3 bauh komponen, yaitu 1 buah objek kubus, 1 buah lighting, dan 1 buah kamera, serta posisi engine default berada di blender render. Selanjutnya ubahlah engine blender tersebut menjadi cycles render , serta hapus objek kubus dan lighting tersebut. Cukup sisakan kamera saja. Setelah itu tambahkan sebuah objek circle, dapat menggunakan shortcut Shift+a -> pilih Mesh -> pilih Circle. Lalu pada properties circle tersebut ubah Fill Type nya yang tadinya Nothing menjadi Ngon.


Lalu, seleksi objek circle tersebut, pilih menu Object -> Quick Effect -> Quick Smoke. 
Untuk melihat quick smoke yang sudah dibuat bisa dengan menjalankan animasi, dengan shortcut Alt + A, maka animasi quick smoke akan muncul.


Kemudian seleksi circle kembali, pada menu panel kanan pilih menu Physics, lalu pada properties smoke tersebut, ubah Flow Type nya menjadi Fire, ini agak tidak hanya asap saja yang muncul tapi juga disertai api. Lalu coba jalankan animasi lagi, lihat sekarang api sudah muncul.





MEMBUAT MATERIAL API

Jika kita coba merender hasil sebelumnya, maka api yang kita buat tidak akan ikut terender, hanya sedikit particle asap saja yang terender, itu karena material apinya sendiri belum dibuat. Untuk itu seleksi kubus domain dari quick smoke tersebut, kemudian masuklah ke node editor, bisa menggunakan shortcut Shift + F3, maka dapat dilihat akan ada beberapa node default dari quick smoke yang telah dibuat.


Selanjutnya tambahkan satu node atribut, caranya klik Shift+A -> pilih Input -> pilih Attribut, dan beri nama atribut itu dengan flame. Selanjutnya tambahkan juga node color ramp , caranya klik Shift+A -> pilih Converter -> pilih ColorRamp.





Setelah itu hubungkan node Fac pada Attribut yang kita buat sebelumnya dengan ColorRamp tersebut. Lalu pada ColorRamp cobalah buat gradiasi warna seperti warna kobaran api, seperti dibawah ini :


Tambahkan sebuah node lagi yaitu Emmision, dengan cara klik Shift+A -> Shader -> Emmision. Setelah itu hubungkan node color pada ColorRamp dengan node color pada Emmision tersebut, dan juga hubungkan node Emmision pada Emmision dengan node Shader pada Add Shader defaultnya quick smoke tadi, maka akan nampak seperti ini.


Tambakan satu node lagi yaitu Math, dengan cara klik Shift + A -> Converter -> Math. Lalu, ubah valuenya menjadi Multiply. Serta hubungkan node Fac pada Attribut ke node Value pada Multiply tersebut, dan juga hubungkan node Value pada Multiply ke node Strength pada Emmision. Seperti dibawah ini :

Dengan demikian material api sudah terbuat dan terhubung dengan node quick smoke, cobalah render kembali, maka seharusnya paticle api kini ikut terender bersama asap.



MENGATUR SIMULASI API

Disini kita akan mengatur simulasi api tersebut, mengatur disini maksudnya bisa memperbesar api, mencerpat kobaran api, memperbanyak atau mengurangi asap, dan lain sebagainya. Untuk itu pertama silahkan seleksi kubus domain dari quick smoke, dan pada panel properties di kanan buka menu Physics, lalu akan ada atribut Smoke Adaptive Domain, centanglah atribut tersebut. Maka hasilnya kini saat kita menjalankan animasi, akan ada domain baru di dalam domain utama yang gunanya untuk membatasi particle keluar dari sub domain tersebut.


Lalu centang juga attribut Smoke High Resolution , dan tambahkan value strenghtnya menjadi 5, dan coba jalankan animasinya, maka dapat dilihat perbedaan resolusi asapnya, menjadi lebih realistis
Kemudian dalam atribut Smoke Cache, bisa kita kurang akhir frame simulasinya, pada defaultnya adalah pada frame 250, jika terlalu lama, bisa dikurangi,coba ubah menjadi 100. Efeknya selain memperpendek durasi simulasi, juga membuat kobaran api menjadi lebih cepat.


Pada panel timeline juga atur end framenya menjadi 100. Selanjutnya kita akan mengatur api dan asapnya, dengan cara di atribut Smoke Falmes, kita bisa mainkan beberapa value, coba ubahlah valuenya menjadi seperti ini :


Silahkan jalankan simulasinya lagi, maka akan nampak perbedaannya dimana kobaran api semakin membesar, diiringi asap yang semakin banyak dan juga temperatur terasa lebih besar. Selanjutnya pada atribut Smoke ada value Vorticity, coba naikan valuenya menjadi 4, dan coba jalankan simulasi kembali, maka hasilnya kobaran api yang tadinya konstan lurus, kini seperti ada perubahan-perubahan bentuk kobaran layaknya api sungguhan. 

Disitu dapat dilihat kobaran api terbentur dengan atas domain kubusnya, jadi untuk itu kita bisa menaikan domain kubus, buatkan circle berada sedikit dibawah domain atau juga bisa memperbesar domain jika ingin seperti ini, dan coba jalankan simulasi lagi maka hasilnya kobaran api dan asap akan lebih leluasa dengan batasan domain yang lebih luas.



MEMBUAT KOBARAN API LEBIH REALISTIS PADA SIMULASI

Yang pertama adalah menambahkan teksture untuk asapnya, seleksi Circle dan pada menu Physic sada atribut Smoke Flow Advance,  centang Use Textute dan pilih tekstur dari dropdown menu. Lalu, buka menu Texture, pilih Typenya adalah Clouds. Masih di menu Texture, ada atribut Colors ubah value Adjustnya seperti ini.


Selanjutnya buka kembali menu Physics , pada atribut Smoke Flow Andvance, set keyframe pada frame 1 set offsetnya = 0 dan untuk frame 100 set offsetnya = 4, cara menset keyframe bisa dengan shortcut I.


Coba jalankan simulasi kembali, lihatlah perbedaannya, kini api terlihat lebih realistis.

MENAMBAHKAN PERCIKAN API PADA SIMULASI

Seleksi Circle, dan buka menu Particle System dan klik New untuk menambahkan particle. Coba jalankan simulasi kembali, lihatlah muncul beberapa particle yang berjatuhan kebawah dari kobaran api yang kita buat. Selanjutnya tambahkanlah Smoke Flow dengan cara tekan shortcut Shift+A -> pilih Force Field -> pilih Smoke Flow, maka akan muncul objek seperti ini :


Seleksi objek Smoke Flow tersebut, lalu bukalah menu Physics, dan pada atribut Force Fields ubahlah Typenya menjadi Smoke Flow, Strengthnya menjadi 5, dan Domain Objectnya pilih Smoke Domain. Lalu seleksi Circle, buka menu Particle, dan pada atibut Field Weights ubah nilai Gravitynya menjadi 0.1. Coba jalankan simulasi, lihat sekarang particle yang sebelumnya jatuh kebawah kini menjadi keatas karena gavitynya telah kita ubah, sehingga terlihat seperti percikan api.





Tambahkan objek UV Shpere, dengan cara shortcut Shift+A  -> pilih Mesh -> pilih UV Sphere, dan perkecillah segmentsnya menjadi 5 dan ringsnya menjadi 4. Seleksi Circle kembali, bukalah menu Particles, pada atribut Render  pilih Object dan tambahkan Dupli Object  menjadi Sphere dan ubah Sizenya menjadi 0.03. Selanjutnya seleksi Sphere dan bukalah panel Node Editor lagi dengan shortcut Shift+F3, lalu tambahkan New Material , maka akan muncul node defaultnya seperti ini.




Hapuslah Node Diffuse BSDF, lalu tambahkan Node Emission dengan cara Shift+A -> pilih Shader -> pilih Emission, lalu letakkan Node tersebut dan hubungkan ke node Surface pada Material Output.


Lalu tambahkan juga node Particle Info Node dan juga node Vector Math, lalu setting seperti dibawah ini.


j.        Tambahkan juga node Math dan juga node ColorRamp,Transparent Shader dan node Mix Shader dengan setting seperti ini :



Selanjutnya seleksi Smoke Flow, buka menu Particle dan pada atribut Emission ubah nilai Number menjadi 200, End menjadi 100, Lifetime menjadi 30 dan Random menjadi 0.6. Lalu, masih di menu Particle tadi, pada atribut Render ubah nilai Size menjadi 0.01 dan Random Size menjadi 0.6 . Kemudian buka menu Render, centanglah atribut Motion Blur. Lalu tambahkan objek Plane, dengan shortcut Shift+A-> pilih Mesh -> pilih Plane dan letakkan dibawa untuk menjadi daratannya.



Tambahkan Point Lamp, dengan Shift+A -> pilih Lamp -> pilih Point, lalu buka menu setting lamp, pada atribut Nodes, atur Colornya dan Strengthnya seperti ini:


q.     Lalu bukalah menu World, dan pada atribut surface ubah colornya menjadi hitam pekat. Kemudian cobalah render dan lihat hasilnya, kini hasilnya simulasi api sudah nampak realistis dan disekitar api juga mendapat pencahayaan.




MENAMBAHKAN BEBERAPA ASET OBJEK LAINNYA

Untuk mendapat hasil yang realistis tambahkan lah beberapa aset, seperti ranting” untuk api unggunnya, daratan dengan rerumputan dan juga bisa beberapa pohon. Untuk mempersingkat tutorial ini, untuk aset-aset tersebut kita dapat download di Blendswap sesuka kita, dan aturlah lalu render kembali.

Berikut ini adalah link beberapa objek yang kami download untuk melengkapi akhir akhir


Cara menambahkan objek aset tersebut ke dalam project api unggun kita buat tadi adalah dengan cara klik File -> pilih Append -> lalu pilih file blend yang telah di download, lalu pilih object, dan pilihlah objek mana yang ingin dimasukkan. Lalu atur sesuai selera.


Selesai mengatur lalu renderlah, untuk membuat hasil render lebih bagus, bisa dengan cara memperbesar sampel rendernya, dengan cara buka menu render, pada atribut semples ubah nilai rendernya, semakin besar semakin hasilnya bagus, namun akan membuat proses render semakin lama, berikut ini adalah hasil render kami dengan perbandingan samples 10 dengan 100.

 > Render sample 10




 > Render sample 100


Dapat dilihat hasil render dengan sampel 100 lebih jelas dibandingkan dengan sampel 10 yang lebih banyak noisenya.

Kesimpulan :
Dengan pencahayaan dari simulasi api yang kita buat, segala objek yang berada disekitar api unggun menjadi terlihat, sedangkan yang berjarak diluar jangkauan api unggun tidak akan terlihat karena tidak terkena pencahayaan tersebut