![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Повторный вывод уже построенной сцены в OpenGL. [Windows]
AlexanderMS © (2007-07-21 16:31:00)Ситуация такая. Программа после расчётов строит и выводит сцену. Во время следующей прорисовки производить расчёты нет необходимости, так как всё уже просчитано: нужно лишь снова отобразить сцену (передвинув её), не тратя снова времени на расчёты. Вопрос: как сохранить построенную сцену, чтобы потом её снова быстро вывести?
P. S. Надеюсь, Вы поняли, что я имею ввиду, просто новички выражаются не всегда понятно.
DeadMeat (2007-08-12 11:53:00) [1]Не большой тестик проводил.
Рисовал простой плейн. Но много. Штук так 10 000.
VBO конечно не стал юзать, т.к. у каждого плейна свои координаты и каждый двигается независимо. Т.е. отдельный объект.
Проверял:
glBegin/glEnd
glNewList/glEndList
glDrawArrays
Быстрее всех оказался glBegin/glEnd
Списки и массивы были медленее. ФПС при использовании списков падал на 10-20 пунктов. А при использовании массивов всего на 5-10.
Т.е. если поликов мало, использование списков и массивов вершин не всегда оправдано.
rts111 (2007-08-12 00:41:00) [2]Зачем вообще париться с VBO, когда всего "(14 Quads-ов)",
обычные glBegin ... glEnd скорее всего, даже быстрее будет.
rts111 (2007-08-06 23:45:00) [3]> [3] @!!ex © (21.07.07 18:15)
> Кстати. Какая разница между VBO и Списками по скорости?
> Кто нить измерял??
Я имерял, у меня списки как правило быстрее работают.
Но разница незначительная, а чаще вообще разницы в скорости нет.
Кстати, glDrawArrays работает быстрее glDrawElements.
glDrawElements только иногда быстрее,
если тяжелый шейдер и индексы оптимизированы для кеширования.
Yashin (2007-08-05 00:17:00) [4]на delphi3d.net видел сравнение всех видов списков на примере.
Rial (2007-07-23 22:26:00) [5]> [3] @!!ex © (21.07.07 18:15)
> Кстати. Какая разница между VBO и Списками по скорости?
> Кто нить измерял??
VBO будет работать быстрее намного.
И вообще, если нужно вывести сцену всего 2 раза,
то ни в коем случае использовать списки не рекомендую,
т.к. время на создание списка уходит в 2-3 раза большее,
чем на его отрисовку.
RzCoDer (2007-07-23 19:07:00) [6]
> AlexanderMS © (23.07.07 18:15) [13]
почти все, почитай на этот счёт редбук
> @!!ex © (22.07.07 19:36) [12]
имеешь в виду обычный array? разумееца потом можешь делать с ним что хочешь
AlexanderMS (2007-07-23 18:15:00) [7]Вообще, можно любые gl-процедуры вызывать между NewList и EndList? К примеру, glEnable? Или лучше это делать за пределами списка?
@!!ex (2007-07-22 19:36:00) [8]> [11] RzCoDer © (22.07.07 19:22)
Хм, вопрос в том, где сохраненные....
По идееи если я записал в список отрисовку массива вершин, массив же будет хранится в памяти и изменение исходного массива на отрисовке списка не скажется... Или я не правлиьно понимаю списки?
RzCoDer (2007-07-22 19:22:00) [9]списки это группы команд OGL сохраненные для дальнейшего исполнения) (c) редбук
AlexanderMS (2007-07-22 18:40:00) [10]RzCoDer © (22.07.07 18:22) [9]
Мне бы понять сначала, каким образом происходит оптимизация при работе со списками. В памяти сохраняется сцена или алгоритм её рисования?
RzCoDer (2007-07-22 18:22:00) [11]
> Сделал со списками - тормоза и зависания при последующей
> прорисовке. Хотя в общем, объектов немного (14 Quads-ов),
> но один фоновый - большой, и тормозит.
тут явно не в прорисовке дело) ищи лаги где то у себя
AlexanderMS (2007-07-22 18:20:00) [12]VBO, наверное. Сделал со списками - тормоза и зависания при последующей прорисовке. Хотя в общем, объектов немного (14 Quads-ов), но один фоновый - большой, и тормозит.
@!!ex (2007-07-22 14:20:00) [13]> [6] XProger © (22.07.07 10:49)
Кто быстрее?
XProger (2007-07-22 10:49:00) [14]@!!ex, колоссальная при объектах свыше нескольких тысяч поли
RzCoDer (2007-07-21 19:03:00) [15]
> AlexanderMS © (21.07.07 18:32) [4]
Vertex Buffer Object. Об использовании можешь тут почитать http://www.mirgames.ru/articles/opengl/vbo.html
AlexanderMS (2007-07-21 18:32:00) [16]
> можно через VBO
А это как расшифровывается?
@!!ex (2007-07-21 18:15:00) [17]Кстати. Какая разница между VBO и Списками по скорости? Кто нить измерял??
RzCoDer (2007-07-21 16:58:00) [18]можно через VBO
AlexanderMS (2007-07-21 16:52:00) [19]Нашёл: через списки (glNewList). Спасибо.