2011-09-14 39 views
6

Mỗi khung hình, chương trình của tôi sẽ nhận được một hình ảnh mới từ một máy quay video USB. Hình ảnh này ban đầu sẽ ở trong bộ nhớ CPU. Phương pháp nhanh nhất trong OpenGL để vẽ hình ảnh này lên màn hình để nó lấp đầy toàn bộ màn hình là gì?Cách nhanh nhất để vẽ hình ảnh toàn màn hình mới ở mỗi khung trong OpenGL là gì?

Hiện tại, tôi đang tải dữ liệu hình ảnh lên kết cấu và sau đó hiển thị quad toàn màn hình. Tuy nhiên, điều này không chạy rất nhanh trên một máy khác mà tôi đã thử.

Trả lời

7

Hiện tại, tôi đang tải dữ liệu hình ảnh lên kết cấu và sau đó hiển thị quad toàn màn hình. Tuy nhiên, điều này không chạy rất nhanh trên một máy khác đã thử. Bất kỳ ý tưởng? Cảm ơn.

glTexImage2D hiện một kết cấu khởi đầy đủ (có nghĩa là, phân bổ, thiết lập đối tượng và các loại tương tự). Nếu bạn chỉ muốn thay thế hình ảnh kết cấu có hình ảnh có cùng kích thước, hãy sử dụng glTexSubImage2D, nhanh hơn nhiều. Nếu bạn muốn thực hiện điều này một cách đồng bộ, hãy xem Đối tượng đệm pixel

2

Blitting là giải pháp khả thi và có một số thread thảo luận về điều đó. Họ không cung cấp cho nó một đánh giá tuyệt vời mặc dù.

+0

glDrawPixels và hầu hết các hoạt động raster khác đã không còn được sử dụng từ lõi OpenGL-3. – datenwolf

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