Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. 3D & Motion Graphics
  2. Unity 3D
Cgi

Pencahayaan dalam Unity 5

Difficulty:BeginnerLength:LongLanguages:

Indonesian (Bahasa Indonesia) translation by Aditia Dwiperdana (you can also view the original English article)

Final product image
What You'll Be Creating

Unity sudah menjadi semakin populer di kalangan game programmer baru. Ini karena Unity mendukung banyak platform seperti mobile, desktop, dan console. Terlebih lagi, Unity gratis untuk digunakan oleh developer atau studio dengan pemasukan yang kecil.

Unity mendukung beberapa teknologi dan komponen. Beberapa komponen kunci adalah teknik pencahayaan. Dalam Unity kamu bisa menerangi sebuah scene dengan mensimulasi perilaku kompleks lampu atau dengan menerapkan model pencahayaan sederhana.

Tutorial ini akan fokus untuk menjelaskan bagaimana pencahayaan pada Unity 5 bekerja, jenis dan properti cahaya, dan bagaimana menggunakannya untuk membuat efek pencahayaan yang kaya.

Persyaratan

Pertama, pastikan kamu memiliki versi terbaru Unity. Pada tutorial ini kita menggunakan versi 5.5.0f3. Jika kamu tidak menggunakan versi terbaru, kemungkinan akan ada masalah saat mengikuti tutorial ini.

Berikutnya, download file LightningInUnity5-Starter. Unzip dan buka project pada Unity. Scene Demo akan terbuka secara otomatis, jika tidak, kamu bisa membukanya dari folder Assets.

Pencahayaan Langsung dan Tidak Langsung

Pada kasus di dunia nyata, kamu memiliki dua jenis pencahayaan: langsung dan tidak langsung. Pencahayaan langsung adalah jika cahaya datang langsung dari sumber cahaya (lampu, matahari, dan lain-lain). Sedangkan pencahayaan tidak langsung adalah cahaya yang datang dari objek lain.

Kita coba dan implementasi keduanya.

Pencahayaan langsung bisa dilihat di Scene yang ada. Jika kamu perhatika, kamu memiliki cahaya langsung di scene bernama Directional Light.

Directional light biasa digunakan pada scene outdoor sebagai matahari atau bulan. Mereka  mempengaruhi semua permukaan setiap objek pada scene. Mereka juga paling ringan untuk prosesor grafik.

Kamu bisa memilih Directional Light dan melihat propertinya pada panel Inspector. Kamu akan lihat beberapa properti menarik seperti Type, Color, dan Intensity. Kamu bisa bermain dengan properti Color dan Rotation dan melihat hasilnya secara langsung. Dengan mengubah nilai-nilai tersebut, kamu sudah menggunakan directional light.

Directional Light Inspector Rotation

Saat ini, scene 3D kamu tidak memiliki cahaya tidak langsung. Kamu bisa memeriksanya dengan menggerakkan Sphere lebih dekat ke tembok hijau atau merah. Warna Sphere tidak berubah.

Global Illumination - Sphere surface

Satu cara untuk menggunakan pencahayaan tidak langsung adalah dengan menggunakan GameObject statik. Ingatlah bahwa penggunakan game objek statik akan meningkatkan performa rendering game, tapi akan mengurangi kualitasnya, jadi kamu perlu menemukan komposisi yang tepat.

Buat sebuah mesh box ke scene (GameObject > 3D Object > Cube) dan tempatkan di sebelah bola. Beri nama Cube.

Global Illumination - Box mesh

Pilih Cube, dan centang properti Static pada Inspector.

Global Illumination - Cube Inspector Properties

Saat kamu menyalakan properti Static, Unity secara otomatis membuat light map untuk objek tersebut dan menerapkan model pencahayaan yang tepat. Kamu sekarang bisa menggerakkan kamera ke Cube dan lihat pencahayaan tidak langsung bekerja. Warna hijau (pada gambar) atau warna merah sekarang menyebar ke Cube.

Global Illumination - Light map with shadows

Jika kamu ubah arah Directional Light, kamu akan lihat Unity otomatis memperbarui light mapnya.

Pencahayaan tidak langsung yang digunakan Cube tidak diterapkan pada Sphere karena Sphere tidak static. Kamu bisa memperbaikinya dengan mengubah Sphere menjadi static (Inspector > Static).

Saat ini kamu bisa menambahkan pencahayaan langsung dan tidak langsung pada objek statik. Tapi scene 3D terdiri dari objek dinamis. Bagaimana kita menerapkan efek pada objek dinamis? Pertanyaan itu membawa kita ke bagian berikutnya.

Light Probe

Saat scene memilki objek non-static, kamu perlu menggunakan teknik pencahayaan spesifik untuk meneranginya agar tidak terlihat terpisah dari scene.

Dengan menggunakan light probe dengan posisi yang tepat, kamu bisa mengambil kondisi cahaya pada titik-titik pending pada scene. Setiap light probe akan mengambil informasi pada area spesifik dan memperhitungkan pencahayaan pada area tersebut. Perhitungan ini cukup cepat untuk digunakan saat permainan. Pengunaan light probe menghindari perbedaan pencahayaan antara objek bergerak dan objek statik dalam scene.

Sphere adalah objek dinamis, karena itu pencahayaannya tidak tepat. Jika kamu mematikan Directional Light, kamu akan lihat bahwa cahaya yang mengenai Sphere adalah ambient light. Untuk menerangi Sphere dengan benar, kamu perlu menggunakan light probe.

Untuk menambahkan light probe ke area dalam scene, buka Component > Rendering > Light Probe Group. Ini akan membuat light probe group dalam scene.

Light Probes - Light probe group

Langkah berikutnya adalah menyimpan probe pada posisi yang tepat. Kamu perlu menempatkannya di masing-masing sudut Box.

Cara terbaik adalah pada tampilan orthographic (klik kubus di kanan atas scene). Lalu, pilih setiap node light probe dan drag ke sudut-sudut Box (seperti pada gambar).

Light Probes - Side selection

Ulangi proses ini sampai kamu sudah memposisikan semua node.

Light Probes - Procedure

Ada scene yang membutuhkan probe tambahan untuk bisa menerangi objek dengan benar. Untuk menambahkan probe, kamu bisa memilih sebuah probe lalu pada Inspector, klik Duplicate Selection.

Light Probes - Light Probe Group

Setelah duplikasi, kamu perlu menempakan node baru pada posisi yang tepat (duplikat akan muncul pada posisi yang sama).

Light Probes - Probes positioning

Jika kamu melihat lebih dekat antarmuka pada Inspector, kamu akan bisa menambahkan probe satuan (Add Probe), menghapus probe (Delete Selected), atau memilih semua probe dalam group (Select All).

Untuk melihat efek dari light probe, pilih Sphere dan tambahkan Rigidbody (Add Component > Rigidbody). Lalu buat material untuk collider. Kamu bisa menggunakan material rubber.

Light Probes - RigidBody

Sekarang, tempatkan Sphere dekat bagian atas dari Box dan tekan Play. Kamu bisa melihat pencahayaan Spere yang benar.Untuk melihat bedanya, disable light probe dan tekan Play kembali.

Light Probes - Testing the light probes

Point Light

Point light sangat umum dalam game. Mereka digunakan untuk ledakan atau lampu. Karena mereka menerangi ke semua arah, mereka memiliki biaya sedang pada graphic processor. Namun, memperhitungkan bayangan dengan point light lebih mahal.

Tambahkan point light dengan memilih GameObject > Light > Point Light. Lalu posisikan Point light di dalam Box dekat bagian atas.

Point light - light positioning

Pilih Point light dan lihat parameter pada Inspector.

Point light - Inspector parameters

Parameter pertama adalah Type. Di sini kamu bisa mengatur jenis cahaya yang ingin kamu gunakan. Kamu bisa memilih Spot, Directional, Point, atau Area. Masing-masing memberikan efek pencahayaan tertentu. Kamu bisa memilih opsi mana saja dan melihat hasilnya secara langsung. Tapi pada tutorial ini kamu akan menggunakan opsi Point. Ini akan menghasilkan efek bola lampu (menerangi semua arah secara merata).

Parameter kedua adalah Baking. Kamu bisa mengaturnya menjadi Realtime, Baked, atau Mixed. Biarkan nilainya saat ini. Parameter Range menentukan seberapa jauh cahaya menyinari dari pusat Point light. Parameter Color menentukan warna cahaya.

Intensity menentukan seberapa terang cahaya, Bounce Intensity menentukan faktor pengali cahaya tidak langsung. Shadow Type menentukan properti dan jenis bayangan. Kamu bisa mengaturnya menjadi No Shadows, Hard Shadows, atau Soft Shadows. Ingat bahwa bayangan point light paling mahal di Unity, jadi hati-hati saat memilih opsi ini.

Jika kamu memilih Hard Shadows atau Soft Shadows, kamu akah melihat bayangan yang dihasilkan oleh Sphere dari Point light. Saat kamu mengubah nilai Strength, bayangan juga akan menjadi lebih kuat dan lemah. Resolution menentukan tingkat detail bayangan. Bias dan Normal Bias mengatur offset yang digunakan saat membandingkan posisi pixel pada light space dengan nilai dari shadow map.

Cookie adalah parameter optional yang melambangkan alpha channel dari texture yang digunakan sebagai mask untuk menentukan seberapa terang cahaya dari berbagai posisi. Karena ini adalah point light, texture yang digunakan harus Cubemap.

Opsi Draw Halo hanya merender halo di sekitar sumber cahaya. Flare menentukan referensi flare yang akan dirender pada posisi cahaya. Flare dan Draw Halo bisa berguna saat mendebug scene 3D dan mencari bottleneck.

Render Mode menentukan seberapa penting pencahayaan saat merender scene. Yang lebih penting akan lebih mendapat rendering yang intensif. Render Mode bisa diatur menjadi Auto, Important, atau Non-Important. Akhirnya, Culling Mask bisa digunakan untuk memilih atau mengabaikan grup objek yang dipengaruhi point light.

Sekarang kamu sudah melihat semua properti point light, kita perlu membahas tentang pencahayaan langsung dan tidak langsung saat menggunakan point light. Saat kamu membuat game, satu karakteristik utama adalah penggunakan cahaya dan efek. Tapi, skenario pencahayaan yang rumit akan membuat waktu loading yang lebih lama, bottleneck FPS, dan pekerjaan tambahan untuk CPU. Karena itu, kamu disarankan untuk bermain dengan Shadow Type dan properti Baking untuk menyeimbangkan performa scene.

Contohnya, jika kamu mengatur Baking ke Realtime dan Shadow Type menjadi Hard Shadows atau Soft Shadows, kamu akan memiliki efek bayangan realistis antara Sphere dan Box. Tapi, setup ini berat untuk CPU jika scene memiliki banyak cahaya.

Bagaimana memecahkan masalah tersebut? Kamu bisa mengatur Baking menjadi Bake. Begitu kamu lakukan ini, Unity akan otomatis membuat lightmap untuk cahaya ini dan memberikan performa tambahan. Tapi, tambahan performa ini memiliki biaya: sekarang kamu tidak memiliki bayangan yang dihasilkan point light ke objek dinamis, seperti Sphere.

Praktek terbaik adalah menganalisa masing-masing sumber cahaya dan mengaturnya sesuai kebutuhan. Contohnya, pada scene ini lebih masuk akal untuk Realtime Baking dan Hard Shadows karena hanya ada satu sumber cahaya dalam kotak.

Tapi, jika sumber cahaya kamu adalah obor di tembok, akan lebih baik mengatur Baking menjadi Bake dan membiarkakn Unity menghasilkan lightmap.

Ingat bahwa tugas developer untuk mengatur kualitas dan performa game. Jadi kamu perlu berhati-hati menjaga keseimbangan tersebut, terutama jika kamu membuat mobile game.

Spot Light

Spot light menghasilkan cahaya dari sumber ke area tertentu. Mereka hanya menyinari objek yang ada di area tertentu, dibatasi oleh kecurut 3D. Pada dasarnya, mereka bekerja seperti lampu depan mobil. Seperti yang bisa dibayangkan, mereka cocok untuk senter, lampu mobil, atau lampu jalan. Mereka adalah jenis cahaya paling mahal untuk graphic processor.

Mari kita ubahu Point light menjadi spot light. Pilih Point light yang sudah dibuat sebelumnya dan ubah Type menjadi Spot. Lalu, Rotate cahaya tersebut agar menyinari lantai Box. Ubah namanya menjadi Spot light.

Spot light configuration

Seperti yang kamu bisa perhatikan, di dalam Inspector, parameter Spot mirip dengan Point. Tapi, kamu memiliki parameter beru bernama Spot Angle.

Spot light Inspector properties

Spot Angle menentukan sudut kerucut cahaya dalam satuan derajat.

Terkait pencahayaan langsung dan tidak langung, spot light bekerja persis seperti point light. Kamu memiliki batasan dan keuntungan yang sama. Jadi, kamu harus hati-hati saat mengatur keseimbangan cahaya dalam game.

Ketahui bahwa kamu bisa bermain-main dengan bayangan dan baking untuk menyeimbangkan tampilan dan performa.

Area Light

Area lighti menyinari semua arah pada satu sisi kotak plane. Kotak ini ditentukan dengan properti Width dan Height. Area light hanya tersedia saat light map baking, yang artinya mereka tidak punya efek pada objek saat runtime.

Pilih Spot light dan ubah Type menjadi Area dan beri nama Area light. Ubah posisi light dalam kotak, dan pada Inspector, ubah Width dan Height, agar menutupi semua area di dalam Box.

Area light positioning

Dengan melihat parameter Area light, kamu bisa lihat parameter yang sama dengan sebelumnya, contohnya Type, Draw Halo, Flare, Render Mode, dan Culling Mask.

Paremeter yang baru adalah Width dan Height. keduanya untuk mengatur ukuran area cahaya.

Area light Inspector properties

Jika kamu tekan Play, kamu akan lihat cahaya menyinari semua objek di dalam area tersebut. Ukuran kotak ditentukan oleh properti Width dan Height. Pada sisi di mana cahaya menyinari adalah vektor normal dari plane, yang sama dengan arah Z positif dari sumber cahaya. Cahaya muncul dari semua permukaan kotak. Karena ini, bayangan yang dihasilkan lebih lembut dibanding point atau directional light.

Perhitungan cahaya untuk area cukup berat untuk prosesor, jadi mereka tidak tersedia pada runtime dan hanya bisa di Baked ke light map.

Kesimpulan

Ini mengakhiri tutorial tentang pencahayaan pada Unity 5. Kamu belajar mengenai beberapa efek cahaya dan pengaturannya. Dengan pengetahuan ini, kamu sekarakng bisa menerapkakn beberapa efek cahaya pada game atau aplikasimu.

Unity memiliki ekonomi yang aktif. Banyak produk lain yang bisa membantu kamu membangun projectmu. Sifat platform tersebut membuat Unity menjadi opsi yang baik untuk meningkatkan skill. Apapun kondisinya, kamu bisa melihat semua yang kami miliki pada Envato Marketplace.

Jika kamu punya pertanyaan atau komenta, silakan tulis di bagian komentar.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.