Trong d3d11, bạn có thể liên kết nhiều mục tiêu kết xuất ID3D11DeviceContext :: OMSetRenderTarget . Nhưng tại sao bạn muốn làm điều này?
Trong d3d11, bạn có thể liên kết nhiều mục tiêu kết xuất ID3D11DeviceContext :: OMSetRenderTarget . Nhưng tại sao bạn muốn làm điều này?
Câu trả lời:
Khi nhiều mục tiêu kết xuất bị ràng buộc, mỗi mục tiêu có thể được ghi riêng lẻ bởi trình đổ bóng pixel - không nhất thiết (tất cả) trường hợp tất cả các mục tiêu kết xuất sẽ có cùng một hình ảnh. Bạn chỉ có thể viết thành phần màu đỏ vào một đầu ra, chỉ có màu xanh vào một đầu ra khác, et cetera.
Điều này được sử dụng khi triển khai kết xuất hoãn lại, ví dụ: thông tin vị trí, thông thường, màu sắc, et cetera được ghi vào mục tiêu kết xuất của riêng chúng.
Lợi ích bổ sung cho việc sử dụng nhiều mục tiêu kết xuất, như trong kết xuất hoãn lại như Josh đã đề cập, là bạn chỉ gửi hình học của cảnh tới trình đổ bóng đỉnh một lần và áp dụng nó cho các đầu ra đổ bóng pixel khác nhau, thay vì gửi lại hình học cho mỗi đầu ra bạn nhu cầu. Điều này giúp tiết kiệm rất nhiều thời gian tính toán cho GPU. Sự đánh đổi cho hiệu năng GPU nhanh hơn là mức tiêu thụ bộ nhớ đệm khung cao hơn.