Perlin Noise

Perlin Noise adalah suatu teknik yang dipakai untuk mensimulasikan sesuatu yang terlihat acak dan natural. Misalkan saja pegunungan, bentuk asap dan awan serta riak gelombang [1], [2]. Teknik dikembangkan oleh Ken Perlin dan digunakan dalam CGI yang dipakai di film TRON pada tahun 1981 [3].

Pada awalnya Ken Perlin prihatin dengan kualitas CGI di zamannya karena terkesan tidak natural. Berawal dari rasa frustasi tersebut Ken Perlin mendesain Perlin Noise yang kemudian tidak hanya dipakai di film TRON, tetapi dipakai juga di berbagai karya multimedia lainnya. Selain itu, karena ciptaannya begitu fenomenal Ken Perlin mendapatkan penghargaan Technical Achievement Awarddari Academy of Motion Picture Arts and Sciences di bidang teknologi [4]. Beberapa hasil dari

 

Di masa sekarang, teknik Perlin Noise tidak hanya marak dipakai dalam bidang CGI, tetapi juga seringkali dipakai didalam pembuatan asset game secara otomatis atau biasa disebut dengan Procedural Content Generation (PCG). PCG pada tahun 2014 sempat menjadi trending topic pada perhelatan akbar Global Game Jam 2014, karena pada waktu itu game yang memiliki algoritma generasi konten acak dan memiliki art style retro sedang lagi marak-maraknya. Sebutlah beberapa game seperti Teraria dan Minecraft yang memiliki grafik pixel dan voxel.

 

Konten game yang sering dibuat dengan menggunakan teknik Perlin Noise adalah peta, level  dan dungeon. Berikut adalah contoh generasi peta, level dan dungeon menggunakan teknik Perlin Noise

Gambar 1 Dungeon yang dibuat dengan teknik Perlin Noise diambil dari http://jojendersie.de/hex-grid-dungeon-generation-i/

Gambar 2 Terrain yang dibuat dengan teknik Perlin Noise, diambil dari https://gamedev.stackexchange.com/questions/147361/perlin-noise-terrain-generation-with-integer-discrete-elevation-levels-results

 

Mengingat Perlin Noise memiliki banyak kegunaan, teknik ini sudah terintegrasi di berbagai macam framework, engine dan tools dalam membuat game dan aplikasi Multimedia. Contohnya pada Unity dengan menggunakan C#, kita bisa menggunakan fungsi perlin dengan sintaks “Mathf.PerlinNoise(x,y)” [5]. Dengan X dan Y adalah posisi di bidang dua dimensi. Walaupun fungsi pada Unity ini membutuhkan dua input angka koordinat X dan Y yang notabene dua dimensi, tetapi fungsi ini dapat digunakan untuk satu dimensi dan dimensi lainnya.

Sekarang tinggal kreatifitas Binusian dalam menggunakan teknik Perlin Noise, kuncinya ada pada apa yang disimbolkan oleh nilai input dan nilai output Perlin Noise ini.

 

[1]        K. Perlin, “Image Synthesizer.,” Comput. Graph., vol. 19, no. 3, pp. 287–296, 1985.

[2]        N. Shaker, J. Togelius, and M. J. Nelson, Procedural Content Generation in Games: A Textbook and an Overview of Current Research. Springer, 2016.

[3]        K. Perlin, “Chapter 4 In the beginning: The Pixel Stream Editor.”

[4]        K. Perlin, “No Title.” [Online]. Available: https://cs.nyu.edu/~perlin/doc/oscar.html. [Accessed: 01-Jun-2022].

[5]        “No Title.” [Online]. Available: https://docs.unity3d.com/ScriptReference/Mathf.PerlinNoise.html. [Accessed: 31-May-2022].