Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: CL | DM;

Вниз

Повторный вывод уже построенной сцены в OpenGL.   Найти похожие ветки 

 
AlexanderMS ©   (2007-07-21 16:31) [0]

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

P. S. Надеюсь, Вы поняли, что я имею ввиду, просто новички выражаются не всегда понятно.


 
AlexanderMS ©   (2007-07-21 16:52) [1]

Нашёл: через списки (glNewList). Спасибо.


 
RzCoDer ©   (2007-07-21 16:58) [2]

можно через VBO


 
@!!ex ©   (2007-07-21 18:15) [3]

Кстати. Какая разница между VBO и Списками по скорости? Кто нить измерял??


 
AlexanderMS ©   (2007-07-21 18:32) [4]


> можно через VBO

А это как расшифровывается?


 
RzCoDer ©   (2007-07-21 19:03) [5]


> AlexanderMS ©   (21.07.07 18:32) [4]

Vertex Buffer Object. Об использовании можешь тут почитать http://www.mirgames.ru/articles/opengl/vbo.html


 
XProger ©   (2007-07-22 10:49) [6]

@!!ex, колоссальная при объектах свыше нескольких тысяч поли


 
@!!ex ©   (2007-07-22 14:20) [7]

> [6] XProger ©   (22.07.07 10:49)

Кто быстрее?


 
AlexanderMS ©   (2007-07-22 18:20) [8]

VBO, наверное. Сделал со списками - тормоза и зависания при последующей прорисовке. Хотя в общем, объектов немного (14 Quads-ов), но один фоновый - большой, и тормозит.


 
RzCoDer ©   (2007-07-22 18:22) [9]


> Сделал со списками - тормоза и зависания при последующей
> прорисовке. Хотя в общем, объектов немного (14 Quads-ов),
>  но один фоновый - большой, и тормозит.

тут явно не в прорисовке дело) ищи лаги где то у себя


 
AlexanderMS ©   (2007-07-22 18:40) [10]

RzCoDer ©   (22.07.07 18:22) [9]

Мне бы понять сначала, каким образом происходит оптимизация при работе со списками. В памяти сохраняется сцена или алгоритм её рисования?


 
RzCoDer ©   (2007-07-22 19:22) [11]

списки это группы команд OGL сохраненные для дальнейшего исполнения) (c) редбук


 
@!!ex ©   (2007-07-22 19:36) [12]

> [11] RzCoDer ©   (22.07.07 19:22)

Хм, вопрос в том, где сохраненные....
По идееи если я записал в список отрисовку массива вершин, массив же будет хранится в памяти и изменение исходного массива на отрисовке списка не скажется... Или я не правлиьно понимаю списки?


 
AlexanderMS ©   (2007-07-23 18:15) [13]

Вообще, можно любые gl-процедуры вызывать между NewList и EndList? К примеру, glEnable? Или лучше это делать за пределами списка?


 
RzCoDer ©   (2007-07-23 19:07) [14]


> AlexanderMS ©   (23.07.07 18:15) [13]

почти все, почитай на этот счёт редбук


> @!!ex ©   (22.07.07 19:36) [12]

имеешь в виду обычный array? разумееца потом можешь делать с ним что хочешь


 
Rial ©   (2007-07-23 22:26) [15]

> [3] @!!ex ©   (21.07.07 18:15)
> Кстати. Какая разница между VBO и Списками по скорости?
> Кто нить измерял??

VBO будет работать быстрее намного.

И вообще, если нужно вывести сцену всего 2 раза,
то ни в коем случае использовать списки не рекомендую,
т.к. время на создание списка уходит в 2-3 раза большее,
чем на его отрисовку.


 
Yashin ©   (2007-08-05 00:17) [16]

на delphi3d.net видел сравнение всех видов списков на примере.


 
rts111 ©   (2007-08-06 23:45) [17]

> [3] @!!ex ©   (21.07.07 18:15)
> Кстати. Какая разница между VBO и Списками по скорости?
> Кто нить измерял??

Я имерял, у меня списки как правило быстрее работают.
Но разница незначительная, а чаще вообще разницы в скорости нет.

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


 
rts111 ©   (2007-08-12 00:41) [18]

Зачем вообще париться с VBO, когда всего "(14 Quads-ов)",
обычные glBegin ... glEnd скорее всего, даже быстрее будет.


 
DeadMeat ©   (2007-08-12 11:53) [19]

Не большой тестик проводил.
Рисовал простой плейн. Но много. Штук так 10 000.
VBO конечно не стал юзать, т.к. у каждого плейна свои координаты и каждый двигается независимо. Т.е. отдельный объект.
Проверял:
glBegin/glEnd
glNewList/glEndList
glDrawArrays
Быстрее всех оказался glBegin/glEnd
Списки и массивы были медленее. ФПС при использовании списков падал на 10-20 пунктов. А при использовании массивов всего на 5-10.
Т.е. если поликов мало, использование списков и массивов вершин не всегда оправдано.



Страницы: 1 вся ветка

Текущий архив: 2010.08.27;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.049 c
8-1204709161
IGray
2008-03-05 12:26
2010.08.27
Как создать объект DirectDraw на втором мониторе?


15-1264178027
@!!ex
2010-01-22 19:33
2010.08.27
Алгоритм конвертации 24 битной картинки в 8


2-1273938530
SIV5000
2010-05-15 19:48
2010.08.27
Окна


2-1273841049
RGV
2010-05-14 16:44
2010.08.27
WebBrowser.


15-1266397245
TUser
2010-02-17 12:00
2010.08.27
Homo sapiens liberatus