Tôi đã viết một công cụ dựa trên nền tảng - mọi thứ đều ổn khi miễn là chống răng cưa bị tắt trong WebGL.Tắt tính năng chống răng cưa trong WebGL cho hình học cụ thể
Khi tính năng chống răng cưa được bật, đôi khi pixel của cạnh gạch sẽ được hiển thị chủ yếu hiển thị dưới dạng pixel nền và điền vào bộ đệm độ sâu phù hợp. Khi một điểm ảnh có cường độ cao hơn (alpha cao hơn) xuất hiện, nó sẽ bị loại bỏ do bộ đệm độ sâu.
Tôi đã cố gắng tắt bộ đệm độ sâu và "đặt các yếu tố kết hợp thành GL_SRC_ALPHA_SATURATE (nguồn) và GL_ONE (đích)" như được ghi ở đây: http://www.glprogramming.com/red/chapter06.html. Điều này dẫn đến điểm ảnh hoàn toàn màu trắng được rút ra - không chắc chắn những gì đang xảy ra ở đó.
Đồ họa trên họa tiết của tôi được đệm để WebGL không có vấn đề về lọc. Tôi đã thực hiện padding cực đoan để đảm bảo điều này không phải là một yếu tố góp phần.
Tôi đã khám phá glSampleCoverage()
và đã thử một vài bức ảnh trong bóng tối với các giá trị ngẫu nhiên không tạo ra giá trị nào. Tôi không quen với những gì nó thực sự làm và không thể tìm thấy bất kỳ ví dụ tốt trực tuyến, ngoại trừ một vài gợi ý trừu tượng.
Tôi không muốn tắt bộ đệm độ sâu.
GL_MULTISAMPLE
không khả dụng.
Tôi có một Emscripten với môi trường C++ - nhưng điều đó không quan trọng, tôi có thể viết javascript nội tuyến nếu cần - nhưng tôi hình dung giải pháp OpenGL chung cho điều này.
Có cách nào để vô hiệu hóa chống răng cưa trong WebGL chỉ cho một số hình học nhất định không?
Tốt:
Xấu:
Đây có lẽ không phải là câu trả lời bạn đang tìm kiếm, nhưng gần đây tôi chạy vào một vấn đề tương tự bản thân mình và tôi đã tự hỏi nếu bạn đã thực hiện bất kỳ sự tiến bộ trong việc giải quyết nó? –
@ WacławJasper Giải pháp hiện tại của tôi đã được vô hiệu hóa khử răng cưa hoàn toàn, không may. –