Главная страница
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.027 c
1-1107436283
JohnKorsh
2005-02-03 16:11
2005.02.20
Возможно ли стирание программой своего EXE файла ?


3-1106072020
s_ilnar
2005-01-18 21:13
2005.02.20
Обработка 3000 xml файлов


3-1106449961
SarDoX
2005-01-23 06:12
2005.02.20
Поиск в БД


9-1099952680
Кто---то
2004-11-09 01:24
2005.02.20
Как в гонках управляются вражеские машины ?


14-1107322087
sapsi
2005-02-02 08:28
2005.02.20
Secret net