Форум: "Игры";
Текущий архив: 2005.11.06;
Скачать: [xml.tar.bz2];
ВнизGlscene скорость работы приложения Найти похожие ветки
← →
qwe (2005-04-05 16:18) [0]Драсте!!! Тут назревает небольшая, проблемка помогите а?:)
Короче есть модель Солнчной системы: все планеты, звезды , спутники Земли(искусственные 3DS модельки) показывается орбиты спутников, ну и всякое такое, так вот на моей машине (128 идет отлично ) но если машина уже послабее начинаются естественно тормоза, хоть и не сильные, но мало приятные. Так вот вопрос, с чего нужно начинать оптимезацию, чего там урезать отрезать , или зарезать :))))))
P.S. да правда много времени занимает расчет положений планет , луны и спутника , но от этого ни куда не деться. Вот.!!!
← →
A22 © (2005-04-05 17:31) [1]недостаточно информации для ответа по существу :(
а какие-то общие фразы можно почерпнуть на gamedev.ru том же, там етсь статьи про оптимизацию 3d-приложений. разницы между gl & d3d особой нет, принципы все те же.
P.S. расчет положения планет не должен по идее занимать столько времени, чтобы начинались тормоза...
← →
qwe (2005-04-05 17:46) [2]блин плохо........
ну как это мало информации, а чего еще-то...
P.S. ну я насчет планет может ты и прав, хотя они вычисляются не X=R*cos(V)
Y=R*sin(V)и так далее, а решение уравнение кеплера, Луна по теории Хилла_Брауна, и так далее я просто по образованию Астроном и это мое напровление
← →
A22 © (2005-04-05 18:10) [3]опиши что и как у тебя рисуется. как установлены плоскости отсечения, какие расстояния между объектами, сколько полигонов в моделях, какие текстуры. если есть эффекты, то какие и как применяются, есть какие-то "фоновые" звезды - как рисуются они. поподробне опиши графическую чатсь программы.
еслирасчет положения выполняется как-то сложно, кхм.. попробуй профайлером прогнать программу и посмотреть, сколько времени тратится на рендеринг кадра, а сколько - на расчет положения. если числа более-менее соизмеримые, значит расчеты нужно оптимизировать
← →
qwe (2005-04-05 18:25) [4]ага ну начить так , по порядку
1: плоскости отсечения не ставил (даже незнаю как)
2: расстояния. ну расстояния большие ну наверно , можно ввести какой-то масштабный коэфициент
3:ну насчет полигонов точно не могу сказать (пока) ну вот в среднем хдето по 20 тыс.
4:тестуры ну там только на Землю здоровая (1024), а на спутники много мелких.Да спутников пока только 4, но их уже можно наклепать туда запросто;
5:эффектов пока ни каких
6:звезды - это обычный SkyBox
7: траектории спутников это линии
да ну еще рисуется атмосфера Земли (взял из примеров GlScene-ы)
мне еще ненравится то, что много напихал в обработчик каденсера
← →
A22 © (2005-04-05 18:39) [5]20 тысяч полигонов для модели земного шарика - явный перебор. если тебе очень уж рельеф нужен, время подумать в сторону бамп-мэппинга.
далее, насчет отсечения. с определенного удаления твои объекты уже не видны (слишком мелкие). прикинь это самое критическое расстояние и, если удаленность какой-то планеты от камеры >= его, не рисуй ее. при твои 20тысячах полигонов это будет приличная экономия :)
что значит много мелких текстур на спутники? если на каждом спутнике несколько текстур - лучше слить в 1, сэкономишь на смене текстуры (хотя это капля в море). с качеством текстур вообще будь осторожнее, погоняй на разных текстурах программу, посмотри на фпс. выбери, какой размер оптимален по соотношению скорость\качество
как в примерах жлсцен делается атмосфера я хз, тут могу помочь только 1. я бы делал атмосферу второй текстурой, возможно, анимированной, наложенной вместе с основной текстурой на модель (add)
"траектории - это линии" мне ни о чем не говорит :)
в общем, попробуй первые 2 пункта, и поконкретнее о расчетах. может у тебя все же процессор тормозит...
← →
qwe (2005-04-05 18:51) [6]так тут вкралась непоняточка, :))))) 20тыс полигонов это не для Земли (Все планеты это просто Шарики с текстурами), 20 тыс это спутник.
А вот про "нерисуй" что именно , Visible := false, bkb ,или более человечискими методами:)))))
А вот насчет расчетов, я конечно могу попдробнее но это сплошная небесная механика. Да и мне кажется что именно алгорит вичисления положений не удасца оптимезировать, так как я его уже больше года делаю, поэтому (ну хочится верить) все процедуры и функции "вылизана"
Вот короче, можно поподробнее про отсечение?
← →
A22 © (2005-04-05 19:04) [7]ввиду того, что у тебя космос, можно особо с отсечением не заморачиваться и не рисовать только далекие объекты. хотя, если спутников планируется много, тогда уже неплохо было бы проверять - не закрывает ли их планета от камеры, и, если закрывает, не рисовать
насчет visible = false и т.д. подсказать не могу. glscene не пользовался, но разницы нет никакой, 3d оно везде 3d. если в glscene "visible := false" для какого-то объекта отключит его от рендеринга - да, именно так и "отсекай" после проверки :)
а оптимизировать можно многое, но тут уж тебе по-любому виднее, ты же алгоритмы писал.
да, и еще. 20 тысяч полигонов - все равно много. пусть это дважды спутник трижды имени Ленина, можно-таки и сократить :) лучше модель на 100 полигонов, но с бампом и спекуляр светом, чем модель на 20тысяч, но без оных эффектов
← →
qwe (2005-04-05 19:14) [8]:)))) ну ладно пасибо , поэксперементируем , а тут людей еще завтра поспращиваю
← →
DeadMeat © (2005-04-05 20:24) [9]А еще LOD можно добавить... Как раз для планет и спутников самое то..
Level Of Detail.. С растоянием заменять модели на менее полигональные...
Отсечение по Frustum-у... Это как бы само собой надо делать..
SkyBox я бы заменил на сферу или куб... С одной текстурой.. Развернутой...
GLSceneViewer -> Buffer -> ContextOptions -> NoColorBufferClear := false;
Т.к. у тебя есть обьект, который перекрывает всегда весь экран.. Рисуешь его первым и не надо будет очищать постоянно буфер...
Если результаты формул не меняются и находятся постоянно в одном и том же интервале (ну например X всегда равен, 1.. потом 2... потом 8 и т.п.. и потом повторяется), то можно их заранее просчитать и занести результаты в массив.. А потом брать уже готовые...
Если есть Lines.. То избавься от них.. Избавься от любых контуров в сцене.. Они рисуются не аппаратно, а за счет процессора. Замени их сплющенными полигонами или чем нить еще.. Текстурой тоже можно.
Уменьши детализацию сфер.. Ну тот же LOD.
Ну это первое, что на ум пришло.. Мож че забыл..
---
...Death Is Only The Begining...
← →
qwe (2005-04-06 15:41) [10]DeadMeat пасибо , вот только насчет GLSceneViewer у меня его вообще нет , у меня FullScreen (сделал через data module)
а вот заменять - это просто перегружать фриформ или хде хранить в памяти?
а вот про Frustum я балбес чего-то вообще забыл:))))))
← →
DeadMeat © (2005-04-06 21:49) [11]
> вот только насчет GLSceneViewer у меня его вообще нет ,
> у меня FullScreen
А разница какая? Это почти тотже GLSceneViewer, просто на весь экран...
> а вот заменять - это просто перегружать фриформ или хде
> хранить в памяти?
Оптимальный с точки зрения скорости (но не памяти), это загрузить все три (близкое расстояние, среднее и дальнее) сразу и просто переключаться между ними через Visible.. Или через Render (...)
> а вот про Frustum я балбес чего-то вообще забыл:))))))
Самый просто способ - IsVolumeClipped. По форуму уже обсуждали. Глянь...
---
...Death Is Only The Begining...
← →
DeadMeat © (2005-04-06 21:51) [12]Блин..
Очепятался..
Frustrum
---
...Death Is Only The Begining...
← →
malij (2005-04-07 18:08) [13]нашел про IsVolumeClipped, только вот блин, ты там чувачку давал сылочку , на какойто пример: www.deadmeat.programist.ru/visor.rar он у меня не качается,да и у меня вообще некачается ни один пример с этого сайт, странно. ну да ладно , я думаю я уже разберусь пасибо.
← →
qwe (2005-04-07 18:28) [14]О отлично пасибо про IsVolumeClipped я и незнал
← →
DeadMeat © (2005-04-07 21:01) [15]Даа.. С этим programist.ru какие то странности часто..
Надо будет другой хостинг подыскать.
А то кто может скачать, а кто не может..
---
...Death Is Only The Begining...
← →
Da Stranger © (2005-04-08 14:59) [16]qwe, если не сложно, покажи свой космос. Я сам недавно над ним работал (www.spacefederation.tk, раздел Downloads - mySpace, если интересно)
← →
DeadMeat © (2005-04-08 19:07) [17]Вы до сих пор над ним работаете?
Блин.. Каждый раз вспоминаю и сердце кровью обливается...
Мне так не удобно перед Вами.. Обещал ведь.. И не довел до конца..
Эхх..
---
...Death Is Only The Begining...
← →
VVV-First (2005-06-13 17:38) [18]
> DeadMeat ©
слушай нашел тут это пост опять:)))
не могу зайти на
> www.spacefederation.tk
а мне бы посмотреть , как там и что , может скинеш на почту а?
malij_218@mail.ru
← →
VVV-First (2005-06-16 15:57) [19]
> DeadMeat ©
ты что совсем дорогу на форум забыл?:)
← →
DeadMeat © (2005-06-16 16:08) [20]Аа..?? Чего??
А..?? Кто здесь??
;)
Я не совсем догнал.. Тебе чего скинуть?
← →
VVV-First (2005-06-16 16:42) [21]мне :)))
ну вот ты гриш
> Я сам недавно над ним работал (www.spacefederation.tk, раздел
> Downloads - mySpace, если интересно)
так вот не могу зайти, может скиниш мне на почту свой космос посмотреть а?
← →
VVV-First (2005-06-21 12:50) [22]а что ветка с играми умерла?
← →
DeadMeat © (2005-06-21 13:04) [23]Неа..
Просто у хостера были проблемы.. А потом восстанавливали.. Это как я понимаю.. Неделю ниче не работало..
Вообщем так.
Я тебе вышлю что там у них есть, т.к. если я правильно понял, то на programist.ru у тебя не заходит..
А то, что делал я, я могу выслать только с разрешения уважаемого Da Stranger.., т.к. делал для них.
← →
VVV-First (2005-06-21 14:47) [24]Давайте все попросим Da Stranger:))))))))
← →
VVV-First (2005-06-21 16:01) [25]ого го прилично , пасибо , дома подробнее посмотрю:)))))
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2005.11.06;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.042 c