Мне нужно визуализировать довольно много (десятки тысяч) изображений вне экрана, используя OpenGL.
Я работаю под Windows и использую QT в качестве основы. решение может быть только для окон, это не имеет значения.
Из того, что я нашел с помощью Google, есть несколько вариантов сделать это
Эта статья , которая выглядит довольно устаревшей, предлагает несколько способов, из которых:
- Специфично для Windows - используйте
CreateDIBSection
и каким-то образом привяжите к нему текстуру.
- Используйте расширение pbuffers, которое, как мне кажется, поддерживается на моей карте.
Этот поток (Сообщение 6) предлагает конкретный способ QT сделать это с использованием QGLWidget::renderPixmap
Мой вопрос - какой из них будет самым быстрым? pbuffers, кажется, самая безопасная ставка, потому что она гарантированно будет выполняться на оборудовании, но разве метод CreateDIB также проходит через оборудование? Как насчет метода QT? Кажется, с этим возникает проблема создания контекста. конечно, я не хотел бы создавать новый контекст для каждого изображения, которое я создаю.
У кого-нибудь есть хороший опыт с этим?
РЕДАКТИРОВАТЬ : Ответ на комментарий -
У меня есть постоянная сцена, которая не меняется вообще, и я рендеринг ее с разных точек зрения. На данный момент изображения возвращаются пользователю и будут обрабатываться процессором. Возможно, в будущем они будут обрабатываться на GPU.