Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 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
6-1121457872
redlord
2005-07-16 00:04
2005.11.06
все компы в сети


1-1129665369
Volf_555
2005-10-18 23:56
2005.11.06
Как вывести в TMemo содержимое определённой папки


1-1129213892
Silver...
2005-10-13 18:31
2005.11.06
TOleContainer - Запустиь PowerPoint Presentation на показ


11-1110529724
Vladimyr
2005-03-11 11:28
2005.11.06
Чёртов Service


2-1129109894
MD2005
2005-10-12 13:38
2005.11.06
определение цвета в точках





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