ฉันจะจำลองจานสีที่ จำกัด (256) ใน OpenGL ได้อย่างไร


16

บน Twitter ฉันพบภาพหน้าจอของเกมที่กำลังพัฒนา:

ป้อนคำอธิบายรูปภาพที่นี่

ภาพด้านบนดูเหมือนจะไม่มีข้อ จำกัด เรื่องสี แต่ภาพอีกสองภาพที่ด้านล่างมีจานสี 256 สี

ฉันต้องการบรรลุผลที่คล้ายกันในเกมของฉัน (ฉันใช้ OpenGL) ฉันจะทำเช่นนั้นได้อย่างไร


ที่เกี่ยวข้อง: gamedev.stackexchange.com/questions/43294/…
Laurent Couvidou

คุณต้องการที่จะวาด Oldschool เช่นกราฟิกสี 256 หรือคุณต้องการที่จะทำให้กราฟิก 24 บิตดูเหมือนกราฟิกโรงเรียนเก่าหรือไม่? คุณต้องการโพสต์กระบวนการหรือใช้จานสี 256 สีจริงหรือ ต่อไปนี้เป็นวิธีทำกราฟสี 256 สีใน WebGL
gman

คำตอบ:


32

ฉันเป็นผู้สร้างภาพนั้น

ภาพด้านขวาแสดงผลโดยใช้พื้นผิวการค้นหาสี ใน GLSL shader สุดท้ายฉันใช้ dither จากนั้นแปลงค่า RGB เป็นจำนวนเต็มในช่วง 0 <= x <40 รวมเข้าไว้ในดัชนีเดี่ยวจากนั้นค้นหาค่าสีที่เกิดขึ้นในภาพนี้:

สีมองขึ้นตาราง

แถวที่ต่ำที่สุดคือจานสีแบบดิบ

ภาพทางด้านซ้ายนั้นถูกสร้างขึ้นใน shader อย่างแท้จริงโดยการสุ่มตัวอย่างช่องสีแดงและสีเขียวเป็น 8 ค่าและช่องสีฟ้าเป็น 4 ค่าหลังจากใช้ dither ทำให้เกิด RGB332 ฉันเคยเล่นด้วยสีแดง 7 สี 9 สีเขียวและสีฟ้า 4 สีทำให้เกิดสีเพียง 252 สี แต่ด้วยการเน้นสีเขียวที่ใหญ่กว่าซึ่งสายตามนุษย์นั้นไวที่สุด


6

คุณสามารถใช้สีการจัดลำดับตารางการค้นหาในขั้นตอน postprocessing ตามที่อธิบายไว้ที่นี่และอาจจะที่นี่

ป้อนคำอธิบายรูปภาพที่นี่

หลังจากที่คุณใช้สิ่งนี้สิ่งที่คุณต้องทำคือทำภาพหน้าจอซ้อนทับพื้นผิวการค้นหาบนพื้นผิวของมันจากนั้นแก้ไขด้วยซอฟต์แวร์กราฟิกแบบกำหนดเองจนกว่าคุณจะชอบ - จากนั้นจึงดึงพื้นผิวการค้นหาที่แก้ไขอีกครั้ง ซึ่งอาจรวมถึงการลดตารางการค้นหาที่ดึงมาให้เป็นชุดย่อยของสี

เมื่อโหลดพื้นผิวการค้นหาโดยคำนึงถึงข้อ จำกัด ของสีเพียงตรวจสอบให้แน่ใจว่าได้ปิดใช้งานการกรองทั้งหมดดังนั้นจึงไม่ทำให้เกิดสีเพิ่มเติม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.