Tôi biết câu hỏi này nghe có vẻ hơi dễ trả lời nhưng nó làm tôi phát điên. Có quá nhiều tình huống có thể xảy ra mà một cơ chế trộn alpha tốt sẽ xử lý và đối với mỗi Thuật toán tôi có thể nghĩ rằng còn thiếu một cái gì đó.
Đây là những phương pháp tôi đã nghĩ cho đến nay:
Trước hết tôi về việc sắp xếp đối tượng theo độ sâu, điều này đơn giản là thất bại vì Đối tượng không phải là hình dạng đơn giản, chúng có thể có các đường cong và có thể lặp lại bên trong nhau. Vì vậy, tôi không thể luôn luôn biết cái nào gần camera hơn.
Sau đó, tôi nghĩ về việc sắp xếp các hình tam giác nhưng điều này cũng có thể thất bại, tôi nghĩ rằng tôi không chắc cách thực hiện nó có một trường hợp hiếm hoi có thể lại gây ra vấn đề, trong đó hai tam giác đi qua nhau. Một lần nữa không ai có thể nói cái nào gần hơn.
Điều tiếp theo là sử dụng bộ đệm độ sâu, ít nhất lý do chính khiến chúng ta có bộ đệm độ sâu là do các vấn đề với việc sắp xếp mà tôi đã đề cập nhưng bây giờ chúng ta gặp một vấn đề khác. Vì các đối tượng có thể trong suốt, trong một pixel có thể có nhiều hơn một đối tượng có thể nhìn thấy. Vậy đối tượng nào tôi nên lưu trữ độ sâu pixel?
Sau đó tôi nghĩ có lẽ tôi chỉ có thể lưu trữ độ sâu đối tượng phía trước nhất và sử dụng xác định cách tôi nên pha trộn các cuộc gọi vẽ tiếp theo ở pixel đó. Nhưng một lần nữa có một vấn đề, hãy nghĩ về hai mặt phẳng bán trong suốt với một mặt phẳng rắn ở giữa chúng. Tôi sẽ kết xuất mặt phẳng rắn ở cuối, người ta có thể thấy mặt phẳng xa nhất. Lưu ý rằng tôi sẽ hợp nhất mỗi hai mặt phẳng cho đến khi chỉ còn một màu cho pixel đó. Rõ ràng tôi cũng có thể sử dụng các phương pháp sắp xếp vì những lý do tương tự mà tôi đã giải thích ở trên.
Cuối cùng, điều duy nhất tôi tưởng tượng là có thể hoạt động là kết xuất tất cả các đối tượng thành các mục tiêu kết xuất khác nhau và sau đó sắp xếp các lớp đó và hiển thị đầu ra cuối cùng. Nhưng lần này tôi không biết làm thế nào tôi có thể thực hiện thuật toán này.