บน Twitter ฉันพบภาพหน้าจอของเกมที่กำลังพัฒนา:
ภาพด้านบนดูเหมือนจะไม่มีข้อ จำกัด เรื่องสี แต่ภาพอีกสองภาพที่ด้านล่างมีจานสี 256 สี
ฉันต้องการบรรลุผลที่คล้ายกันในเกมของฉัน (ฉันใช้ OpenGL) ฉันจะทำเช่นนั้นได้อย่างไร
บน Twitter ฉันพบภาพหน้าจอของเกมที่กำลังพัฒนา:
ภาพด้านบนดูเหมือนจะไม่มีข้อ จำกัด เรื่องสี แต่ภาพอีกสองภาพที่ด้านล่างมีจานสี 256 สี
ฉันต้องการบรรลุผลที่คล้ายกันในเกมของฉัน (ฉันใช้ OpenGL) ฉันจะทำเช่นนั้นได้อย่างไร
คำตอบ:
ฉันเป็นผู้สร้างภาพนั้น
ภาพด้านขวาแสดงผลโดยใช้พื้นผิวการค้นหาสี ใน GLSL shader สุดท้ายฉันใช้ dither จากนั้นแปลงค่า RGB เป็นจำนวนเต็มในช่วง 0 <= x <40 รวมเข้าไว้ในดัชนีเดี่ยวจากนั้นค้นหาค่าสีที่เกิดขึ้นในภาพนี้:
แถวที่ต่ำที่สุดคือจานสีแบบดิบ
ภาพทางด้านซ้ายนั้นถูกสร้างขึ้นใน shader อย่างแท้จริงโดยการสุ่มตัวอย่างช่องสีแดงและสีเขียวเป็น 8 ค่าและช่องสีฟ้าเป็น 4 ค่าหลังจากใช้ dither ทำให้เกิด RGB332 ฉันเคยเล่นด้วยสีแดง 7 สี 9 สีเขียวและสีฟ้า 4 สีทำให้เกิดสีเพียง 252 สี แต่ด้วยการเน้นสีเขียวที่ใหญ่กว่าซึ่งสายตามนุษย์นั้นไวที่สุด
คุณสามารถใช้สีการจัดลำดับตารางการค้นหาในขั้นตอน postprocessing ตามที่อธิบายไว้ที่นี่และอาจจะที่นี่
หลังจากที่คุณใช้สิ่งนี้สิ่งที่คุณต้องทำคือทำภาพหน้าจอซ้อนทับพื้นผิวการค้นหาบนพื้นผิวของมันจากนั้นแก้ไขด้วยซอฟต์แวร์กราฟิกแบบกำหนดเองจนกว่าคุณจะชอบ - จากนั้นจึงดึงพื้นผิวการค้นหาที่แก้ไขอีกครั้ง ซึ่งอาจรวมถึงการลดตารางการค้นหาที่ดึงมาให้เป็นชุดย่อยของสี
เมื่อโหลดพื้นผิวการค้นหาโดยคำนึงถึงข้อ จำกัด ของสีเพียงตรวจสอบให้แน่ใจว่าได้ปิดใช้งานการกรองทั้งหมดดังนั้นจึงไม่ทำให้เกิดสีเพิ่มเติม