Fakultas Ilmu Komputer
6370
Implementasi
Real-Time Dynamics Lighting
dan
Soft Shadow
pada
Lingkungan Game 2-Dimensi (Studi Kasus Game
Wipe-It-Off
)
Muhammad Dikri Robinsyah1, Eriq Muhammad Adams Jonemaro2, Tri Afirianto3Program Studi Teknik Informatika, Fakultas Ilmu Komputer, Universitas Brawijaya Email: 1[email protected], 2[email protected], 3[email protected]
Abstrak
Pertumbuhan industri game berawal dari berkembangnya game 2-dimensi. Namun pada perkembangannya game 2-dimensi mulai kalah dengan game 3-dimensi. Sedangkan game 2-dimensi memiliki kelebihan yaitu biaya pembuatan yang lebih murah dan proses pengerjaan yang lebih singkat dari pada game 3-dimensi. Dengan menambahkan metode real-time dynamics lighting dan soft shadow
diharapkan dapat meningkatkan nilai dari game 2-dimensi itu sendiri. Oleh karena itu pada proyek skripsi ini diimplementasikan metode tersebut pada lingkungan game 2-dimensi dengan studi kasus
Game Wipe-It-Off. Metode real-time dynamics lighting dan soft shadow diimplementasikan dengan menggunakan Graphic API OpenGL, Bahasa C++, dan GLSL. Dari performance testing didapatkan informasi mengenai frame rate, frame time, penggunaan CPU, dan penggunaan memori pada game yang menggunakan metode dan tidak menggunakan metode memiliki perbedaan yang tidak terlalu signifikan. Sehingga tidak banyak mempengaruhi performa dari game tersebut. Oleh karena itu penggunaan metode tersebut sangatlah disarankan untuk menambah nilai dari game tanpa harus mengorbankan performa
game. Selain itu implementasi metode tersebut tidak terdapat indikasi terjadinya kebocoran memori, dimana penggunaan memori memiliki nilai yang stabil dengan selisih antara penggunaan memori terbesar dan terkecil adalah 790528 bytes.
Kata kunci: real-time dynamics lighting, soft shadow, game 2-dimensi, performance testing
Abstract
The growth of the gaming industry started from the development of 2-dimensional games. But in its development, 2-dimensional game began to lose with 3-dimensional game. While 2-dimensional games have the advantages i.e. the development cost is cheaper and the development time is shorter than the 3-dimensional game. Adding real-time dynamics lighting and soft shadow methods is expected to increase the value of the two-dimensional game itself. Therefore in this project is implemented by the method in 2-dimensional game environment with case study of Game Wipe-It-Off. Real-time dynamics lighting and soft shadow methods are implemented using OpenGL Graphic API, C ++ Language, and GLSL. From performance testing obtained information about frame rate, frame time, CPU usage, and memory usage in game using method and not using method has not significant difference. So it does not affect much the performance of the game. Therefore the use of such methods is highly recommended to add value of the game without having to sacrifice game performance. In addition, the implementation of the method there is no indication of a memory leak, where the use of memory has a stable value with the difference between the largest and the smallest memory usage is 790528 bytes.
Keywords: real-time dynamics lighting, soft shadow, 2-dimensional game, performance testing
1. PENDAHULUAN
Industri game menjadi salah satu bidang yang memiliki pertumbuhan sangat pesat. Menurut survey dari NewZoo pada tahun 2018 terdapat peningkatan signifikan grafik industri
game secara global. Yaitu pada tahun 2018
hingga mencapai $ 121,7 Milliar dan pada tahun 2021 meningkat hingga $180,1 Milliar. Hal inipun diikuti dengan beragamnya jenis game
dalam skala global. Namun tidak bisa dipungkiri bahwa awal mula game adalah berkembangnya
meskipun sekarang banyak persaingan dengan
game 3-dimensi (Bandeira & Walter, 2009). Memang pada zaman sekarang game 3-dimensi memiliki pangsa pasar yang lebih besar. Meski begitu game 2-dimensi memiliki kelebihan dimana game 2-dimensi memiliki waktu pengerjaan yang relatif lebih singkat dan biaya produksi yang lebih murah jika dibandingkan dengan game 3-dimensi. Dan dengan penambahan efek grafis pada game 2-dimensi, nilai dari game ini dapat meningkat dengan drastis. Selain itu dapat mempengaruhi pengalaman serta emosi pemain (Knez & Niedenthal, 2008). Salah satu efek grafis yang dapat diimplementasikan dalam game adalah efek pencahayaan dan bayangan.
Pembentukan efek cahaya dan bayangan dapat dilakukan dengan suatu metode yang bernama real-time dynamics lighting dan soft shadow. Pada metode tersebut pencahayaan akan bersifat dinamis dan real-time, serta bayangan yang dihasilkan adalah bayangan yang memiliki 2 bagian yaitu umbra dan penumbra. Dimana bayangan tersebut merupakan representasi nyata dari bayangan yang ada di dunia. Untuk mewujudkan penerapan metode tersebut maka dapat diterapkan dengan memanfaatkan Central Processing Unit dan
Graphic Processing Unit. Selain itu dibuat sebuah shader untuk memudahkan manipulasi data yang akan digunakan di dalam pengolahan grafis. Penelitian sebelumnya seperti pada Penelitian David K. Dunnings tahun 2016 yang telah mencoba metode ini pada game engine
komersial yaitu Unity. Real-time dynamics lighting dan soft shadow sejatinya merupakan metode yang dapat diimplementasikan dalam cara. Salah satunya adalah dengan menggunakan
game engine scratch yang dibangung menggunakan OpenGL, C++ dan GLSL. Dengan dibangun di atas game engine tersebut maka metode tersebut dapat lebih fleksibel.
2. REAL-TIME DYNAMICS LIGHTING
Real-time dynamics lighting merupakan salah satu metode yang digunakan untuk menerapkan konsep pencahayaan pada sebuah game secara langsung dengan kesan dinamis. Cahaya yang digunakan dalam penelitian ini adalah cahaya pointlight, dimana cahaya
pointlight merupakan cahaya yang memiliki sumber dengan arah cahaya yang menyebar ke segala arah (Unity, 2017). Cahaya dengan jenis ini menerapkan konsep pencahayaan yang
terjadi pada lampu bulb yang terdapat di dunia nyata. Untuk membentuk sistem pencahayaan ini dibutuhkan beberapa variabel yaitu letak pusat cahaya, intensitas cahaya, dan jangkauan cahaya. Letak pusat cahaya dan jangkauan cahaya merupakan variabel yang ditentukan sendiri yang akan mempengaruhi tingkat intensitas dari suatu cahaya. Bentuk cahaya yang akan dihasilkan ditunjukkan oleh ilustrasi pada Gambar 1.
Gambar 1. Pointlight
Perubahan intensitas tiap piksel yang digambarkan akan mengikuti nilai dari jarak dari piksel tersebut dengan kombinasi dari kekuatan cahaya itu sendiri. Kombinasi dari perhitungan antara jarak piksel dan kekuatan cahaya akan menghasilkan sebuah atenuasi cahaya dimana hal ini menandakan tingkat hilangnya intensitas cahaya terhadap jarak seperti yang terlihat pada Gambar 2 mengenai grafik hubungan antara intensitas dan jarak.
Gambar 2. Grafik Intensitas terhadap Jarak
Dari Gambar 2 terlihat jika semakin jauh jarak piksel terhadap cahaya maka intensitas yang dihasilkan akan semakin berkurang dan akhirnya akan menghasilkan efek pencahayaan yang sesuai dengan Gambar 1. Hubungan kedua variabel tersebut diwujudkan oleh persamaan
yang menentukan atenuasi dengan
𝑎𝑡𝑡 = 𝐾 1.0
𝑐+(𝐾𝑙∗ 𝑑)+(𝐾𝑞∗𝑑∗𝑑) (1)
Keterangan :
𝑎𝑡𝑡 = atenuasi pada piksel
𝑑 = Jarak piksel dengan sumber cahaya
𝐾𝑐 = Faktor konstan 𝐾𝑙 = Faktor linier 𝐾𝑞 = Faktor quadratik
Nilai atenuasi akan menentukan tingkat intensitas cahaya pada jarak tertentu yang dilambangkan oleh att pada Persamaan 1. Pada persamaan 1 Kc, Kt, Kq merupakan faktor penentu intensitas yang melibatkan kekuatan cahaya.
3. SOFT SHADOW
Salah satu efek yang terjadi ketika sebuah benda dikenai oleh cahaya adalah terbentuknya sebuah bayangan yang akan memproyeksikan bentuk benda tersebut terhadap cahaya. Dalam
video game, bayangan digunakan untuk memberikan kesan nyata dimana berpadu dengan lingkungan sekitarnya sesuai dengan hukum di dunia nyata (Evans, Agenjo, & Blat, 2014). Salah satu bentuk merepresentasikan bayangan di dalam video game adalah dengan menggunakan metode soft shadow. Metode soft shadow adalah metode penggambaran bayangan yang memiliki 2 bagian penting dalam bayangan yaitu bagian umbra dan bagian penumbra. Kedua bagian tersebut merupakan bagian penting pembentuk dari soft shadow seperti yang ditunjukkan oleh Gambar 3 yaitu bentuk soft shadow.
Gambar 3. Soft Shadow
Pada Gambar 3 ditunjukkan jika umbra dan penumbra mempunyai bentuk yang berbeda. Umbra memiliki bentuk yang dominan lebih besar jika dibandingkan dengan penumbra. Umbra memiliki bagian warna yang solid sedangkan penumbra memiliki perubahan atau
gradasi warna pada bagian sisi luarnya. Dan yang menjadikan sebuah soft shadow mendekati bentuk nyata dari suatu bayangan adalah karena terdapat 2 bagian tersebut di dalamnya. Dalam penggambarannya bayangan akan membentuk sebuah proyeksi dari benda tersebut terhadap arah datangnya suatu cahaya. Di dalam video game metode penggambaran suatu bayangan disebut sebagai shadow mapping (Wiens dan Domik, 2015). Penggunaan shadow mapping
memungkinkan implementasi dilakukan berdasarkan langkah-langkah penggambaran sebagai berikut yaitu umbra mapping dan penumbra mapping yang masing-masing langkah akan membentuk bagian umbra dan bagian penumbra. Dalam langkah tersebut dibutuhkan variabel yang membantu terjadinya
mapping yaitu posisi dari sumber cahaya dan batasan-batasan objek yang disinari.
Umbra mapping merupakan langkah dalam pembentukan bayangan soft shadow dimana dalam langkah ini hanya akan membentuk bagian umbra. Dimana akan memproyeksikan benda terhadap cahaya seperti yang ditunjukkan pada
Gambar 4 yaitu skema dari umbra
mapping. Bagian abu-abu padaGambar 4
merupakan cikal bentuk dari umbra yang dibentuk berdasarkan proyeksi cahaya terhadap bentuk objek yang diteruskan.Gambar 4. Skema Umbra Mapping
Langkah berikutnya adalah Penumbra
Gambar 5. Skema Penumbra Mapping
Pada Gambar 5 terlihat jika mapping yang dilakukan untuk membentuk penumbra memanfaatkan ukuran dari sumber cahaya yang diihitung berdasarkan jari-jarinya. Hal ini dimungkinkan dengan adanya luasan cahaya yang berbeda menghasilkan bias yang akan membuat sebuah gradasi bayangan menuju transparan pada bayangan di dunia nyata. Untuk mewujudkan hal tersebut dalam bentuk dunia
video game maka dapat menggunakan persamaan seperti yang ditunjukkan pada persamaan 2 yaitu menghitung proyeksi lebar kelebihan pada luasan bayangan yang nantinya akan menghasilkan gradasi pada penumbra.
𝑝𝑟𝑜𝑗𝑥𝑦= {𝑥𝑦𝑟= 𝑙𝑖𝑔ℎ𝑡𝑅 ∗ 𝑠𝑖𝑛(𝛽) + 𝑥𝑠 𝑟= 𝑙𝑖𝑔ℎ𝑡𝑅 ∗ 𝑐𝑜𝑠(𝛽) + 𝑦𝑠 (2)
Keterangan :
𝑝𝑟𝑜𝑗𝑥𝑦 = titik proyeksi penumbra 𝑥𝑟 = koordinat x hasil proyeksi 𝑦𝑟 = koordinat y hasil proyeksi
𝛽 = sudut hasil proyeksi terhadap titik awal atau akhir
𝑥𝑠 = koordinat x sumber bayangan 𝑦𝑠 = koordinat y sumber bayangan
4. METODOLOGI
Untuk mewujudkan efek grafis yang diinginkan dalam penelitian ini yaitu real-time dynamics lighting dan soft shadow dapat dilakukan dengan beberapa langkah yang akan digambarkan dalam diagram alir metodologi pada Gambar 6. Pada awal diagram dijelaskan jika suatu cahaya akan diletakkan pada posisi tertentu dan diberikan nilai jangkauan, hal ini digunakan untuk memberikan informasi mengenai posisi dan jangkauan cahaya pada proses selanjutnya. Pembentukan real-time dynamics lighting terjadi pada langkah selanjutnya yaitu perhitungan setiap warna piksel terhadap perubahan posisi dari cahaya yang memiliki tingkat intensitas yang berbeda pada setiap jarak antara piksel dengan posisi cahaya.
Gambar 6 Diagram Alir Metodologi
Pada langkah selanjutnya masuk pada metode soft shadow, dimana setiap objek yang dikenai cahaya akan diambil data titik-titik
boundary. Setelah didapatkan titik boundary
maka akan dicari vektor normal dari setiap sisi yang dimiliki oleh objek untuk menentukan bagian yang akan menghasilkan bayangan dengan mengetahui arah vektor normal dengan arah vektor cahaya. Setelah diketahui sisi-sisi yang akan menghasilkan bayangan maka akan dihitung titik-titik proyeksi bayangan terhadap posisi cahaya, dan selanjutnya akan digambar sesuai dengan titik-titik yang diketahui.
5. PERANCANGAN
4.1. Perancangan Algoritme Real-time Dynamics
Real-time dynamics lighting yang merupakan modifikasi piksel pada scene yang telah ada akan diimplementasikan menggunakan
dilakukan pada pengolahan shader di game pada umumnya.
Gambar 7. Diagram Alir untuk Shader Vertex
Nilai vertex shader yang telah diproses nantinya akan dikirimkan pada fragment shader
yang bertugas untuk mengolah fragment warna pada piksel yang ditunjuk. Untuk memanipulasi hingga terbentuk efek lighting yang diinginkan maka algoritme yang harus diterapkan ditunjukkan pada Gambar 8.
Gambar 8. Diagram Alir untuk Fragment Shader
Pada Diagram alir tersebut dilakukan penghitungan letak piksel terhadap posisi sumber cahaya untuk mengetahui tingkat intensitas cahaya yang diterima oleh piksel tersebut. Dengan menggunakan atenuasi maka penghitungan intensitas akan dilakukan dengan menginterpolasi hasil nilai warna sesungguhnya dengan nilai yang didapatkan. Maka nilai warna yang telah diinterpolasi akan menjadi nilai warna yang akan menjadi hasil dari real-time dynamics lighting.
4.2. Perancangan Algoritme Soft Shadow
Perancangan algoritme soft shadow akan dibagi menjadi 2 bagian yaitu perancangan untuk umbra dan perancangan untuk penumbra. dalam membentuk 2 bagian tersebut akan digunakan geometri poligon sehingga dibutuhkan titik-titik proyeksi yang dapat membentuk geometri tersebut. Pada implementasi nanti akan digunakan bahasa pemrograman C++ dan 2 sebuah kelas yang akan diberi nama Lighting. Mekanisme pembentukan bagian geometri menggunakan vertex, selain itu objek yang akan disinari nantinya juga terbentuk dari beberapa vertex yang dikumpulkan dalam satu bentuk. Untuk mengetahui batas-batas yang digunakan untuk menentukan proyeksi dari bayangan.
Gambar 9. Diagram Alir Pembentukan Umbra
Algoritme umbra akan meliputi perhitungan proyeksi titik yang berdasarkan letak dari suatu cahaya. Dengan mengetahui letak cahaya dan
bayangan. Dan akhirnya titik hasil proyeksi nantinya akan disimpan pada data koleksi. Algoritme pembentukan umbra ditunjukkan pada Gambar 9.
Pembentukan bagian penumbra yang akan menjadi algoritme dan digambarkan pada Gambar 10 meliputi penggambaran terhadap 2 bagian penumbra yaitu pada awal dan akhir dari bayangan. Pada Gambar 10 diagram alir menunjukkan pembuatan titik proyeksi penumbra berdasarkan posisi awal bayangan dan akhir bayangan dengan sudut yang sesuai. Sudut tersebut dihitung melalui perpindahan yang terjadi akibat nilai radius dari sumber cahaya. Akibat perpindahan ini terdapat bias yang mengakibatkan terdapat sudut plus dan minus yang akan diterapkan pada awal dan akhir dari bayangan. Setelah didapatkan nilai dari titik proyeksi terhadap 2 bagian penumbra maka titik-titik tersebut akan disimpan pada koleksi data untuk digunakan dalam penggambaran.
Gambar 10. Diagram Alir Pembentukan Penumbra
6. IMPLEMENTASI
Implementasi yang dilakukan dengan menggunakan metode real-time dynamics lighting dan soft shadow menggunakan game engine scratch yang dikembangkan menggunakan OpenGL dengan bantuan SDL2 dan beberapa library lainnya sebagai penunjang dan bahasa pemrograman yang digunakan adalah C++.
Dasar implementasi metode real-time dynamics lighting berdasarkan rancangan algoritme diagram alir yang telah ditunjukkan
pada Gambar 7 dan Gambar 8. Dan untuk metode soft shadow berdasarkan rancangan algoritme diagram alir pada Gambar 9 dan Gambar 10.
Hasil dari implementasi metode real-time dynamics lighting dan soft shadow ditunjukkan pada Gambar 12 dan pada Gambar 12 merupakan bentuk lingkungan 2-dimensi yang belum diimplementasikan metode tersebut.
Gambar 11. Stage Tanpa Implementasi Metode
Gambar 12. Stage Dengan Implementasi Metode
7. PENGUJIAN DAN EVALUASI
Pada fase pengujian akan dilakukan uji metode yang telah diterapkan pada lingkungan 2-dimensi dengan menggunakan metode pengujian soak testing yang merupakan sub-kategori dari performance testing dimana implementasi metode akan diberi beban berupa jumlah objek yang akan disinari akan ditambah sebanyak 5 objek setiap sesinya. Untuk mendapatkan informasi mengenai penggunaan CPU, penggunaan memori, FPS, dan frame time
dilakukan pengujian selama 30 menit sejumlah 5 sesi. Untuk mengetahui perbandingan penggunaan metode dengan dengan tidak menggunakan metode maka pengujian akan dilakukan pada kedua sisi tersebut dengan jumlah yang disebutkan sebelumnya.
sesi pada lingkungan game 2-dimensi yang tidak menggunakan metode real-time dynamics lighting dan soft shadow.
Tabel 1. Hasil Performance Testing pada Kasus Tidak Menggunakan Metode
performance testing pada lingkungan 2-dimensi yang telah diterapkan metode real-time dynamics lighting dan soft shadows. Perbandingan antara kedua tabel akan divisualisasikan menggunakan gambar grafik untuk mempermudah memahami isi dari tabel tersebut.
Tabel 2. Hasil Performance Testing pada Kasus Menggunakan Metode rata-rata dari keseluruhan data yang telah didapatkan melalui pengujian untuk
mendapatkan gambaran secara umum antara kedua kasus yaitu yang menggunakan metode dan yang tidak menggunakan metode.
Tabel 3. Perbandingan Antar Kasus
Kasus
Dari keseluruhan pengujian yang dilakukan, terlihat jika perbandingan performa antara penggunaan metode dan tidak menggunakan tidak banyak mempengaruhi performa, sehingga penggunaan metode real-time dynamics lighting dan soft shadow dapat menjadi pilihan untuk meningkatkan nilai dari suatu game. Hasil dari pengujian soak testing
didapatkan hasil tidak terjadi masalah kebocoran memori yang ditunjukkan oleh penggunaan memori paling kecil yaitu 19378176 bytes dan yang terbesar adalah 20168704 bytes.
8. KESIMPULAN DAN SARAN
Implementasi metode Real-time Dynamics Lighting dan Soft Shadow dapat diimplementasikan dengan menggunakan API Grafis OpenGL, bahasa pemrograman C++ dan bahasa Shader GLSL. Langkah pembentukan metode real-time dynamics lighting dapat dilakukan dengan cara menghitung jarak antara cahaya dan piksel, lalu menghitung faktor pembentuk atenuasi, menghitung nilai atenuasi, dan yang terakhir adalah menghitung nilai interpolasi warna terhadap hasil nilai atenuasi. Untuk pembentukan soft shadow dapat dilakukan dengan membentuk umbra dengan menggunakan umbra mapping terlebih dahulu dan penumbra dengan menggunakan penumbra
mapping.
Dari hasil pengujian yang telah dilakukan dapat diambil informasi mengenai penggunaan metode real-time dynamics lighting dan soft shadow tidak banyak mempengaruhi performa dari game, sehingga keputusan untuk menggunakan metode tersebut di dalam game
dapat dilakukan untuk menunjang dan menambah nilai dari segi grafis pada game
metode menunjukkan tidak adanya kebocoran memori, sehingga hasil rancangan dapat digunakan dengan aman.
Potensi yang dimiliki oleh metode real-time dynamics lighting dan soft shadow adalah dapat digunakan untuk implementasi metode fog of war pada lingkungan game 2-dimensi yang juga dapat menambah nilai permainan tersendiri pada
game tersebut. Selain itu metode yang telah diterapkan dalam penelitian ini seharusnya dapat ditingkatkan dalam hal jumlah titik cahaya yang dapat berjumlah banyak sehingga dapat menambah kesan yang lebih baik dalam game.
9. DAFTAR PUSTAKA
Bandera, D., Walter, M., 2009. Automatic Sprite Shading. Rio de Janeiro:Games and Digital Entertainment (SBGAMES).
Choppock, M.J., 2015. An Often Overlooked Game Performance Metric—Frame Time. [online] Intel Software Developer Zone.
Tersedia di:
<https://software.intel.com/en- us/articles/an-often-overlooked-game-performance-metric-frame-time> [Diakses 6 Juni 2018]
Dunnings, D.K., 2016. Creating Real-time dynamics Light and Soft Shadows for Two-dimensional Environments Using a Comercial Game Development Engine.
Nigeria, Tersedia di
<http://students.creativetechnologieslab.or g/index.php/portfolio-item/creating-real-time-dynamic-lights-and-soft-shadows/> [diakses 18 Agustus 2017].
Evans, A., Agenjo, J., Blat, J., 2014. Variable Penumbra Soft Shadows for Mobile Devices. Lisbon: IEEE Conference Publications.
Knez, I., Niedenthal, S., 2008. Lighting in Digital Game World: Effects on Affect and
Play Performance. Gävle:
CyberPsychology & Behavior.
Redavid, C., Farid, A., 2011. An Overview of Game Testing Techniques, [online]
Tersedia di: <
https://www.semanticscholar.org/paper/A
n-Overview-of-Game-Testing-
Techniques-Redavid-Farid/4361a1882ca8ea296ff6411dbbaa90 ca5fbc3ed4?tab=abstract> [Diakses 28 Mei 2018]
Sarojadevi, H., 2011. Performance Testing: Methodologies and Tools. Journal of
Information Engineering and
Applications, [online] Tersedia di: <http://www.iiste.org/Journals/index.php/ JIEA/article/view/1196> [Diakses 28 Mei 2018]
Unity, 2017. Types of Light. [online] Tersedia di:
<https://docs.unity3d.com/Manual/Lightin g.html> [Diakses .21 Maret 2018]
Wijman, T., 2018. Mobile Revenues Account for More Than 50% of the Global Games Market as It Reaches $137.9 Billion in 2018. Global Games Market Report,
[online] Tersedia di: