2012-02-09 53 views

Trả lời

11

Gần nhất bạn sẽ nhận được là glBlitFramebuffer. Mà, như tên cho thấy, là cho framebuffers. Có, framebuffers can include textures, nhưng tôi sẽ không cố gắng sử dụng điều này như là một thay thế cho bản vẽ kết cấu với quads. Bạn sẽ nhận được hiệu suất tốt hơn rất nhiều để vẽ rất nhiều kết cấu bằng cách sử dụng quads hơn blitting framebuffers.

Ngoài ra, vẽ một quad một chức năng nhanh để vẽ họa tiết.

+4

Vẽ một quad, thậm chí xem xét các thay đổi trạng thái để làm cho nó toàn màn hình/không có chiều sâu kiểm tra/etc, là cực kỳ nhanh. Phần chậm nhất của nó là bản sao đệm-to-kết cấu, nhưng vẽ có thể đủ nhanh mà một cách tiếp cận ping-pong với bộ đệm có thể nhanh hơn. Xả vào hoặc ra khỏi backbuffer, hoặc tệ hơn các frontbuffer, luôn luôn là * cực kỳ * chậm. – ssube

+0

trên một số triển khai opengl glBlitFramebuffer thực sự sử dụng dựng hình quad. Và thay vì một cái gì đó như gpu 'memcpy' sử dụng đường ống đầy đủ để blit một fbo khác. Nhưng mặt khác nó cho khả năng thực hiện mở rộng và lọc. – fen

+5

Trên hệ thống của tôi (GTX 660), thực hiện một glBlitFramebuffer từ kết cấu (được bọc trong bộ đệm khung) đến bộ đệm khung chính là chậm hơn khoảng 20 micro giây so với vẽ một quad. Hấp dẫn. – subb

Các vấn đề liên quan