Генерация списка отображения - PullRequest
0 голосов
/ 31 октября 2009

Я разрабатываю приложение, которое использует списки отображения, предлагаемые OpenGL. Моя идея состоит в том, чтобы вызывать списки отображения для повторяющихся задач, таких как преобразования и наборы состояний сервера. На самом деле реализация позволяет использовать два списка отображения для каждого визуализируемого объекта. В этих двух случаях списки отображения не содержат вершин, нормалей и т. Д., А только матрицы и состояния сервера.

Моя проблема сейчас заключается в том, как решить, когда генерировать список отображения: в некоторых случаях могут произойти изменения свойств, сгенерировавших список отображения, что приведет к новой компиляции списка отображения (например, движение мыши, которое поворачивает объект).

Может быть целесообразно генерировать список отображения только тогда, когда свойства не изменяются в N циклах рендеринга? Как определить это N? Должен ли я отключить временные списки отображения?

Примечание: источник может быть найден в Renderable (187: 201) и в RenderState (315: 356). Извините за выделение (я думаю, это мой VS ...), я заметил только сейчас. (

ОТ: как переформатировать только отступ? :)

Ответы [ 2 ]

6 голосов
/ 31 октября 2009

Если честно, я бы рекомендовал не использовать списки отображения. Они устарели по стандарту OpenGL. Вместо этого вы должны использовать буферы вершин (проверьте glDrawArrays или glDrawElements).

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

0 голосов
/ 01 ноября 2009

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

Количество N должно быть пропорционально количеству данных, сохраненных в списке отображения. Перекомпиляция списка отображения должна выполняться только тогда, когда данные, содержащиеся в списке отображения, изменяются, но если данные часто изменяются, процесс перекомпиляции может быть отложен до тех пор, пока не будут проверены стабильные данные.

...