![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Поговорим о оптимизации GLScene. [Delphi, GLScene, Windows]
Conferno © (2005-07-26 16:37:00)Привет мастерам и игроделам на GLScene!
В данной ветке давайте будем обсуждать оптимизацию GLScene.
Товарищи, кто делал игры на этом движке, расскажите о оптимизациях:
1. Как правельно пользоваться TGLPortal?
2. Какую текстурную фильтрацию лучше использовать Анизотропную или Изотропную...
3. Почему туман не повышает ФПС...
4. Виды Cull'ингов - какие лучше и как правельно пользоваться,
как отрезать невидимые обьекты, находящиеся, например, за стеной...
5. Динамичные тени и Lightmap'ы - как правельно с ними работать...
6. Можно ли модель в 3DMax экспортировать в 3ds, при этом, чтоб он не урезал имена используемых текстур?
Или где можно достать доки или примеры...
Обо всем здесь :)
Также можно задавать свои вопросы... :)
Fosgen (2005-08-05 09:27:00) [81]Хорошо - если нельзя ориентироваться на дату коррекции этого файла - где в GLScene'вских файлах посмотреть ее версию? Или таковое невозможно в принципе?
Насчет версий Delphi и вообще - сижу на 5.0, настройки по умолчанию. Вообще, имея конфигурацию машины: GF6800GT, P3000,1Gb RAM - я ни разу не видел в GLScene таких показателей как 700-800 fps! Производительность любой сцены из примеров укладывается в 400 fps. Что конечно несколько удивляет. А ведь у меня мягко говоря не слабая конфигурация...
Так каким образом достигаются таковые результаты?
DeadMeat (2005-08-05 08:21:00) [82]Обе версии я запускал у себя
Одну он компилил сам..
Другую я..
Вроде бы я отключал то, что отключил он, но один фиг не помогло...
Zer0 (2005-08-05 01:20:00) [83]ну если врубить все опцыи дебага в том числе Range checking и Overflow cheking то ессно код будет перегружен лишними проверками и скорость его работы заметно снизится
Домовенок (2005-08-05 01:12:00) [84]DeadMeat (04.08.05 15:05) [23]
А как же конфигурация компьютера? Или ты приносил скомпилированную демку на твоей Delphi к нему на тестирование?
DeadMeat (2005-08-04 15:05:00) [85]Там хез...
Но я точно знаю, что у одного я брал демку, которую он слепил на 5ой делфе и с каким то настройками компилятора.. Она выдавала около 1200 ФПС.
Ее же я копилирую у себя.. На 6ой.. и все настройки по дефолту.. После этого выдает 700-800 фпс (точно не помню).
Вот и хез теперь.
И такое не один раз было...
Домовенок (2005-08-04 13:34:00) [86]DeadMeat (04.08.05 09:47) [21]
Любопытно, и на каких версиях Delphi ФПС выше? На более низких или на более высоких?
DeadMeat (2005-08-04 09:47:00) [87]Да.. И еще.
Я заметил такую особенность, что ФПС зависит от версии (или еще там от чегото) делфи, на которой программа компилировалась.. Или от каких то настроек самой среды.. Это я знаю точно, т.к. проверял.. Поэтому сравнение пускай делает один человек или же на стандартной поставке без подстроек.
DeadMeat (2005-08-04 09:46:00) [88]ИМХО не корректно смотреть дату только по этому файлу.. Ведь исправлению подвержены и другие файлы без участия этого..
Сравнение на производительность лучше проводить какой нить нагруженной стандартной и простой сценой.. Можно даже взять примеры из папки bench
По результатам этих прог уже судить о производительности.. Или ченить свое..
Fosgen (2005-08-04 09:12:00) [89]Есть предложение - соберем статистику собственных наблюдений по оптимизированности и устойчивости работы GLScene, ориентируясь на дату последней коррекции разработчиками файла GLScene.pas?
Это поможет сразу определять ошибки свойственные конкретной версии и не тратить время на хождение вокруг да около...
Итак:
GLScene (коррекция файла от 04/09/03) - как вы все понимаете старая версия, но похоже одна из "быстрых" и устойчиво работающих на текущий момент. Конкретных проблем устойчивости не обнаружено.(+++) Не совместима с последующими версиями по наименованиям классов.(--)
GLScene (коррекция файла от 04/12/04) - версия дополненная ODE, GLLensFX, Clothyfy, GLGUILayout,GLScenePFX,GLSceneShaders и т.д.(++) Это конечно очень приятно. По сравнению с вышеописанной "просаживает" производительность в 2-3 раза (без использования новых наворотов), при переносе проги со старой версии - не заработал отлаженный модуль столкновений (хотя примеры вроде пашут), перестала обрабатывать нажатие мыши на TGLHUDSprite (?)(---).
Пишите свои впечатления об этих и других версиях, о переносе программ с версии на версию - с чем столкнулись - что пришлось переделывать. Думаю так сможем определить саму работоспособную версию на текущий момент.
FRick (2005-08-01 17:42:00) [90]Когда смотриш на текстуры под некоторым углом, она искажается!
Можно ли как нибуть избавится от етого искожения???
Зарание спасибо!
Conferno (2005-07-30 18:31:00) [91]Я опять же про тени - тестил редактор у моего друга(GeForce6600 TD) - теней нет. Менять стенсил буфер не пробовал. У меня у самого ATi Radeon 9200 -тени есть, но глючат(отдельная ветка была). У друга GeForce4MX - прога толи виснет, толи 0,01 фпс показывает.
> Conferno (29.07.05 03:15) [11]
> Да я создал 3ds модель(типа уровень), га которой около 6
> текстур (512х512) так у меня fps 40, если вкл. волюмы, то
> вообще (!!!) 10Fps, Чёза?
Пардон, ошибся слегка. Вот как: загружаю 3ds модель с текстурами, дает 120фпс(сцена без обьектов-450-500фпс), если добавить эту модель в occluders волюма, то показывает 30 фпс(тени сами по себе выключены). Если включить - 10фпс.
> Dgt (28.07.05 19:46) [9]
>
> > ... Ну все же, кто уж работал с лайтмапами, не соизволит
>
> > ли рассказать о подвиге... :)
>
> Если тебе нужен статичный лайтмап , то юзай 3dsmax Render
> to texture, все очень удобно и красиво....
Я пробовал - в максе все круто(и для лайтмапа и для текстур -координаты соблюдаются), а в GLScence координаты текстур соблюдаются, а координаты лайт мапа - нет. Чеза?
И да, народ, я ложусь в больницу в понедельник на 10 дней, так что ПЛИз не забрасывайте тему !!! :)
Xeno (2005-07-29 11:01:00) [92]Fosgen я тебе верю,просто хотел поделиться глюками связанными с последним снимком :)) Кстати, насчёт дров ты-бы не торопился с выводами,я тоже с чистых систем проверял и причём на разных машинах,благо имею такую возможность на работе,через меня их в месяц в среднем по 30-70 штук - разных конфигураций проходит,по работе так и сяк их тестить приходиться, так что это не пустые слова были...
Fosgen (2005-07-29 10:16:00) [93]Дрова тут точно не при чем. ВСЕ объекты создаются run-time. Видеокарта - GF 6800 GT 256 Мб. Теней нет. Два источника света. В сцене в среднем менее 40 объектов. Около 10 000 полигонов. С винта ничего не грузится - все распределено в памяти и дергается оттуда.
Почему драйвера - не при чем? Пример:
Берется одна и та же машина, ставится Delphi 5.0 с GLScene (коррекция файлов от 04/09/03), прога дает 150-170 fps,
Далее - сносим Delphi, переставляем (для чистоты эксперимента), ставим GLScene (коррекция файлов от 04/12/04), заменяем GLCollision.pas на старый (с новым - ваще не работает или дает 1-2 fps), компилим ТУ ЖЕ САМУЮ прогу - имеем 20-30 fps... Бред...
Xeno (2005-07-29 09:01:00) [94]>DeadMeat
угу, с mx440 и с gf2 есть такой дефект,a с fx5200 и выше без включенного стенсил буфера вообще не всегда отображаются :(
DeadMeat (2005-07-29 08:34:00) [95]Лично я пользуюсь драйверами OMEGA и проблем не испытываю..
Хотя вот разве что тени на моей MX440 моросят.. И то как то странно.. Пример работает нормально, а с нуля моросит..
На RADEON 9000 такого не было..
Xeno (2005-07-29 05:51:00) [96]Думаю тут возможно проблема с драйвера для видеокарт,для примера - GLScene c последними дровами для ATI вообще работать отказывается,а с некоторыми версиями замечал разную производительность,с NVIDIA меньше тестировал,но тоже есть дефекты особенно с тенями.Возможен ещё вариант когда на старую видеокарту GF2 например ставять последнии драйвера - не редко это значительно снижает производительность...Заметил ещё глюк со снижением производительности при создании или вставке при копировании объектов GLSCene в режиме редактирования в среде IDE, с чем это связанно так и не понял,но при этом бывает производительность может падать в два-три раза,данный дефект может чаще проявиться если создавать большое кол-во объектов,единственный выход который я нашёл это создавать большую часть объектов в run-time...
Conferno (2005-07-29 03:15:00) [97]Да я создал 3ds модель(типа уровень), га которой около 6 текстур (512х512) так у меня fps 40, если вкл. волюмы, то вообще (!!!) 10Fps, Чёза?
Fosgen (2005-07-28 22:39:00) [98]Господа, может мне кто пояснит - под старой (некто из присутствующих даже называл ее - древней) версией GLScene программа дает 170-180 fps, под новой версией (с наворотами в виде ODE, LensFX и т.д.) БЕЗ использования всех этих наворотов, сначала - просто отказывалась работать, в 1 из 10 случаев - работала с 1-2 fps (!) после замены нового "продвинутого" GLCollisions.dcu старым - стала стабильно работать, но дает всего лишь неустойчивые 20-50 fps!!!! Что происходит, господа? Почему новый код - значительно хуже старого? При таких раскладах - о какой оптимизации идет речь, если новые версии так просаживают все что было вылизано? Если я ошибаюсь - подскажите мне - в чем же разница между старыми версиями и новыми и почему эта разница не в пользу новых?
Dgt (2005-07-28 19:46:00) [99]
> ... Ну все же, кто уж работал с лайтмапами, не соизволит
> ли рассказать о подвиге... :)
Если тебе нужен статичный лайтмап , то юзай 3dsmax Render to texture, все очень удобно и красиво....
Да кстати , мне так никто нормально не ответил на вопрос,который я задавал раньше:
у меня есть 3 координаты полигона , его текстурн координаты(они в 0..1) , есть координаты точки(точка внутри
полигона)--- как найти текст. коорд этой точки plz..
Xeno (2005-07-28 05:51:00) [100]>Ну обычно туман и для того и создан, чтоб урезать пространство,
>которое как раз невидимо...
Скорее тогда правильно сказать не урезать а сглаживать вид урезанного пространства :)