Вопрос

Мне нужно визуализировать довольно много (десятки тысяч) изображений за кадром с помощью OpenGL.
Я работаю под Windows и использую QT в качестве платформы.решением может быть только Windows, это не имеет особого значения.

Из того, что я нашел с помощью Google, есть несколько вариантов сделать это.Эта статья который кажется довольно устаревшим, предлагает несколько способов, из которых наиболее подходящими являются:

  • Специально для Windows – используйте CreateDIBSection и каким-то образом привязать к нему текстуру.
  • Используйте расширение pbuffers, которое, кажется, поддерживается на моей карте.

Эта тема (Сообщение 6) предлагает специфический для QT способ сделать это, используя QGLWidget::renderPixmap

Мой вопрос: какой из них будет самым быстрым?pbuffers кажется самым безопасным выбором, поскольку он гарантированно будет выполняться на оборудовании, но разве использование метода CreateDIB не проходит через оборудование?А как насчет метода QT?похоже, здесь есть некоторая проблема с созданием контекста.конечно, мне бы не хотелось создавать новый контекст для каждого изображения, которое я создаю.
Есть ли у кого-нибудь хороший опыт в этом вопросе?


РЕДАКТИРОВАТЬ:Отвечая на комментарий -
У меня есть постоянная сцена, которая вообще не меняется, и я рендерю ее с разных точек зрения.На данный момент изображения возвращаются пользователю и обрабатываются процессором.Возможно, в будущем их будут обрабатывать на графическом процессоре.

Это было полезно?

Решение

Использовать ФБО.Он быстрый, портативный и гораздо приятнее в использовании, чем pbuffers.

РЕДАКТИРОВАТЬ:Для достижения наилучшей производительности попеременный рендеринг между двумя разными FBO:

  1. Рендеринг в А
  2. Рендеринг в B
  3. Прочтите обратное сообщение A и обработайте его.
  4. Рендеринг в А
  5. Прочтите обратное сообщение от B
  6. Перейти к 2

Таким образом, вы можете считывать один FBO, а затем обрабатывать его, в то время как графический процессор параллельно выполняет рендеринг на другой.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top