Tôi biết rằng không thể triển khai thuật toán Floyd–Steinberg dithering với trình đổ bóng pixel vì thuật toán đó hoàn toàn tuần tự. Nhưng có lẽ có tồn tại một số thuật toán phối màu song song higly mà bởi đầu ra thị giác của nó tương tự như thuật toán Floyd-Steinberg? Vì vậy, câu hỏi là - Thuật toán phối màu là gì phù hợp để thực hiện trên pixel shader (tốt nhất là GLSL) và với chất lượng đầu ra (rất) tương tự như phối màu Floyd-Steinberg?Lựa chọn thay thế phối màu Floyd – Steinberg cho pixel shader
BTW. Các thuật toán multi-pass được cho phép cho đến khi không có nhiều hơn 2 pass và chi phí CPU giữa các pass là nhỏ.
Bất kỳ ý tưởng nào?
CHỈNH SỬA:
Tôi cần phối màu từ màu 24-bit thành màu 21 bit.
(Tức là -. Tôi cần phải chuyển đổi từ 8 bit/kênh đến 7 bit/kênh)
EDIT 2 Có lẽ tôi đã không được giải thích vấn đề rất tốt. Vì vậy, tôi sẽ cố gắng mở rộng một chút về vấn đề chính xác. Vấn đề là thế này - xem xét chúng ta có bức tranh này:
Và chúng tôi có trên hình ảnh, nhưng xử lý bằng dithering thuật toán:
Bây giờ đây là thủ tục mà sẽ kiểm tra dither của bạn được tốt cho tôi hay không:
1. Tải các ảnh này trong Photoshop dưới dạng một ảnh có 2 lớp.
2. Chọn chế độ hòa trộn Lớp thành "Sự khác biệt".
3. Thực hiện thao tác "Hợp nhất hiển thị" trên các lớp, để chỉ có một lớp.
4. Thực hiện thao tác => Hình ảnh/Adjustments/Equalize
Sau đó bạn phải có được hình ảnh như:
Như bạn thấy - pixel giữa đó là màu đỏ đơn điệu không dithered ở tất cả. Ngoài ra, phối màu của các vùng hình ảnh trái và phải có một chút khác biệt. Cố gắng xây dựng lại thuật toán phối màu với hành vi như vậy.
Tôi đang gặp khó khăn khi hiểu kết quả của bạn. Hình ảnh khác biệt ngụ ý đầu ra Floyd-Steinberg của bạn chứa các thành phần có giá trị 0 và 255, nhưng điều này không có ý nghĩa với 7 bit; nó phải là 0 và 254, hoặc 1 và 255. Trừ khi bạn đang sử dụng các màu sắc ngay cả từ 0-126, và những người lẻ từ 129-255? –
Vấn đề là tôi không biết ánh xạ chính xác quá nhiều bit, đó là lý do tại sao tôi đã tạo câu hỏi như vậy - để tìm kiếm lại thuật toán phối màu của chương trình X. –
Nếu bạn có thể đăng hình ảnh kết quả, chúng tôi có thể tìm ra ánh xạ các bit. –