Làm cách nào tôi có thể mô phỏng bảng màu giới hạn (256) trong OpenGL?


16

Trên Twitter, tôi tìm thấy ảnh chụp màn hình của một trò chơi đang được phát triển:

nhập mô tả hình ảnh ở đây

Hình ảnh trên đầu dường như không có bất kỳ giới hạn màu sắc. Nhưng hai bức tranh khác ở phía dưới có bảng màu 256.

Tôi muốn đạt được hiệu ứng tương tự trong trò chơi của mình (Tôi đang sử dụng OpenGL). Làm thế nào tôi có thể làm như vậy?



Bạn có muốn vẽ oldschool như đồ họa 256 màu hay bạn muốn làm cho đồ họa 24 bit trông giống như đồ họa trường học cũ? Nói cách khác, bạn muốn đăng quá trình hoặc thực sự sử dụng bảng màu 256? Dưới đây là cách thực hiện đồ họa 256 màu trong WebGL
gman

Câu trả lời:


32

Tôi là người tạo ra hình ảnh đó.

Hình ảnh bên phải được hiển thị bằng kết cấu tra cứu màu. Trong trình tạo bóng GLSL cuối cùng, tôi áp dụng hoà sắc, sau đó chuyển đổi các giá trị RGB thành các số nguyên trong phạm vi 0 <= x <40, kết hợp chúng thành một chỉ mục duy nhất, sau đó tra cứu giá trị màu kết quả trong hình ảnh này:

bảng màu nhìn lên

Hàng thấp nhất là bảng màu thô.

Hình ảnh bên trái được thực hiện hoàn toàn trong shader bằng cách ghép xuống các kênh màu đỏ và xanh lục thành 8 giá trị và kênh màu xanh lam thành 4 giá trị sau khi áp dụng hoà sắc, dẫn đến RGB32. Tôi cũng đã chơi xung quanh với 7 màu đỏ, 9 xanh lục và 4 màu xanh lam, kết quả chỉ có 252 màu, nhưng với điểm nhấn lớn hơn là màu xanh lá cây, mà mắt người nhạy cảm nhất.


6

Bạn có thể sử dụng bảng tra cứu phân loại màu trong bước hậu xử lý như được mô tả ở đây và có thể ở đây .

nhập mô tả hình ảnh ở đây

Sau khi bạn thực hiện điều này, tất cả những gì bạn phải làm là tạo một ảnh chụp màn hình, phủ lên kết cấu tra cứu của nó, sau đó chỉnh sửa nó trong phần mềm đồ họa tùy ý cho đến khi bạn thích nó - và sau đó lấy lại kết cấu tra cứu đã sửa đổi. Điều này có thể hoặc không bao gồm việc giảm bảng tra cứu được truy xuất thành một tập hợp con màu.

Khi tải kết cấu tra cứu với giới hạn màu trong tâm trí, chỉ cần đảm bảo tắt tất cả bộ lọc để nó không tạo ra màu bổ sung.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.