OpenGL'de sınırlı (256) renk paletini nasıl simüle edebilirim?


16

Twitter'da, bir oyunun bu ekran görüntüsünü geliştirme aşamasında buldum:

resim açıklamasını buraya girin

Üstteki görüntü herhangi bir renk sınırlaması olmadan görünüyor. Ancak alttaki diğer iki resim 256 renk paletine sahiptir.

Ben de benzer bir etkiye ulaşmak istiyoruz benim oyun (I OpenGL kullanıyorum). Bunu nasıl yapabilirim?



256 renkli grafik gibi eski bir okul çizmek mi yoksa 24 bit grafiklerin eski okul grafiklerine benzemesini mi istiyorsunuz? Başka bir deyişle, işlem sonrası mı yoksa 256 renk paleti mi kullanmak istiyorsunuz?
WebGL'de

Yanıtlar:


32

Ben bu görüntünün yaratıcısıyım.

Sağdaki görüntü, renk arama dokusu kullanılarak oluşturulur. Son GLSL gölgelendiricisinde renk taklidini uyguluyorum, ardından RGB değerlerini 0 <= x <40 aralığındaki tamsayılara dönüştürüyorum, bunları tek bir dizine birleştiriyorum, sonra bu görüntüde elde edilen renk değerine bakın:

renk arama tablosu

En alt sıra ham palettir.

Soldaki görüntü, gölgelendiriciyi, renk taklidi uygulandıktan sonra kırmızı ve yeşil kanalların 8 değerine ve mavi kanalın 4 değere küçültülmesiyle RGB332 ile sonuçlanarak gölgelendiricide yapılır. Ayrıca 7 kırmızı, 9 yeşil ve 4 mavi tonla oynadım, sadece 252 renkle sonuçlandım, ancak insan gözünün en hassas olduğu yeşile daha büyük bir vurgu yapıldı.


6

Burada ve muhtemelen burada açıklandığı gibi bir işlem sonrası adımda bir renk derecelendirme arama tablosu kullanabilirsiniz .

resim açıklamasını buraya girin

Bunu uyguladıktan sonra, yapmanız gereken tek şey bir ekran görüntüsü oluşturmak, üstündeki arama dokusunu kaplamak, sonra istediğiniz kadar grafik grafikte düzenlemek ve ardından değiştirilmiş arama dokusunu tekrar almaktır. Bu, geri alınan arama tablosunun bir renk alt kümesine indirgenmesini içerebilir veya içermeyebilir.

Arama dokusunu renk sınırlaması göz önünde bulundurularak yüklerken, tüm filtrelemeyi devre dışı bıraktığınızdan emin olun, böylece ek renkler üretmez.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.