Bagaimana saya bisa mensimulasikan palet warna terbatas (256) di OpenGL?

16

Di Twitter, saya menemukan tangkapan layar game ini dalam pengembangan:

masukkan deskripsi gambar di sini

Gambar di atas tampaknya tanpa batasan warna. Tetapi dua gambar lainnya di bagian bawah memiliki palet 256 warna.

Saya ingin mencapai efek serupa di game saya (saya menggunakan OpenGL). Bagaimana saya bisa melakukannya?

oxysoft
sumber
Apakah Anda ingin menggambar oldschool seperti grafis 256 warna atau Anda ingin membuat grafik 24bit terlihat seperti grafis jadul? Dengan kata lain apakah Anda ingin memposting proses atau benar-benar menggunakan palet 256 warna? Inilah cara melakukan palet 256 warna grafis di WebGL
gman

Jawaban:

32

Saya adalah pencipta gambar itu.

Gambar di sebelah kanan ditampilkan menggunakan tekstur pencarian warna. Dalam shader GLSL akhir, saya menerapkan gentar, kemudian mengubah nilai RGB menjadi bilangan bulat dalam kisaran 0 <= x <40, menggabungkannya ke dalam indeks tunggal, lalu mencari nilai warna yang dihasilkan dalam gambar ini:

lihat tabel warna

Baris terendah adalah palet mentah.

Gambar di sebelah kiri dibuat murni di shader dengan downsampling saluran merah dan hijau ke nilai 8, dan saluran biru menjadi 4 nilai setelah menerapkan gentar, menghasilkan RGB332. Saya juga bermain-main dengan 7 warna merah, 9 hijau dan 4 warna biru, menghasilkan hanya 252 warna, tetapi dengan penekanan yang lebih besar pada warna hijau, yang paling sensitif bagi mata manusia.

Takik
sumber
6

Anda bisa menggunakan tabel pencarian gradasi warna pada langkah postprocessing seperti yang dijelaskan di sini dan mungkin di sini .

masukkan deskripsi gambar di sini

Setelah Anda menerapkan ini, yang harus Anda lakukan adalah membuat tangkapan layar, overlay tekstur pencarian di atasnya, lalu mengeditnya dalam perangkat lunak grafis sewenang-wenang sampai Anda menyukainya - dan kemudian mengambil kembali tekstur pencarian yang dimodifikasi. Ini mungkin atau mungkin tidak termasuk mengurangi tabel pencarian yang diambil ke subset warna.

Saat memuat tekstur pencarian dengan batasan warna dalam pikiran, pastikan untuk menonaktifkan semua pemfilteran, sehingga tidak akan menghasilkan warna tambahan.

Adam
sumber