Tôi có một đối tượng FBO với một tập tin đính kèm màu sắc và chiều sâu mà tôi render và sau đó đọc từ sử dụng glReadPixels()
và tôi đang cố gắng thêm vào nó hỗ trợ multisampling.
Thay vì glRenderbufferStorage()
Tôi đang gọi glRenderbufferStorageMultisampleEXT()
cho cả tệp đính kèm màu và tệp đính kèm độ sâu. Đối tượng bộ đệm khung dường như đã được tạo thành công và được báo cáo là hoàn chỉnh.
Sau khi hiển thị, tôi đang cố đọc từ đó với glReadPixels()
. Khi số lượng mẫu là 0, nghĩa là multisampling vô hiệu hóa nó hoạt động hoàn hảo và tôi nhận được hình ảnh tôi muốn. khi tôi đặt số lượng mẫu cho một thứ khác, giả sử 4, bộ đệm khung vẫn được tạo OK nhưng glReadPixels()
không thành công với một INVALID_OPERATION
glReadPixels từ FBO thất bại với multisampling
Bất kỳ ai có ý tưởng gì có thể sai ở đây?
EDIT: Mã của glReadPixels:
glReadPixels(0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE, ptr);
nơi điểm ptr đến một mảng rộng * uints chiều cao.
Bạn có thể gửi dòng đầy đủ cho glReadPixels của bạn() gọi (định dạng, chủng loại, vv)? –