Буфер в OpenGL для хранения всех фигур? - PullRequest
3 голосов
/ 11 августа 2011

В OpenGL у меня есть статическая камера и сцена, которая должна двигаться только тогда, когда пользователь «перемещает камеру».У меня есть довольно сложная сцена в OpenGL, которую я полностью регенерирую в каждом кадре.Извините, если это основной вопрос, но я не могу сохранить сцену в каком-то буфере, который я тогда могу просто сказать OpenGL нарисовать?

Ответы [ 3 ]

3 голосов
/ 12 августа 2011

OpenGL не хранит сцены. Это API рисования, то есть вы отправляете команды рисования. Списки отображения - это просто удобный способ объединения большого количества команд рисования. Таким образом, вы также не «воссоздаете» сцену путем перерисовки, но на самом деле вы рисуете материал каждый раз, когда вы запускаете команды рисования OpenGL. Это важно понимать! Это подразумевает, что изменение чего-либо - это сцена с точки зрения OpenGL, не требующая больших затрат, поскольку вы все равно перерисовываете все вещи. Таким образом, разработка вашей программы дает мало пользы из-за (неправильного) предположения, что OpenGL выполнил некоторое управление сценой для вас.

2 голосов
/ 11 августа 2011

Да.В «традиционном» OpenGL вы бы использовали список отображения .В более «современном» OpenGL вы бы использовали объект буфера вершин .

1 голос
/ 11 августа 2011

Смотрите в FBOs для быстрого решения.

В качестве альтернативы, просто не очищайте буфер цвета каждый кадр.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...