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

Вниз

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 вся ветка

Форум: "Media";
Текущий архив: 2005.02.20;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.041 c
1-1107512515
REd_imp
2005-02-04 13:21
2005.02.20
Народ как поменять цвет определённой ячейки в Стриггриде


8-1099501613
Expl
2004-11-03 20:06
2005.02.20
Работа с графикой


3-1106375511
forum_user
2005-01-22 09:31
2005.02.20
Поиск поля в БД Access


6-1102708946
=alexlp=
2004-12-10 23:02
2005.02.20
Как узнать активен ли TServerSocket.


14-1107178240
ArchValentin
2005-01-31 16:30
2005.02.20
Кто чё-нить знает про зверя VBScript просю...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский