![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
[Delphi, GLScene] Оптимизация...
Архитектор © (2005-05-26 10:25:00)Я создаю нечто наподобие GLScene "Earth" demo и как бы я ни бился в этой демке количество FPS в 3-4 раза больше чем у меня... хотя мой проект намного проще... обьясните что можно настроить чтобы повысить FPS, а лучше может у кого есть исходник этой демки...
-----------------------------------------------------------------------
Для имитации солнца использую GLLensFlare.
Звезды создаю с помощью SkyBox'а.
причем если удалить скайбокс, то если солнце не попадает в кадр количество ФПС приемлемое, а если со скайбоксом то без разници попадает солнце или нет, ФПС практически одинаковый...
-----------------------------------------------------------------------
GLScene "Earth" demo взять можно тут:
https://sourceforge.net/project/showfiles.php?group_id=29749
VVV-First (2005-05-27 15:42:00) [21]XProger © (27.05.05 15:33) [33]да но за созданием такого приложения , сидел не один умный дядька :))
XProger (2005-05-27 15:33:00) [22]Архитектор, есть один Space Flight Simulator - Orbiter'ом зовётся... Там хоть до Плутона лети... Скачай - посмотри, может идею подкинет. И никаких скайдомов не использовалось кстати.
P.S.
Ещё раз повторяю, пока не поздно завязывай с GLScene и переходи на OpenGL...
VVV-First (2005-05-27 15:23:00) [23]аааааа, ну тохда удачно порисовать:)
Архитектор (2005-05-27 15:14:00) [24]2 VVV-First
85000 это и есть маштабирование... за еденицу взят радиус луны как самое малое значение которое приходится учитывать... т.е.
GlMoon.Radius:=1;
Архитектор (2005-05-27 15:10:00) [25]TheArchitect.AllWorld.XProger.Visible:=false;)
VVV-First (2005-05-27 15:09:00) [26]на расстояние 85000 единиц от луны??- что это за единицы такие:))) Минимальное расстояние ОТ Луны До Солнца (14960000-369000) км это приблизительно
Я ж тее грю масштабные коэфициенты!
XProger (2005-05-27 15:05:00) [27]Архитектор, пока ты не поймёшь что на низком уровне всё проще - будешь задавать глупости...
Архитектор (2005-05-27 14:53:00) [28]XProger ©
Как это пишется у ВАС я знаю... мне НАДО в GlScene ;)
Архитектор (2005-05-27 14:52:00) [29]2 VVV-First
>>так как Луну с растояния Солнца, ты хрен увидишь.
Да но Солнце с луны видать :( но ведь не рисовать же его на расстояние 85000 единиц от луны??
Архитектор (2005-05-27 14:49:00) [30]2 VVV-First
>>Я тебе уже Хилла-Брауна принес...
ничего мне и Теория Хилла-Брауна пригодится :) если не в диплом так для себя :)
XProger (2005-05-27 14:48:00) [31]Архитектор, ну в GLScene же все прощё... ;)
А у нас это пишется вот так: glDisable(GL_DEPTH_TEST);
VVV-First (2005-05-27 14:38:00) [32]
??? и еще вопрос, какие размеры сцене давать ведь радиус Луны относится к расстоянию до солнца как 1 : 84580 (минимум)
???как мне солнце замутить??
вводи масштабные коэфициенты, а Солнце и Луны с их реальными размерами и расстояниями пусть и масштабированными ты конечно нарисуешь, но всеравно придется перехоть от объекта к объекту, так как Луну с растояния Солнца, ты хрен увидишь.
Я делал так же с Марсом, приходилось , делать сто-то на подобии межпланетного перелета
Будеш смеяться я к нашей астрономичке подходил, так ее кеплер вполне устроил, а про лунные теории она точно ничего не знает :)
Блин так так бы и сказал , что тебе надо решить задачу 2 тел
Я тебе уже Хилла-Брауна принес
Архитектор (2005-05-27 12:56:00) [33]2 cyborg
>> перед рендерингом фона нужно отключать Z буфер
как?
XProger (2005-05-27 11:36:00) [34]Архитектор, и рисовать скайдом в позиции камеры! Радиус в таком случае абсолютно не важен :)
cyborg (2005-05-27 10:48:00) [35]перед рендерингом фона нужно отключать Z буфер
Архитектор (2005-05-27 10:16:00) [36]2 VVV-First
>>у тебя ж на форме лежит компонент GlScene? так вот, в его списке сначало должен стоять СкайДом, а после все сферы
так и сделал, косяк не пропал, я тут выставлял СкайДому позишн в -1000 по всем осям и выяснил что это шарик с кучей точек, так вот этот шарик не такой и большой, и земля временами выходит за его пределы (я так думаю:), если ему Scale менять то он вообще не прорисовывается... :(
??? и еще вопрос, какие размеры сцене давать ведь радиус Луны относится к расстоянию до солнца как 1 : 84580 (минимум)
???как мне солнце замутить??
Архитектор (2005-05-27 10:00:00) [37]2 XProger
>>1) Если ты используешь скайбоксы, то отпадает необходимость в очистке буфера цвета (кадра)
Я как понимаю это значит : GlSceneViwer.Buffer.ContextOptions -> roNoColorBufferClear := true...
Так вот при такой установке наблюдаю потрясающую картину, пошаговую прорисовку сцены :) а ФПС падает так что прорисовку GlLensFlare можно наблюдать секунды 2 :)
2 VVV-First
>>а то я думал все по Кеплеру делать, она вроде подходит (хоть и с натяжкой) к движению луны :)
>>не в обиду тебе сказанно, но ни кому больше такого не говори.
Будеш смеяться я к нашей астрономичке подходил, так ее кеплер вполне устроил, а про лунные теории она точно ничего не знает :)
>>только точность у нее определения положения Луны 10 угловых секунд
я думаю про точность моего постраения вообще лучше молчать :)
XProger (2005-05-26 20:45:00) [38]Ну не совсем...
Но пора привыкать к порядку ;)
DeadMeat (2005-05-26 20:27:00) [39]Да ты прям антиглсценовскую кампанию тут разводишь по форуму...
;))
---
...Death Is Only The Begining...
XProger (2005-05-26 18:51:00) [40]Так... Хочешь много FPS - делай руками!
Выбрав GLScene ты променял скорость на простоту разработки...
Если хочешь добиться FPS больше чем в той демке:
1) Если ты используешь скайбоксы, то отпадает необходимость в очистке буфера цвета (кадра)
2) Не подавай в видеокарту не видимую геометрию
3) Буфер глубины и буфер цвета по 16 бит хватит поуши (для такого проекта)
4) Старайся избегать использования блендинга, для дырок и альфа тест сойдёт
5) Фуллскрин
6) Выруби вертикальную синхронизацию
7) Не используй таймеры! Делай всё "мёртвым" циклом. Без всяких VCL...
8) Не используй GLScene!!!