Stabilisasi Proses Dithering 1-bit Obra Dinn (2017)
(forums.tigsource.com)-
Forum TIGSource
- TIGSource telah membuka server Discord resmi.
- Forum tersebut memiliki beragam topik dan diskusi, dengan banyak anggota yang ikut berpartisipasi.
-
Return of the Obra Dinn
- Sedang berlangsung diskusi tentang gaya grafis game tersebut dan masalah dithering.
- Ada upaya untuk mengatasi masalah kedipan dengan merender pada resolusi tinggi lalu melakukan downscaling.
- Dibahas metode untuk memberikan stabilitas pada gerakan dengan mengunci pola dithering.
-
Proses dithering
- Obra Dinn melalui proses dirender dalam grayscale 8-bit lalu dikonversi menjadi 1-bit.
- Dua pola dithering digunakan untuk menghadirkan berbagai efek visual.
- Pada gambar bergerak, pola dithering dapat menimbulkan masalah.
-
Stabilisasi dithering
- Diteliti cara meningkatkan stabilitas dengan mengunci pola dithering ke geometri.
- Ada upaya mencari hasil terbaik dengan mencoba berbagai metode mapping.
-
Kesimpulan
- Penyelesaian masalah dithering memakan banyak waktu, tetapi pada akhirnya masalah tersebut teratasi sambil tetap mempertahankan gaya visual game.
- Game final rencananya akan menyediakan dua mode tampilan.
1 komentar
Komentar Hacker News
Sudah lebih dari 10 tahun bekerja dengan pemrograman grafis, tapi saat memainkan game ini aku bahkan tidak menyadarinya. Kalau memikirkan bahasa visual keseluruhan game-nya, rasanya 100 jam itu benar-benar dipakai dengan sangat baik
Pada level ini, rasanya topik konsistensi temporal dalam rendering non-fotorealistik ini bahkan bisa diajukan ke SIGGRAPH
Sebagai tambahan untuk yang belum tahu, Return of the Obra Dinn dan Papers, Please keduanya adalah game karya Lucas Pope, dan dianggap sebagai karya klasik yang benar-benar solid dengan banyak penghargaan
Bahkan kalau biasanya kamu bukan orang yang suka main game, keduanya tetap layak dicoba. Dua-duanya bukan game yang tipikal
Tidak banyak game yang membuatku sampai segitunya. Aku belum mencoba Obra Dinn karena gaya seninya kurang menarik bagiku, tapi kalau suka game deduksi, Curse of the Golden Idol juga layak dilihat. Dari sisi kreativitas, game itu cukup dekat dengan game-game ini dan cukup seru
Meski begitu, aku tetap menamatkannya
Dithering 1-bit yang kuat adalah topik yang benar-benar menarik. Di 2D saja ada banyak pendekatan, masing-masing dengan kelebihan, kekurangan, dan komprominya sendiri
Menarik bahwa sesuatu yang merupakan inti dari pengalaman komputasi era 80-an justru cukup rumit di hardware modern. Dalam proyekku[0], aku menyadari bahwa hampir mustahil melakukan pemetaan 1:1 antara piksel offscreen dan kanvas yang disediakan browser
[0] https://sheep.horse/2023/1/improved_web_component_for_pixel-...
Dulu aku membuat game sederhana yang memakai tampilan warna resolusi rendah untuk 3/4 layar, lalu bagian bawahnya memakai 4 warna dengan resolusi horizontal 2x agar bisa memuat lebih banyak teks. Jadi aku mengganti resolusi 120 kali per detik tanpa CPU terasa melambat secara signifikan
Sepertinya tidak ada satu pun pendekatan yang diajukan yang benar-benar berhasil, dan masalah ini tampak jauh lebih kompleks daripada kelihatannya
Hal yang mungkin bisa bekerja dengan baik tampaknya adalah pola dither “fraktal” agar pembesaran dan pengecilan halus serta invarian terhadap skala, diproses di ruang texel supaya pergerakan kamera dan objek sama-sama tertangani dengan benar, lalu setelah pemfilteran bilinear atau supersampling pola dither, menjalankan semacam pass difusi galat di ruang layar dengan compute shader
Tapi aku tidak yakin apakah itu benar-benar akan bekerja dengan baik. Kalau itu belum cukup, alternatifnya tampak seperti memprosesnya secara sederhana di ruang layar, lalu memetakan balik hasilnya ke ruang texel dengan cara yang mempertahankan resolusi, kemudian pada frame berikutnya memakai informasi ruang texel untuk membuat solusi ruang layar yang kompatibel dan memetakannya lagi ke ruang texel, sehingga pola fraktal per-texel bisa ditumpuk secara bertahap saat runtime. Ini mungkin yang terbaik, tapi tampak sangat mahal dari sisi memori, komputasi, dan kompleksitas
https://x.com/dgant/status/1851840125065453894
https://x.com/dgant/status/1851835968342446576?t=kCUSWCtJEc_...
Cara kerjanya adalah memakai dithering di ruang dunia, menerapkan dithering 2D pada permukaan dengan tri-planar mapping, memilih skala koordinat berdasarkan kedalaman agar pola dither berada di rentang [1px, 2px), dan untuk permukaan yang cukup jauh mewarnainya dengan koordinat bola. Memang ada sedikit pengecatan ulang pada ambang kedalaman, tapi dalam praktiknya tidak terlalu mengganggu
Untuk yang tertarik, aku menggali sedikit lebih dalam dan menemukan devlog lama yang pernah dia unggah tentang topik ini [1] [2]
Bagian yang membahas algoritme upscaling Scale2X khususnya menonjol dan cukup keren [3]
[1] https://forums.tigsource.com/index.php?topic=40832.260
[2] https://forums.tigsource.com/index.php?topic=40832.msg121719...
[3] https://www.scale2x.it
Aku sangat suka bahwa orang ini membagikan semuanya di forum
Aku ingat pernah melihat pekerjaan awal untuk Papers, Please, dan ada sesuatu yang keren dari membagikan proses kerja serta membiarkannya terekspos pada umpan balik
Diskusi saat itu: https://news.ycombinator.com/item?id=15766249
Ini salah satu tulisan terbaik tentang dithering yang pernah kulihat. Aku pernah mengerjakan dithering hitam-putih untuk Return to Dark Castle
Aku ingin memakai Atkinson dithering, tapi sulit diimplementasikan di shader karena cara nilai piksel yang berdekatan saling menyebar, dan waktu itu aku juga sedang cukup stres dan kelelahan. Kurasa aku tidak terpikir untuk mengunci pola ke offset adegan, jadi mungkin ada flicker di level yang bisa di-scroll seperti katakombe atau helicopter pack. Mungkin aku melakukannya juga, tapi aku sudah tidak ingat. Bagaimanapun, ini luar biasa
Baru-baru ini aku mengunduhnya dari GOG dan mencoba memainkannya di 5K Studio Display, tapi aku tidak bisa mendapatkan hasil di mana piksel-piksel indahnya tidak menjadi buram. Sangat disayangkan
Aku sudah masuk ke semua menu pengaturan
Sekadar tambahan yang menyenangkan, soundtrack game ini ada di sini
https://www.youtube.com/watch?v=8qvdAWLcPyU