2 poin oleh GN⁺ 2024-03-01 | 1 komentar | Bagikan ke WhatsApp

Cara menggunakan LUT dalam video game, dan bagaimana Anda juga bisa memakainya

  • Dalam video game, LUT (look-up table) digunakan untuk memanfaatkan teknik kreatif.
  • Menjelaskan cara memanipulasi data video secara real-time melalui contoh yang menggunakan WebGL.
  • Pengguna dapat berlatih menggunakan video mereka sendiri atau webcam.

Pengaturan

  • Menggunakan video hitam-putih yang direkam dengan kamera termal sebagai titik awal.
  • Mengunggah video ke GPU melalui WebGL dan menampilkannya sama seperti aslinya dengan menggunakan shader.

Pewarnaan

  • Memberi warna pada video dengan menggunakan Fragment Shader yang menentukan warna untuk tiap piksel.
  • Menjelaskan cara memanipulasi warna melalui contoh sederhana yang memberi warna oranye.

Biaya performa: nol

  • Dampak performa dari pewarnaan hampir tidak ada, dan dapat diabaikan berkat latency hiding pada GPU.

Penggunaan pewarnaan oleh Valve Software

  • Dalam game Valve Software Left 4 Dead, pewarnaan diterapkan pada model kendaraan untuk menghasilkan berbagai variasi.

LUT - sederhana tetapi kuat

  • Menjelaskan cara mendefinisikan dan mengubah rentang warna menggunakan LUT.

1D LUT yang sederhana

  • 1D LUT adalah array warna yang digunakan untuk mengubah video grayscale menjadi RGB.
  • Mendemonstrasikan konversi warna menggunakan 1D LUT dengan berbagai ukuran.

Banyak warna

  • Menyediakan semua color map yang didukung matplotlib sebagai 1D LUT.
  • Disarankan menggunakan color map Perceptually Uniform.

Apakah tetap tanpa biaya performa?

  • Untuk 1D LUT kecil, pengaruh terhadap performa tidak besar, dan cache GPU digunakan secara efisien.

Variasi untuk zombie

  • Dalam Left 4 Dead 2, LUT digunakan untuk menciptakan berbagai variasi warna zombie.

Prahitung komputasi

  • 1D LUT dapat digunakan untuk melakukan cache atas komputasi yang mahal, misalnya untuk melakukan koreksi gamma dengan cepat.

3D LUT yang kuat

  • 3D LUT memetakan ulang warna dengan merepresentasikan seluruh ruang RGB sebagai satu kubus.

Pengaturan

  • Menjelaskan pemrosesan 3D LUT menggunakan video profil log yang direkam dengan Panasonic GH6.

Koreksi sederhana

  • Menjelaskan proses menerapkan color correction dengan DaVinci Resolve lalu mengekspor ulang LUT.

Penggunaan 3D LUT di Left 4 Dead

  • Workflow yang dikenal luas di industri game, menggunakan alat eksternal untuk menata gaya warna game.

Petualangan tingkat lanjut

  • Menjelaskan cara mengekspor transformasi warna yang kompleks ke LUT menggunakan alat color grading seperti DaVinci Resolve.

Penggunaan lainnya

  • Sebagai kasus penggunaan LUT lainnya, memperkenalkan LUT yang dipakai saat melakukan porting Tomb Raider ke Game Boy Advanced.

Opini GN⁺

  • LUT adalah alat yang kuat untuk manipulasi warna dan optimasi dalam video game serta pemrograman grafis. Teknik ini dapat memberikan beragam efek visual dalam rendering real-time tanpa penurunan performa, sehingga berguna bagi developer maupun artist.
  • Saat menggunakan LUT, penting untuk mempertimbangkan akurasi warna dan representasi visual data. Khususnya, penting untuk memahami arti penting color map Perceptually Uniform dengan mempertimbangkan buta warna.
  • Teknik ini dapat diterapkan di berbagai bidang seperti color correction, styling visual, dan visualisasi data. Misalnya, teknik serupa dengan LUT yang digunakan untuk color grading di industri film dapat diterapkan pada pengembangan game.
  • Ukuran dan presisi LUT dapat berbeda tergantung tujuan penggunaan dan platform, sehingga pemahaman tentang hal ini diperlukan. Sebagai contoh, di industri film LUT berukuran 33³px adalah standar, tetapi dalam game atau aplikasi grafis lain ukuran yang berbeda mungkin dibutuhkan.
  • Saat menggunakan teknik ini, penting untuk menemukan keseimbangan antara representasi warna yang akurat dan optimasi performa. Untuk menggunakan LUT secara efektif, diperlukan pemahaman mendalam tentang teori warna dan pemrograman grafis.

1 komentar

 
GN⁺ 2024-03-01
Komentar Hacker News
  • Penjelasan tentang cara menerapkan efek menggunakan lookup table (LUT)

    • Digunakan lookup table besar untuk menyimpan detail pencahayaan melingkar di sekitar pemain dan lookup table kedua untuk mengacak urutan baris latar belakang.
    • Hanya 1/20 layar yang bisa diperbarui, tetapi urutan acak memungkinkan efek tepi yang halus dan menyembunyikan raster scan.
    • Bagian yang terlalu lambat untuk dihitung secara real time ditangani dengan lookup table agar tidak terjadi baris yang tidak diperbarui.
  • Berbagi pengalaman menggunakan lookup table untuk efek texture tunnel

    • Menggunakan lookup table yang memberi tahu sudut dan jarak dari pusat untuk setiap piksel di layar.
    • Terlihat seperti bergerak melalui terowongan dengan geometri 3D, tetapi biayanya rendah sehingga bisa diterapkan bahkan di Pico.
    • Mengira gim 'Stardust' menggunakan efek ini, tetapi sebenarnya menggunakan animasi 6 frame berulang sebagai latar belakang.
  • Membagikan tautan video tentang bagaimana gim 'The Legend of Zelda: Wind Waker' menggunakan lookup table untuk mewujudkan visual yang unik

    • 'Breath of the Wild' dan 'Tears of the Kingdom' juga menggunakan teknik yang sama.
  • Memberi tahu bahwa penulis yang mengirim tulisan tentang lookup table siap menjawab pertanyaan.

  • Penjelasan tentang pentingnya lookup table dalam pengembangan gim retro

    • Dulu, memori cepat tetapi prosesor lambat, sehingga sebanyak mungkin perhitungan dimasukkan ke dalam lookup table.
    • Semakin baik memanfaatkan lookup table, semakin spektakuler gim yang bisa dibuat.
  • Berbagi pengalaman tentang gim 'Bobl' di komunitas homebrew NES yang menerapkan efek fisika menakjubkan dengan lookup table

    • Efek yang tampak jauh lebih kompleks daripada yang dapat dihitung sistem secara real time dicapai dengan lookup table.
  • Membagikan episode podcast tentang bagaimana port 'Doom' versi SNES menghitung fungsi trigonometri menggunakan lookup table

    • SNES tidak memiliki prosesor grafis, sehingga perhitungan dilakukan dengan lookup table.
  • Mengungkapkan kekesalan terhadap orang-orang yang memahami dynamic programming tetapi mencampuradukkan caching dan memoization

    • Memoization adalah state bersama lokal, caching adalah state bersama global, sehingga keduanya memiliki masalah yang berbeda.
    • Caching adalah mengantisipasi apa yang akan dibutuhkan di masa depan, sedangkan memoization adalah kondisi ketika sudah tahu apa yang dibutuhkan saat itu juga.
    • Tabulation adalah menemukan dan menyelesaikan submasalah umum terlebih dahulu, dan lookup table adalah tabulation berukuran tetap.
  • Berbagi informasi tentang aplikasi Mac 'Lattice' yang menangani lookup table

  • Menyediakan daftar contoh berbagai efek yang menggunakan lookup table

    • Atmospheric scattering, perubahan tint sprite, night vision, kamera termal, efek feed video hitam-putih, efek glitch, shading heightmap, elemen titik alfa untuk exhaust plume pesawat luar angkasa, heatmap durasi hover mouse pengunjung situs web, efek kristal, colorization post-processing dalam ruang warna primitif, dan lain-lain.
    • Lookup table pada dasarnya adalah visualisasi array dari nilai-nilai yang diketahui, dan sangat berguna.