Я хочу найти способ отправки всей геометрии из кадрового буфера opengl на удаленный компьютер, который будет выполнять рендеринг. Это позволило бы мне иметь очень сложные симуляции, работающие на каком-то большом суперкомпьютере, и рендериться на небольшом мобильном или просто дешевом клиентском компьютере, выполняющем рендеринг.
Прежде чем начать копаться в моем коде, я подумал, что это будет относительно просто: давайте скопируем массивы вершин и отправим их по сети, например, используя boost :: serialization, и все. Но моя геометрия заключена в капсулу, что мешает мне получить доступ к ней, откуда я хочу.
Я смог рендерить в кадровый буфер вместо рендеринга прямо на экране, и мне было интересно, есть ли способ получить данные из fbo OpenGL?
Во-первых, ваша терминология неверна. Объект Frame Buffer — это инкапсуляция изображений / поверхностей вне экрана и не содержит геометрии.
Второе: то, что вы представляете, уже реализовано VirtualGL проект (однако он застрял на довольно старом профиле OpenGL и не поддерживает современные графические процессоры).
Кроме того, X11 / GLX всегда поддерживал непрямую операцию OpenGL, то есть удаленный компьютер отправлял бы команды OpenGL на локальный сервер дисплея, о чем вы, вероятно, и думаете. Но это имеет главный недостаток: пропускная способность сети становится основным узким местом.