Kết xuất chuyển tiếp là quá trình tính toán giá trị rạng rỡ cho một mảnh bề mặt trực tiếp từ thông tin hình học và ánh sáng đầu vào. Kết xuất hoãn lại phân chia quá trình đó thành hai bước: đầu tiên tạo ra bộ đệm không gian màn hình chứa các thuộc tính vật liệu (bộ đệm hình học hoặc bộ đệm G) được tạo bằng cách rasterize hình học đầu vào và thứ hai tạo ra giá trị rạng rỡ cho mỗi pixel bằng cách kết hợp G- đệm với thông tin chiếu sáng.
Kết xuất hoãn lại thường được trình bày dưới dạng tối ưu hóa kết xuất chuyển tiếp. Một lời giải thích là ánh sáng khá tốn kém và nếu bạn có bất kỳ sự rút tiền nào thì bạn sẽ chiếu sáng các pixel sẽ không bao giờ được nhìn thấy trên màn hình, trong khi nếu bạn lưu trữ các thuộc tính vật liệu vào bộ đệm G và sau đó, bạn chỉ chiếu sáng một pixel sẽ thực sự xuất hiện trên màn hình. Đây thực sự là một lợi thế của việc trì hoãn, cho rằng bạn cũng có thể thực hiện vượt qua trước độ sâu và sau đó thực hiện chuyển tiếp kết xuất với kiểm tra độ sâu được đặt thành D3D11_COMPARISON_EQUAL
hoặc GL_EQUAL
tương đương?
Kết xuất hoãn lại cũng có khả năng lên lịch tốt hơn trên GPU. Việc tách một sợi dọc / mặt sóng lớn thành mặt sóng hình học nhỏ hơn và sau đó mặt sóng ánh sáng nhỏ hơn sau đó sẽ cải thiện công suất sử dụng (nhiều mặt sóng trong chuyến bay đồng thời). Nhưng bạn cũng kết thúc với việc sử dụng băng thông nhiều hơn (viết ra một số lượng lớn các kênh vào bộ đệm G, sau đó đọc lại chúng trong khi chiếu sáng). Rõ ràng các chi tiết cụ thể ở đây phụ thuộc rất nhiều vào GPU của bạn, nhưng các nguyên tắc chung là gì?
Có những cân nhắc hiệu suất thực tế khác khi quyết định giữa kết xuất trước và trả chậm? (Giả sử rằng chúng ta có thể sử dụng các biến thể của từng kỹ thuật nếu cần thiết: tức là chúng ta có thể so sánh lát gạch phía trước với lát gạch bị hoãn lại.)