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

Вниз

GLScene: тормоза на ровном месте   Найти похожие ветки 

 
miek ©   (2004-11-03 18:11) [0]

Только-только начинаю делать проект с большим числом полигонов, и уже в самом начале вижу невысокую, прямо скажем, проиводительность. В кадре одновременно не больше 500 полигонов (TGLPlane), а FPS всего 110. Причем создание сцены (все штатными средствами, через Proxy) длится секунды три! Кто-нибудь подскажет, отчего такие тормоза и как исправить? Уже применил отсечение по расстоянию и по пираимде видимости, помогло не сильно.

http://www.miek.narod.ru/energhost.zip
[25 KB]


 
DeadMeat ©   (2004-11-03 19:51) [1]

Эта... Там пусто...
А как применил? В смысле средствами GLScene или сам...?

---
...Death Is Only The Begining...


 
miek ©   (2004-11-03 22:04) [2]

Сам, по координатам.

В архиве все нормально, вот только что закачал.


 
DeadMeat ©   (2004-11-03 23:54) [3]

Нее... Я имею ввиду, что самого архива нема. Там тока 404.... Может регистр букв забыл? Сама страница есть, а вот архива нЭту...

---
...Death Is Only The Begining...


 
miek ©   (2004-11-04 07:51) [4]

Опечатка была, oops!


 
Sapersky   (2004-11-04 13:23) [5]

3D-ускорители, особенно с HW T&L, рассчитаны на вывод большого количества полигонов за раз (порядка сотен-тысяч). То есть нарисовать 500 отдельных полигонов (тем более устанавливая для каждого свою матрицу - если Proxy задаёт положение объекта, то именно это и происходит) - ГОРАЗДО медленнее, чем скинуть те же полигоны в один буфер (в данном случае объект GLScene - FreeForm или как его?), заранее просчитав трансформации и вывести всё за один присест.

Если геометрия статическая, т.е. изменять положение объектов не надо, или это делается вершинным шейдером :) - буфер заранее запихивается в видеопамять, дабы не гонять его по шине каждый кадр; вот тогда будет максимальная скорость.

Хотя, насколько я слышал, для того, чтобы получить это на OpenGL - нужно использовать дополнительные расширения (GL_ARB_vertex_buffer_object или что-то такое). Судя исходникам GLScene - у автора до этого ещё не дошли руки, используются только обычные дисплейные списки, если я правильно понял...

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


 
miek ©   (2004-11-04 18:06) [6]

Я это так себе и преставлял, но не думал, что тормоза начнутся уже на первой тысяче. Ведь когда я создаю TerrarinRenderer с числом полигонов раз в 10 большим, скорость не сильно изменяется.

В сегодняшних экспериментах выяснил, что разбиение одного контейнера на два может значительно улучшить дело. Может, все из-за банального кэша 2-го уровня?


 
DeadMeat ©   (2004-11-05 17:56) [7]

Ну а все таки ссылка какая? Просто интересно...

---
...Death Is Only The Begining...


 
miek ©   (2004-11-05 18:09) [8]

Та же, что в начале:
http://www.miek.narod.ru/energhost.zip



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

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

Наверх




Память: 0.48 MB
Время: 0.048 c
4-1105190027
Sicilla
2005-01-08 16:13
2005.02.20
Появление Hint


14-1106811957
GRAND25
2005-01-27 10:45
2005.02.20
Цель в жизни...


1-1107755628
Vovka_the_Carrot1
2005-02-07 08:53
2005.02.20
Печать Chart


14-1106846392
Бугага
2005-01-27 20:19
2005.02.20
Колосков подал в отставку с поста РФС


1-1107779213
Vcoder
2005-02-07 15:26
2005.02.20
Генерация большого отчета - как лучше?