Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Вниз

Повторный вывод уже построенной сцены в 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.445 c
2-1272191721
koshkin
2010-04-25 14:35
2010.08.27
Как указать путь к модулю


2-1272273312
HF-Trade
2010-04-26 13:15
2010.08.27
положение TStatusBar после SW_Restore


15-1267560202
TUser
2010-03-02 23:03
2010.08.27
БАК: статус и ожидания


3-1240748319
ford
2009-04-26 16:18
2010.08.27
список несуществующих записей


15-1267253714
Григорьев Антон
2010-02-27 09:55
2010.08.27
Умер Архангельский





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский