Форум: "Игры";
Текущий архив: 2006.03.12;
Скачать: [xml.tar.bz2];
ВнизПоговорим о оптимизации GLScene. Найти похожие ветки
← →
Conferno (2005-07-26 16:37) [0]Привет мастерам и игроделам на GLScene!
В данной ветке давайте будем обсуждать оптимизацию GLScene.
Товарищи, кто делал игры на этом движке, расскажите о оптимизациях:
1. Как правельно пользоваться TGLPortal?
2. Какую текстурную фильтрацию лучше использовать Анизотропную или Изотропную...
3. Почему туман не повышает ФПС...
4. Виды Cull"ингов - какие лучше и как правельно пользоваться,
как отрезать невидимые обьекты, находящиеся, например, за стеной...
5. Динамичные тени и Lightmap"ы - как правельно с ними работать...
6. Можно ли модель в 3DMax экспортировать в 3ds, при этом, чтоб он не урезал имена используемых текстур?
Или где можно достать доки или примеры...
Обо всем здесь :)
Также можно задавать свои вопросы... :)
← →
A22 © (2005-07-26 16:39) [1]положено начало ветке на много сотен постов...
2. где можно - линейную
3. А почему туман должен повышать ФПС?:)
← →
XProger © (2005-07-26 18:24) [2]http://algolist.manual.ru
Дабы убить глупые вопросы - изучай алгоритмы!
← →
4ECHOK © (2005-07-26 22:52) [3]По-моему, было высказано конкретное предложение и вопросы. И вопросы это далеко не глупые, мистер ИксПрогер. И на Алголост может послать каждый. Допустим вопросы №1,6 : вряд ли на них есть ответы на Алголисте.
Мне кажется, Conferno интересуется практикой применения алгоритмов на конкретном движке, а не самими алгоритмами.
Завтра может свои вопросы дам на обсуждение.
← →
.Xeno (2005-07-27 06:16) [4]3. "Почему туман не повышает ФПС" - туман не повышает фпс потому что объекты скрываемые им всё равно отрисовываются + ещё тратятся ресурсы цпу на отрисовку самого тумана, а граница отрисовки устанавливается в TGLSceneViewer параметром FieldOfView (если память не изменяет) и кажись ещё в камере параметром DepthOfView(граница видимости).
4."как отрезать невидимые обьекты" - один из вариантов использовать TfrmQuadtreeVisCulling (демка quadtreevisculling),работает очень неплохо ,есть правда некоторые ньюансы использования этого метода...
6. Можно, есть такая опция в настройках макса, но на вскидку не помню...
5.Честно говоря не совсем понятно что тебя интересует, т.к. в примерах к GLSCene всё и так понятно.
← →
Санёк (2005-07-27 15:00) [5]
> 6. Можно ли модель в 3DMax экспортировать в 3ds, при этом,
> чтоб он не урезал имена используемых текстур?
что значит урезал?
каким образом?
с материалами все достаточно просто - рисуешь, натягиваешь на модель, при экспорте в 3ds указываешь "Preserve bla bla bla".
в фриформе указываешь библиотеку материалов. в самой библиотеке, кажется в path to materials прописываешь путь и вперед!
← →
DeadMeat © (2005-07-27 16:14) [6]Он урезает до формата 8.3 имена текстур, насколько мне известно... Тока вот к GLScene это (как мне кажется) не имеет отношения.
---
...Death Is Only The Begining...
← →
Conferno (2005-07-28 01:49) [7]
> .Xeno (27.07.05 06:16) [4]
> 3. "Почему туман не повышает ФПС" - туман не повышает фпс
> потому что объекты скрываемые им всё равно отрисовываются
> + ещё тратятся ресурсы цпу на отрисовку самого тумана, а
> граница отрисовки устанавливается в TGLSceneViewer параметром
> FieldOfView (если память не изменяет) и кажись ещё в камере
> параметром DepthOfView(граница видимости).
Ну обычно туман и для того и создан, чтоб урезать пространство, которое как раз невидимо...
> 5.Честно говоря не совсем понятно что тебя интересует, т.к.
> в примерах к GLSCene всё и так понятно.
Примера для работы с лайтмапами нет... Ну все же, кто уж работал с лайтмапами, не соизволит ли рассказать о подвиге... :)
← →
Xeno © (2005-07-28 05:51) [8]>Ну обычно туман и для того и создан, чтоб урезать пространство,
>которое как раз невидимо...
Скорее тогда правильно сказать не урезать а сглаживать вид урезанного пространства :)
← →
Dgt (2005-07-28 19:46) [9]
> ... Ну все же, кто уж работал с лайтмапами, не соизволит
> ли рассказать о подвиге... :)
Если тебе нужен статичный лайтмап , то юзай 3dsmax Render to texture, все очень удобно и красиво....
Да кстати , мне так никто нормально не ответил на вопрос,который я задавал раньше:
у меня есть 3 координаты полигона , его текстурн координаты(они в 0..1) , есть координаты точки(точка внутри
полигона)--- как найти текст. коорд этой точки plz..
← →
Fosgen (2005-07-28 22:39) [10]Господа, может мне кто пояснит - под старой (некто из присутствующих даже называл ее - древней) версией GLScene программа дает 170-180 fps, под новой версией (с наворотами в виде ODE, LensFX и т.д.) БЕЗ использования всех этих наворотов, сначала - просто отказывалась работать, в 1 из 10 случаев - работала с 1-2 fps (!) после замены нового "продвинутого" GLCollisions.dcu старым - стала стабильно работать, но дает всего лишь неустойчивые 20-50 fps!!!! Что происходит, господа? Почему новый код - значительно хуже старого? При таких раскладах - о какой оптимизации идет речь, если новые версии так просаживают все что было вылизано? Если я ошибаюсь - подскажите мне - в чем же разница между старыми версиями и новыми и почему эта разница не в пользу новых?
← →
Conferno (2005-07-29 03:15) [11]Да я создал 3ds модель(типа уровень), га которой около 6 текстур (512х512) так у меня fps 40, если вкл. волюмы, то вообще (!!!) 10Fps, Чёза?
← →
Xeno © (2005-07-29 05:51) [12]Думаю тут возможно проблема с драйвера для видеокарт,для примера - GLScene c последними дровами для ATI вообще работать отказывается,а с некоторыми версиями замечал разную производительность,с NVIDIA меньше тестировал,но тоже есть дефекты особенно с тенями.Возможен ещё вариант когда на старую видеокарту GF2 например ставять последнии драйвера - не редко это значительно снижает производительность...Заметил ещё глюк со снижением производительности при создании или вставке при копировании объектов GLSCene в режиме редактирования в среде IDE, с чем это связанно так и не понял,но при этом бывает производительность может падать в два-три раза,данный дефект может чаще проявиться если создавать большое кол-во объектов,единственный выход который я нашёл это создавать большую часть объектов в run-time...
← →
DeadMeat © (2005-07-29 08:34) [13]Лично я пользуюсь драйверами OMEGA и проблем не испытываю..
Хотя вот разве что тени на моей MX440 моросят.. И то как то странно.. Пример работает нормально, а с нуля моросит..
На RADEON 9000 такого не было..
← →
Xeno © (2005-07-29 09:01) [14]>DeadMeat
угу, с mx440 и с gf2 есть такой дефект,a с fx5200 и выше без включенного стенсил буфера вообще не всегда отображаются :(
← →
Fosgen (2005-07-29 10:16) [15]Дрова тут точно не при чем. ВСЕ объекты создаются 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 11:01) [16]Fosgen я тебе верю,просто хотел поделиться глюками связанными с последним снимком :)) Кстати, насчёт дров ты-бы не торопился с выводами,я тоже с чистых систем проверял и причём на разных машинах,благо имею такую возможность на работе,через меня их в месяц в среднем по 30-70 штук - разных конфигураций проходит,по работе так и сяк их тестить приходиться, так что это не пустые слова были...
← →
Conferno (2005-07-30 18:31) [17]Я опять же про тени - тестил редактор у моего друга(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 дней, так что ПЛИз не забрасывайте тему !!! :)
← →
FRick © (2005-08-01 17:42) [18]Когда смотриш на текстуры под некоторым углом, она искажается!
Можно ли как нибуть избавится от етого искожения???
Зарание спасибо!
← →
Fosgen (2005-08-04 09:12) [19]Есть предложение - соберем статистику собственных наблюдений по оптимизированности и устойчивости работы GLScene, ориентируясь на дату последней коррекции разработчиками файла GLScene.pas?
Это поможет сразу определять ошибки свойственные конкретной версии и не тратить время на хождение вокруг да около...
Итак:
GLScene (коррекция файла от 04/09/03) - как вы все понимаете старая версия, но похоже одна из "быстрых" и устойчиво работающих на текущий момент. Конкретных проблем устойчивости не обнаружено.(+++) Не совместима с последующими версиями по наименованиям классов.(--)
GLScene (коррекция файла от 04/12/04) - версия дополненная ODE, GLLensFX, Clothyfy, GLGUILayout,GLScenePFX,GLSceneShaders и т.д.(++) Это конечно очень приятно. По сравнению с вышеописанной "просаживает" производительность в 2-3 раза (без использования новых наворотов), при переносе проги со старой версии - не заработал отлаженный модуль столкновений (хотя примеры вроде пашут), перестала обрабатывать нажатие мыши на TGLHUDSprite (?)(---).
Пишите свои впечатления об этих и других версиях, о переносе программ с версии на версию - с чем столкнулись - что пришлось переделывать. Думаю так сможем определить саму работоспособную версию на текущий момент.
← →
DeadMeat © (2005-08-04 09:46) [20]ИМХО не корректно смотреть дату только по этому файлу.. Ведь исправлению подвержены и другие файлы без участия этого..
Сравнение на производительность лучше проводить какой нить нагруженной стандартной и простой сценой.. Можно даже взять примеры из папки bench
По результатам этих прог уже судить о производительности.. Или ченить свое..
← →
DeadMeat © (2005-08-04 09:47) [21]Да.. И еще.
Я заметил такую особенность, что ФПС зависит от версии (или еще там от чегото) делфи, на которой программа компилировалась.. Или от каких то настроек самой среды.. Это я знаю точно, т.к. проверял.. Поэтому сравнение пускай делает один человек или же на стандартной поставке без подстроек.
← →
Домовенок © (2005-08-04 13:34) [22]DeadMeat (04.08.05 09:47) [21]
Любопытно, и на каких версиях Delphi ФПС выше? На более низких или на более высоких?
← →
DeadMeat © (2005-08-04 15:05) [23]Там хез...
Но я точно знаю, что у одного я брал демку, которую он слепил на 5ой делфе и с каким то настройками компилятора.. Она выдавала около 1200 ФПС.
Ее же я копилирую у себя.. На 6ой.. и все настройки по дефолту.. После этого выдает 700-800 фпс (точно не помню).
Вот и хез теперь.
И такое не один раз было...
← →
Домовенок © (2005-08-05 01:12) [24]DeadMeat (04.08.05 15:05) [23]
А как же конфигурация компьютера? Или ты приносил скомпилированную демку на твоей Delphi к нему на тестирование?
← →
Zer0 © (2005-08-05 01:20) [25]ну если врубить все опцыи дебага в том числе Range checking и Overflow cheking то ессно код будет перегружен лишними проверками и скорость его работы заметно снизится
← →
DeadMeat © (2005-08-05 08:21) [26]Обе версии я запускал у себя
Одну он компилил сам..
Другую я..
Вроде бы я отключал то, что отключил он, но один фиг не помогло...
← →
Fosgen (2005-08-05 09:27) [27]Хорошо - если нельзя ориентироваться на дату коррекции этого файла - где в GLScene"вских файлах посмотреть ее версию? Или таковое невозможно в принципе?
Насчет версий Delphi и вообще - сижу на 5.0, настройки по умолчанию. Вообще, имея конфигурацию машины: GF6800GT, P3000,1Gb RAM - я ни разу не видел в GLScene таких показателей как 700-800 fps! Производительность любой сцены из примеров укладывается в 400 fps. Что конечно несколько удивляет. А ведь у меня мягко говоря не слабая конфигурация...
Так каким образом достигаются таковые результаты?
← →
DeadMeat © (2005-08-05 10:14) [28]Ничего не меняя в делфе (6ая) и имея ATI RADEON 9000 на AMD 1700+ XP при 512 RAM получаю 700-800 ФПС на пустой или не очень сильно наполненной сцене... Кубиков 10 там.. текстурки.. и т.п..
Может быть дело в драйвере.. Я настраиваю всегда на максимальную производительность у себя и ставлю ТОЛЬКО Omega Drivers.
Из примеров уже не помню чего получалось.. Щас просто уже конфигурация другая..
Та прога что я тестил, создавала BLUR (TGLBLur).. и вот она на той конфигурации выдавала мне 1000-1200 фпс.. Перекомпилил этот пример и получил вон мои 700-800...
← →
Xeno © (2005-08-08 07:24) [29]может кинете этот исходник и пускай народ покомпилит в своё удовольствие кто с какой версией сможет :-)
← →
Fosgen (2005-08-08 19:43) [30]Это было бы неплохо. Особенно если поможет разобраться - что же в новой версии так сжирает производительность...
← →
DeadMeat © (2005-08-08 22:36) [31]Исходник чего?
Той проги?
Так это простая прога, которая показывает TGLBlur... В ней ничего нету отличительного..
Дело было именно в делфи.
---
...Death Is Only The Begining...
← →
Санёк (2005-08-09 00:52) [32]Уважаемые, давайте тестировать по такой схеме:
открываем дельфи.
загружаем проект \Demos\bench\megaglasscube
Ctrl+F9;
идем в папку с проектом.
запускаем откомпилированный проект.
смотрим на фпс несколько минут.
постим сюда в следующем формате:
0. Кол-во фпс.
1. Версия дельфи.
2. Версия GLScene.
3. Процессор.
4. Колчество оперативки.
5. Видеокарточка.
6. Версия дров для видюхи.
7. Версия винды.
ну а далее будем разбираться по существу - у кого какие настройки и кто как с бубном пляшет.
для начала нужна статистика.
моя конфигурация такая:
0. 172
1. Delphi 6 Etnerprise Update Pack 2.
2. GLScene_SnapShot_150305.7z
3. Pentium-M Dothan 2MB L2, 1600 MHz.
4. 512 Mb RAM.
5. ATI Radeon Mobility 9700 Pro 128 Mb RAM.
6. Catalyst 5.6 модифицированные при помощи DHModTool.
7. Windows XP Professional SP2.
← →
Домовенок © (2005-08-09 02:10) [33]0. 152 fps
1. Delphi 7 Enterprise
2. Какой SnapShot точно не знаю, брал по ссылке у DeadMeat.
3. AMD Athlon 64 +3000, ~2000 mHz
4. 512 mb ram.
5. ATI Radeon 9800 Pro, 128 mb
6. Catalyst 5.5 (без модификаций)
7. Windows XP Professional SP2
← →
Домовенок © (2005-08-09 02:24) [34]Завтра попробую поставить модификацию Catalyst 5.7 от Omega и GLScene SnapShot от 06.08.05, перекомпилирую демку и напишу какие результаты получатся :)
← →
Xeno © (2005-08-09 05:50) [35]1.90
2.Delphi 6 Enterprise Build 6.163
3.Celeron 2,0/400
4.512 mb pc3200
5.Geforce5500 128 mb
6.NVIDIA v6.14.10.6177, DirectX9.0c
7.WindowsXP-SP2 Prof
Завтра ещё на двух конфигурациях скину...
← →
DeadMeat © (2005-08-09 08:38) [36]0. FPS: 104 - с включенной мирандой, и 112 без нее
1. Delphi 6 Enterprise, Build 6.240, Update Pack 2
2. Тут на работе точно не скажу, но кажется последний.. Дома точнее будет
3. Celeron 2.4
4. 256 Mb
5. GeForce4 MX440
6. Omega 1.6177.. на базе каких ForceWare не скажу.. Но не новые
7. WinXP_SP2 Prof
← →
DeadMeat © (2005-08-09 19:21) [37]0. FPS: 154
1. Delphi 6 Enterprise, Build 6.240, Update Pack 2
2. Тут явно должен быть уже последний
3. AMD64 3000+
4. 1024 Mb
5. GeForce4 MX440 SE
6. Omega 1.6177.. на базе каких ForceWare не скажу.. Но не новые
7. WinXP_SP2 Prof
Это уже дома..
---
...Death Is Only The Begining...
← →
Fosgen (2005-08-09 23:13) [38]0: FPS - 184,04
1: Delphi 5.0 Enterprise build 5.62
2: GlScene - фиг его знает - по ссылке от DeadMeat брал...
3: P-4 3000MHz j530 1Mb L2
4: 1024 Mb
5: GF 6800 GT PCI-Exp 256 Mb
6: nVidia 6.14.10.6697 (шли с видеокартой)
7: Win2000 Prof SP4 build 2195
Только чего-то не доверяю я этим бенчмаркам... Заточить свой движок под свои собственные бенчи - что может быть проще?
А теперь - внимание!
Конфигурация прогона:
0: FPS - 741,42 (!!!!!)
1: Delphi 5.0 Enterprise build 5.62-была выгружена
2: GlScene - разумеется тоже.
3: P-4 3000MHz j530 1Mb L2
4: 1024 Mb
5: GF 6800 GT PCI-Exp 256 Mb
6: nVidia 6.14.10.6697 (шли с видеокартой)
7: Win2000 Prof SP4 build 2195
компилилось на:
0: FPS - 50
1: Delphi 5.0 Enterprise build 5.62
2: GlScene - та самая старая версия, о которой я столько говорю - похоже Release
3: Celeron 1100MHz
4: 512 Mb
5: Radeon 9550 128Mb
6: ATI Technologies Inc. 6.14.10.6497 (шли с видеокартой)
7: Win2000 Prof SP3 build 2195
← →
Fosgen (2005-08-11 08:07) [39]Я так понял что последнее мое сообщение погрузило всех то ли в ступор, то ли в замешательство, судя по отсутствию сообщений. Меня же терзает мысль о том куда девается 70% производительности в новых версиях GLScene и каким образом ее можно вернуть?
← →
DeadMeat © (2005-08-11 08:31) [40]Момент...
Чего то не догнал..
0: FPS - 184,04
1: Delphi 5.0 Enterprise build 5.62
2: GlScene - фиг его знает - по ссылке от DeadMeat брал...Вот это
3: P-4 3000MHz j530 1Mb L2
4: 1024 Mb
5: GF 6800 GT PCI-Exp 256 Mb
6: nVidia 6.14.10.6697 (шли с видеокартой)
7: Win2000 Prof SP4 build 2195
Конфигурация прогона:
0: FPS - 741,42 (!!!!!)
1: Delphi 5.0 Enterprise build 5.62-была выгружена
2: GlScene - разумеется тоже.И вот это
3: P-4 3000MHz j530 1Mb L2
4: 1024 Mb
5: GF 6800 GT PCI-Exp 256 Mb
6: nVidia 6.14.10.6697 (шли с видеокартой)
7: Win2000 Prof SP4 build 2195
Вот выделенные места..
Пакет я так понимаю одинаковый чтоли?
← →
Санёк (2005-08-11 14:00) [41]
> Fosgen (11.08.05 08:07) [39]
собственно да - я так и не понял, какая версия GLScene и откуда такие аоблачные результаты.
попробуй в этой демке увеличить размеры кубов с 5 до 10 - у меня FPS сразу очень очен сильно проседает - буквально до сорока.
← →
Домовенок © (2005-08-11 14:41) [42]Похоже, что Fosgen что-то напутал, было бы здорово, если бы он разъяснил ситуацию.
В общем, как я и обещал, переустановил в начале драйвера, поставил rad_w2kxp_omega_2653_7z_updated - вроде самое свежее из всего того, что попалось. Конфигурация не менялась от моего прошлого поста, но fps вырос до 160. После чего я поставил GLScene SnapShot от 06.08.05 (удалил старые пакеты установленные пакеты из Delphi, и перекомпилировал новые *.bpl), перекомпилировал демку, с теми же драйверами от Omega. Fps остался таким же 160-161.
Вывод из всего этого только такой: драйвера от Omega лучше, чем родные, а в новом SnapShot"e GLScene производительность вроде не упала.
← →
DeadMeat © (2005-08-11 16:49) [43]
Вывод из всего этого только такой: драйвера от Omega лучше, чем родные
Вот!! Вот это я давно всем говорю...
← →
cyborg © (2005-08-12 06:56) [44]Что за омега? Под какую видеокарту? Хочу! :) Давай!
← →
cyborg © (2005-08-12 06:59) [45]А, всё, увидел, ATI оказывается. Уже не хочу :)
← →
DeadMeat © (2005-08-12 08:26) [46]Омеги и под nVidia есть...
← →
cyborg © (2005-08-12 10:14) [47]Я только что ForceWare 77.76 загрузил и поставил, наконец-то в этих версиях появилась принудительная установка частот.
← →
Xeno © (2005-08-12 10:32) [48]омега, это всёго-лишь стандартный драйвер у которого изменены некоторые настройки для улучшения производительности + добавленны некоторые утилиты,это усё можно по вкусу и ручками делать...
← →
Домовенок © (2005-08-14 14:13) [49]Похоже, что теперь Fosgen впал в ступор. А так хотелось узнать, как же он так сделал, что добился таких результатов.
← →
наклззз (2005-08-17 02:45) [50]0.80
1.Delphi 6 enterprise
2.Glscene snapshot 150305
3.AthlonXP2000+
4.196 mb ram
5.nvidia geforce 3 ti 200
6.detonator xp какой-то там, месяца 2 вроде
7.windows xp sr2
← →
ConferNo (2005-08-19 02:17) [51]Ну вот и я! Наконец-то...
Вобщем, протестил megaglasscube и вот что получилось:
FPS: 117
Дельфи: Borland Delphi 7
Процессор: Intel Pentium 4, 2.8 Ghz
ОЗУ: 512 метров.
Видео: Gigabyte ATi Radeon 9200, 128mb
Дрова: ATi Catalyst 5.6
Версия GLScene: брал по ссылке Deadmeat"a
Windows: WindowsXP Prof + Service Pack 2
И вообще мне не нравятся тени(GLShadowVolume) - есть коробка около стены, у нее тень - она проходит сквозь стену. Ну это я так... :)... ниче не поделаешь...
← →
Домовенок © (2005-08-20 02:46) [52]> И вообще мне не нравятся тени(GLShadowVolume) - есть коробка
> около стены, у нее тень - она проходит сквозь стену. Ну это я ?
> так... :)... ниче не поделаешь...
Немного не понял в чем именно проблема у тебя, но сдается мне что, ты просто что-то не так настроил в параметрах ShadoVolume...
← →
Fosgen (2005-08-20 11:08) [53]Приветствую. В ступор не впадал - уезжал на Алтай, там даже электричества нет, не то что и-нета...
Значит так - по поводу "заоблачных" результатов - надеюсь понятно что компилировалась демка под релизом GLScene где-то от 2002 года? Где я брал тот релиз - не помню, помню что по ссылке, которую в необозримом прошлом выкладывал DeadMeat. Прогон получившегося exe-шника осуществлялся на машине, где стоит предпоследний SnapShot (опять же по ссылке от DeadMeat), и разумеется при запуске демки и Delphi и GLScene были выгружены.
Получается что старый релиз создает более (мягко говоря) оптимизированный исполнимый код. Возникает вопрос - что же стало так "кушать" производительность в последних SnapShot"ах GLScene?
В конфигурации прогона с результатом в 184 fps - и компилировалась и выполнялась демка на одной и той же машине с предпоследним SnapShot"ом GLScene.
В конфигурации прогона с результатом в 741 fps, компилировалась на машине с релизом GLScene от 2002 года, а исполнялась на предыдущей описанной конфигурации (только exe-шник).
Надеюсь сейчас понятно описал.
← →
DeadMeat © (2005-08-20 13:32) [54]Хмм... Интересно.
А не могли бы вы протестить это http://www.webfile.ru/469883 на старой и на новой сборках? Просто есть подозрения на изменения самой тестовой программы или же алгоритмов сортировки прозрачных объектов. В этом примере не используется вообще ничего. Только простые кубики и все. Никаких сортировок.
У меня дает:
0. FPS: 203
1. Delphi 6 Enterprise, Build 6.240, Update Pack 2
2. Последняя сборка
3. AMD64 3000+
4. 1024 Mb
5. ASUS ATi Radeon 9550
6. Omega 2.6.53 на базе Catalyst 5.7
7. WinXP_SP2 Prof
И если не сложно, то выложите вашу старую сборку... А то я свои постирал.
Я же выкладываю еще раз (на всякий случай) новую последнюю сборку.. Просто не помню, мож чего там менялось последнее время.
http://www.webfile.ru/469890
---
...Death Is Only The Begining...
← →
Fosgen (2005-08-20 14:51) [55]Старую сборку можно вытянуть с http://sourceforge.net/project/showfiles.php?group_id=29749 - там лежит как релиз от 2002-09-09 17:00 версия 0.9b_full.
← →
Fosgen (2005-08-20 15:02) [56]Значит результаты демки megacube:
Конфигурация прогона:
0: FPS - 1150,4 (!!!!!)
1: Delphi 5.0 Enterprise build 5.62-была выгружена
2: GlScene предпоследний SnapShot - разумеется тоже выгружена.
3: P-4 3000MHz j530 1Mb L2
4: 1024 Mb
5: GF 6800 GT PCI-Exp 256 Mb
6: nVidia 6.14.10.6697 (шли с видеокартой)
7: Win2000 Prof SP4 build 2195
компилилось на:
0: FPS - 60,89
1: Delphi 5.0 Enterprise build 5.62
2: GlScene - та самая старая версия, о которой я столько говорю - Release от 2002 года
3: Celeron 1100MHz
4: 512 Mb
5: Radeon 9550 128Mb
6: ATI Technologies Inc. 6.14.10.6497 (шли с видеокартой)
7: Win2000 Prof SP3 build 2195
Если компилировать на первой конфигурации с предпоследним SnapShot:
0: FPS - 414,33
1: Delphi 5.0 Enterprise build 5.62
2: GlScene - предпоследний SnapShot.
3: P-4 3000MHz j530 1Mb L2
4: 1024 Mb
5: GF 6800 GT PCI-Exp 256 Mb
6: nVidia 6.14.10.6697 (шли с видеокартой)
7: Win2000 Prof SP4 build 2195
Санёк - при увеличении размера (точнее параметра cSize) до 10 результаты следующие:
Конфигурация прогона:
0: FPS - 73,44
1: Delphi 5.0 Enterprise build 5.62-была выгружена
2: GlScene предпоследний SnapShot - разумеется тоже выгружена.
3: P-4 3000MHz j530 1Mb L2
4: 1024 Mb
5: GF 6800 GT PCI-Exp 256 Mb
6: nVidia 6.14.10.6697 (шли с видеокартой)
7: Win2000 Prof SP4 build 2195
компилилось на:
0: FPS - 7,17
1: Delphi 5.0 Enterprise build 5.62
2: GlScene - Release от 2002 года
3: Celeron 1100MHz
4: 512 Mb
5: Radeon 9550 128Mb
6: ATI Technologies Inc. 6.14.10.6497 (шли с видеокартой)
7: Win2000 Prof SP3 build 2195
← →
Fosgen (2005-08-20 15:05) [57]2: Санёк - при увеличении размера (точнее параметра cSize) до 10 и
если компилировать на первой конфигурации с предпоследним SnapShot результаты следующие:
0: FPS - 34,63
1: Delphi 5.0 Enterprise build 5.62
2: GlScene - предпоследний SnapShot.
3: P-4 3000MHz j530 1Mb L2
4: 1024 Mb
5: GF 6800 GT PCI-Exp 256 Mb
6: nVidia 6.14.10.6697 (шли с видеокартой)
7: Win2000 Prof SP4 build 2195
← →
DeadMeat © (2005-08-20 16:04) [58]Скачал GLScene_v09b_Full.zip оттуда..
Поставил..
Открыл пример.. который выложил вам.. т.е. один и тотже что там что там..
Пришлось откорректировать правда GLScene.pas, чтобы ошибку не выдавал на OpenGL 1.1
Так вот:
0. FPS: 186
1. Delphi 6 Enterprise, Build 6.240, Update Pack 2
2. Последняя сборка
3. AMD64 3000+
4. 1024 Mb
5. ASUS ATi Radeon 9550
6. Omega 2.6.53 на базе Catalyst 5.7
7. WinXP_SP2 Prof
Другими словами, на старой сборке но в том же примере ФПС ниже... примерно на 20 попугаев..
Естественно условия были одинаковыми. Было выгружено все, что только можно.. вплоть до файерволла и сервисов некоторых.
---
...Death Is Only The Begining...
← →
DeadMeat © (2005-08-20 16:16) [59]Так... с ФПСом немного приврал в первом случае.. Под новой сборкой.. надо выключить AMALGAMATE у DummyCube.
Тогда тест будет одинаков точно.. А то этой фичи не было в старой версии.. а она добавляет немного ФПСов в некоторых случаях.
Так вот в первом случае ФПС не 203 а гдето 196.
---
...Death Is Only The Begining...
← →
Домовенок © (2005-08-20 16:45) [60]По новой демке от DeadMeat получил такие результаты:
0. 196 fps
1. Delphi 7 Enterprise, Build 4.453;
2. SnapShot от 06.08.2005;
3. AMD Athlon64 3000+ ~2000 mhz;
4. 512 mb;
5. ATI Radeon 9800, 128 mb, 8x;
6. Omega 2.6.53 (Catalyst 5.7);
7. WinXP SP2 Prof.
Химичить с переустановкой Delphi и GLScene было как-то лениво, судя по предыдущим результатам это все напрасно. Просто у Fosgen какая то необъяснимая загадка. :)
← →
Санёк (2005-08-20 19:08) [61]хм....
конфа вот:
0. 254
1. Delphi 6 Etnerprise Update Pack 2 выгружена
2. GLScene_SnapShot_150305.7z
3. Pentium-M Dothan 2MB L2, 1600 MHz.
4. 512 Mb RAM.
5. ATI Radeon Mobility 9700 Pro 128 Mb RAM.
6. Catalyst 5.6 модифицированные при помощи DHModTool.
7. Windows XP Professional SP2.
запускал по ссылке
> http://www.webfile.ru/469883
щас старую версию поставлю - посмотрим чего и как.
> DeadMeat © (20.08.05 16:04) [58]
что конкретно нужно менять, чтобы не было ошибки с OpenGL1.1?
← →
Санёк (2005-08-20 19:36) [62]0. 251
1. Delphi 6 Etnerprise Update Pack 2 выгружена
2. качал вот отсюда http://delphimaster.net/view/9-1123469820/
3. Pentium-M Dothan 2MB L2, 1600 MHz.
4. 512 Mb RAM.
5. ATI Radeon Mobility 9700 Pro 128 Mb RAM.
6. Catalyst 5.6 модифицированные при помощи DHModTool.
7. Windows XP Professional SP2.
← →
Fosgen (2005-08-21 07:25) [63]2: DeadMeat - Не понял смысла тестирования:
0. FPS: 186
1. Delphi 6 Enterprise, Build 6.240, Update Pack 2
2. Последняя сборка на релизе компилилось или как?
3. AMD64 3000+
4. 1024 Mb
5. ASUS ATi Radeon 9550
6. Omega 2.6.53 на базе Catalyst 5.7
7. WinXP_SP2 Prof
Другими словами, на старой сборке но в том же примере ФПС ниже - это как прикрутить к заявленной конфигурации?
Поясните плиз...
На всякий случай еще раз поясняю: У меня две машины. На обоих стоит одна и та же Дельфя, одна и та же windows, только сервис-паки разные. На более слабой стоит старая версия GLScene, от 2002 года. Судя по комплектности пакета - предполагаю что релиз. Без CVS, без Перлиновских наворотов, ODE и половины имеющихся в последних snapshot"ах эффектов. На второй машине (более мощной) стоит предпоследний snapshot. Для получения "заоблачных" результатов я компилирую примеры (которые совместимы по представленным классам) на машине со старой версией GLScene, затем копирую полученный exe-шник на более мощную машину и там запускаю. Если компилировать тот же пример на более мощной машине под предпоследним snapshot"ом то результаты оказываются в 4-6 раз ниже - т.е. привычные для всех Вас цифры. Но я-то привык к производительности старой версии! И мне не понятно, почему новая версия GLScene БЕЗ использования ее новых наворотов за красивые глаза жрет столько производительности! И мне дюже интересно - как это исправить?
Насчет выложить мою старую сборку GLScene - я бы и рад, но не реально мне через модем залить на сайт 3 мегабайта (точнее самораспаковывающийся архив glscene.exe размером 3 046 190). Мне и 200К то проблема залить...
Похоже с такой старой версией (ни одного файла позже 2002 года) кроме меня никто не сталкивался - поэтому никто не знает разницы между тем как GLScene работает и как ДОЛЖНА работать. Разработчики ударились в количество поддерживаемых эффектов в ущерб производительности. Вот вам и тема по оптимизации GLScene...
← →
DeadMeat © (2005-08-21 13:03) [64]Теперь поясню я...
Я скачал старую версию GLScene.. ту которая еще долго лежала на сайте и всех смущала тем, что нет прогресса в его развитии.. Ту самую v09b. Я с нее начинал. Думаю что старее версию использовать не стоит.
Тестирование (последнее) я проводил на ОДНОМ компе. На своем.
Процесс проходил следующим образом.
Бралась демка MegaCube из последней сборки (сборка в моем понятии - это обновление с CVS). Выставлялся AMALGAMATE:=FALSE у даммикуба, т.к. это свойство было добавлено потом.. Оно прибавляет немного попугаев в некоторых случаях.. Когда все чилдрены не подвижны и не меняются. Создает единый БилдЛист и уже работает с ним.. В данном случае прибавляет от 20 до 40 попугаев. В остальном пример одинаков.
Далее...
Берется последняя сборка и устанавливается в мою делфи. Версию я указал выше (Delphi 6 Enterprise, Build 6.240, Update Pack 2).
Ничего не меняя открываю проект с демкой.. компилирую. Выгружаю делфи, миранду, файер, плеер, почтовик.. короче почти все выгружаю.. Запускаю проект фиксирую.. 196 фпс.
Потом...
Берется рання сборка (v09b) и устанавливается. Меняется строка
if not GL_VERSION_1_1 then
raise EOpenGLError.Create(glsWrongVersion);
в файле GLScene.pas, чтобы не выдавалась ошибка про версию OGL.
Компилируется проект (с учетом изменений названий классов и типов.. убирается префикс GL). Опять же выгружается все что можно и запускается.. Замеряем.. 186 фпс.
Вывод: на одной и той же конфигурации (а точнее на одном и том же компе) разница в попугаях между старой и новой версией GLScene равно 10 (примерно).. Не в пользу старой версии. Однако я не думаю что 10 это существенно.. Но все же.
Все настройки в драйвере видео карты у меня стоят на максимум качества графики.
Конфигурация описана выше.
---
...Death Is Only The Begining...
← →
Санёк (2005-08-21 18:01) [65]ну что ж, еще раз приводить результаты уже нецелесообразно - на старой версии GLScene v09b фпс 191 при выгруженной дельфи - разница всего в 20 попугаев, а не в несколько раз.
надо бы с настройками драйвера похимичить....
← →
Санёк (2005-08-21 18:10) [66]
> Fosgen (21.08.05 07:25) [63]
может все же ужмешь свою супер демку (исполняемый файл, выдающий заоблачные результаты) и выложишь его куда-нить?
интересно, сколько будет у меня и у других ФПС.
← →
Fosgen (2005-08-21 20:14) [67]Что интересно - мне никаких таких манипуляций с файлом GLScene.pas делать не приходилось. Просто устанавливал старую сборку под свежепоставленную Дельфи. Не здесь ли собака порылась?
Что интересно, код примеров что из старой версии, что из новой - одинаков. А вод результирующий exe-шник получается 618 Кб (и для megaglasscube и для megacube) из под старой и 515 Кб (и для megaglasscube и для megacube) из под новой. С настройками драйвера на максимум качества производительность прыгает до 830 fps и обратно до 1150 fps.
Постараюсь выложить exe-шники на сайт adm.trening-omsk.ru. Архивированные они по 226 Кб получились. На том же сайте как раз и архив скриншотов того что делаю. Правда не из последней версии - может и его обновлю. Выложу все где-то в ближайшие пару дней.
← →
DeadMeat © (2005-08-21 20:33) [68]
> Что интересно - мне никаких таких манипуляций с файлом GLScene.pas
> делать не приходилось. Просто устанавливал старую сборку
> под свежепоставленную Дельфи. Не здесь ли собака порылась?
Хмм.. Маловероятно...
Однако это может свидетельствовать о том, что OGL у вас старой версии.. Не 2.0.
Потому как я менял строку проверки на версию.. В старой сборке была ошибка (но не в GLScene.pas, а толи в XOpenGL.pas, толи в OpenGL1x.pas) которая не правильно определяла версию OGL.
Разницу в размере можно объяснить тем, что скорее всего некоторый части модулей были распределены между друг другом...
---
...Death Is Only The Begining...
← →
Санёк (2005-08-22 14:21) [69]
> Fosgen (21.08.05 20:14) [67]
эм.....
у меня твои файлы архивированные качаются, но весят по 10-20 клобайт каждый и рар ругается на неожиданный конец архива...
← →
Fosgen (2005-08-22 18:15) [70]Погодите пока, говорю же в течение пары дней выложу... Вам бы такую связь как у меня - не торопились бы качать...
← →
Fosgen (2005-08-24 22:04) [71]Уррра! Все залил. Даже инфу о текущем состоянии своего проекта обновил. Так что заходите - качайте, читайте, смотрите скриншоты.
← →
DeadMeat © (2005-08-24 23:30) [72]Как я собсна и предполагал, у вас версия OpenGL не 2.0.
Вывод: скорее всего у вас либо моросит драйвер либо еще чтото. Потому как с последними драйверами она (библиотека) обычно ставится сама.
Я не смог у себя запустить скомпиленную вами демку из-за старой ошибки GLScene.
---
...Death Is Only The Begining...
← →
Fosgen (2005-08-25 09:30) [73]Может дело в Win2000? Кто-нить не под XP сидит? Мне лично ХР очень не нравится - слишком много косяков и кушает ресурсов. 2000-я в этом смысле на порядок вылизанней.
И к вопросу о - где мне теперича брать сию библиотеку версии 2.0?
← →
Fosgen (2005-08-25 10:30) [74]Залил я демки с отключенной проверкой на версию OpenGL. Пробуйте.
← →
DeadMeat © (2005-08-25 10:37) [75]Мегакуб не качает.. 0 байт говорит.
А МегаГлассКуб качает.
Насчет библиотеки.
Она обычно ставится вместе с последними дровами..
Фиг знает почему у вас не встала..
ЗЫ. Проверять могу только вечером.. дома. Тут не стоит. Хотя МегаГлассКуб дает около 84 фпс на старой конфигурации из поста [36]. Миранда включена.
Один фиг ниже ФПС.
Но дома точно проверю.
← →
Санёк (2005-08-25 10:43) [76]проверил MegaGlassCube - 154 стабильно.
моя компиляция этой демки с последним снапшотом выдает 174.
действительно видимо дело в драйверах.
через пару дней смогу потестить на нормальном компе под управлением Windows 2000.
← →
Fosgen (2005-08-25 12:30) [77]А может все дело в OGL_1_1? А версия библиотеки не с дровами ставится, а с системой. Посмотрите сами - файл opengl32.dll - чисто системный, ставится вместе с виндой. Дрова вообще тут ни при чем. В них даже файлы другие - посмотрите сами какие файлы драйвера ставят. Вы же все под ХР-ой сидите, а я - под 2000-ой, скорее всего в 2000-ой нет поддержки OGL_2_0.
← →
DeadMeat © (2005-08-25 12:59) [78]Хмм.. Видать с 2.0 я погорячился..
Но так или иначе, версия у вас старая. Обновляется (в этом я больше уверен) она с дровами... Ну по крайней мере я так всегда думал...
А насчет 2.0 ошибочка вышла.
Однако факт остается фактом. Да и от системы ИМХО не зависит.. Все от драйвера идет.
Хотя может тут есть люди более квалифицированные чем я в этой области. Пускай лучше они скажут, а то еще глупость выдвину, а вы поверите.. ;)
← →
Fosgen (2005-08-25 23:10) [79]Позвольте не согласиться. С дровами библиотека OpenGL не обновляется - можете почитать в описании той же ХР - как мелкомягкие хвастаются СИСТЕМНОЙ поддержкой OpenGL v.2.0. Кстати, как это ни смешно, но проверка на версию OGL 1.1 наличествует и в GLScene.pas из предпоследнего SnapShot"а.
О чем это говорит? Скорее всего о том что GLScene не оптимизирована для работы с OGL v.2.0... Отчего вы и не можете получить те результаты, что получаю я под 2000-ой со "старой" версией OpenGL... Вот за это я и не люблю ХР.
А драйвера всегда обновляют только файлы отвечающие за взаимодействие системы с железом. Исконно системные файлы (а opengl32.dll является таковым) они не трогают. Проверьте сами - при установке системы и после установки драйверов видеокарты файл opengl32.dll остается одним и тем же.
← →
Санёк (2005-08-25 23:36) [80]
> Fosgen (25.08.05 23:10) [79]
хорошо, положим, ты прав - ХР это отстойная система.
но.
ответь на один вопрос - люди, которые будут играть в твою игру, они что, все под 2000 сидят?
сумневаюсь, ой как сумневаюсь.
дак что делай выводы.
и еще.
по поводу библиотек.
если присмотреться к папке \WINDOWS\system32 , то можно заметить, что там наличествует два файла - atioglx1.dll и atioglxx.dll.
интересно, за что они отвечают, а?
← →
Fosgen (2005-08-26 00:03) [81]Я подозреваю ответственность этих файлов за "сочленение" встроенного в железе OpenGL со стандартной системной библиотекой. Ведь ни GLScene, ни любой другой (не привязанный к конкретному железу программный продукт) не использует эти atioglx1.dll и atioglxx.dll, а использует opengl32.dll. А последний-то каким был, таковым и остался. У меня например эти файлы вообще называются atiglpf.dll и atiglxx.dll. Так что стандартными универсальными библиотеками они просто не могут быть.
А насчет работоспособности программ под ХР - уберите проверку на версию 1.1 и все дела, только вот fps это под ХР не прибавляет - так что не о том разговор. А разговор о том, что во-первых, похоже докопались мы все коллективно до "заточенности" GLScene под версию OpenGL 1.1. Я правильно резюмирую? Скорректируйте если я не прав. Если же я прав, то встает вопрос - что с этим делать и как оптимизировать GLScene дабы она выдавала свою "проектную" мощность и на версии 2.0? Думаю этот вопрос совпатает с темой ветки...
← →
DeadMeat © (2005-08-26 00:22) [82]http://www.realtech-vr.com/glview/
позволит многое узнать про то, что у вас там стоит.. И версию.. и возможности.. и т.п..
564 кб.
---
...Death Is Only The Begining...
← →
DeadMeat © (2005-08-26 00:42) [83]Короче выходит такая бяка..
Опять же только мои предположения.. На истину не претендую.
OpenGL 2.0 это определяет система.. Снесите дрова.. И не будет она это определять..
Ни фич ОГЛ 2.0 ничего от нее не будет.. Это как я понял.
Далее..
Постараюсь найти Win2k с хорошей карточкой.. и потестить там.. Пока такой возможности нет.. но постараюсь.
---
...Death Is Only The Begining...
← →
Coriolis (2005-09-05 21:35) [84]Дак к какому выводу пришли?
Нужно юзать более старую версию что ли? 09bfull ?
← →
Fosgen (2005-09-05 22:56) [85]Народ такое впечатление что закралась деза в Ваши ряды. Драйвера МОГУТ содержать библиотеки ОБЕСПЕЧИВАЮЩИЕ СВЯЗЬ железа с СИСТЕМНОЙ БИБЛИОТЕКОЙ opengl32.dll! Но они никогда не содержали самой этой библиотеки! Эта dll-ка ставится вместе с виндой. Т.к. в ХР-шке имеет место быть opengl32.dll версии 2.0, то и поддержка сей версии наличествует. Например у меня под 2000-ой никаких вопросов про версию вообще не возникало. А все потому что в 2000 библиотека версии 1.1, а GLScene проверяет именно на эту версию (либо не проверяет совсем). А с какого перепугу вы решили что драйвера имеют в своем составе opengl32.dll - не понимаю. У меня дома на одной машине ATi, на другой GF6800GT с родными драйверами - ни в одном комлекте системных библиотек не наблюдается. Так что - кончайте глючить народ по поводу драйверов.
Вообще-то система должна работать след. образом: Стоит железяка, поддерживающая OGL 2.0, ее драйвера об этом сообщают стандартной библиотеке что стоит в системе, если сама библиотека понимает версию 2.0, то как результат система и заявляет о поддержке OpenGL 2.0. Если хоть что-то из вышеперечисленного не может сказать о поддержке OGL 2.0, то вы увидите сообщение о том что имеете только версию 1.1.
Пример: У меня GF6800GT с родными свеженькими дровами (думаю не надо пояснять что OGL 2.0 тут как родной). Но у меня стоит 2000-я с библиотекой версии 1.1. Таким образом никаких функций 2.0 я не имею. Надеюсь доступно объяснил?
Да библиотеку можно скачать, да ее можно обновить просто заменив файл в папках system32 и dllcache (файл не относится к ядру - дает возможность перезаписи в run-time). Но я лично так не делал, потому как мне - нафиг не нать. Тем более что старый релиз GLScene работает с родной dll-кой 2000-ой на ура и гораздо быстрее. В общем - пробуйте на свой страх и риск. А дрова оставьте в покое. Слишком много смотрю на них стали стрелки переводить. И вообще 2000-я рулит!
← →
DeadMeat © (2005-09-06 08:40) [86]Получается что ни одна игра, использующая OpenGL 2.0 не будет работать на Win2k вообще?? И никаких тебе шейдеров?
← →
Frost (Freak) (2005-09-06 09:48) [87]2 DeadMeat:
Ну, допустим, шейдеры появились намного раньше второй версии ;)
← →
DeadMeat © (2005-09-06 10:14) [88]Я про фрагмент и пиксель шейдеры.. короче те, что от второй..
Или я путаю и они тоже до второй версии идут?
← →
Fosgen (2005-09-06 10:18) [89]Идут, идут. Вообще во второй версии не так уж много добавили... А то что игра ПОДДЕРЖИВАЕТ навороты второй версии - совсем не означает что она не работает с версией 1.1. Так что покамисть у меня все работало. Например ПАРКАН 2, который вообще без пиксель шейдеров не запускается.
← →
Frost (Freak) (2005-09-06 12:47) [90]2 DeadMeat:
Почитай о нововведениях в OGL 2.0
http://opengl.org/documentation/specs/version2.0/glspec20.pdf
2 Fosgen:
Я бы не сказал, что добавили не так уж много... :)
← →
Frost (Freak) (2005-09-06 12:54) [91]Особенно радует специальная поддержка аппаратного ускорения DRI в Linux :) Радует, понятно, не жадного Билли ;)
← →
DeadMeat © (2005-09-06 14:17) [92]Frost (Freak)
Спасибо.. обязательно прочту на ночь.
← →
Warstone © (2005-09-06 23:12) [93]Ребята, спасайте... Уже неделю как не могу разобраться с частицами. Надо сделать "выхлоп" из двигатеря звездолёта. Пытаюсь провернуть это с частицами, но: Как их заставить лететь от источника, или просто сделать так, чтоб их координаты не были связаны с источником??? (А то при перемешении источника перемещаются и сами частицы.) Использовал TGLParticles.
← →
Coriolis (2005-09-06 23:48) [94]Как-то ты не по теме...
← →
Fosgen (2005-09-07 00:27) [95]Честно говоря, отстой эти самые TGLParticles... Я вот свою систему сделал - загляденье. И взрывы обалденные и осколки и выхлопы двигателей вот недавно переработал. Ко всему еще и реализовал горение как в "Ил-2:Штурмовик", да и утечки воздуха из корпуса тож неслабо смотрятся...
← →
Warstone © (2005-09-07 17:09) [96]А можно твой механизм посмотреть/использовать в своём проекте, а то я уже ничего в TGLParticles не понимаю, а инфы - нету...
← →
Fosgen (2005-09-07 23:18) [97]2: Warstone - поменяться на что-нить могу. Посмотреть демку взрывов можно на сайте adm.trening-omsk.ru. Там же есть скриншоты с огнем и выхлопами двигателей, туманностями.
Меня лично интересует реализация подобная TGLLensFlare (я сам пользуюсь старым релизом GLScene, там нет этого модуля, а писать самому малость некогда), и может быть (если тут одна идея не получится) спрайтовый интерфейс, который позволяет произвольное расположение кнопок, иконок на экране и обрабатывает клики обоими клавишами мыши.
← →
Coriolis (2005-09-07 23:44) [98]Красивый взрыв. Правда, заметен минус - частицы ты распологаешь рандомом в пределе квадрата, да? Они и рзлетаются квадратом. А вообще красиво.
Можешь хоть намекнуть, как ты это реализовал?
← →
Coriolis (2005-09-07 23:51) [99]О, я по поводу оптимизации GLScene хочу спросить:
Оптимизирует ли GLScene текстуры по размеру: т.е. если есть много мелких текстур, то GLScene их помещает в одну большую. Или нет?
(наболевший вопрос :) )
← →
Fosgen (2005-09-08 10:10) [100]2: Coriolis - Скорее уж я их располагаю в пределах куба. Это и есть намек. :)))
Оптимизацией хранения текстур вроде должен не движок, а программист заниматься. GLScene может хранить все текстуры в одной библиотеке, ее структуру я не разбирал, хотя сомневаюсь что она похожа на "одну большую"...
← →
Coriolis (2005-09-08 15:35) [101]Да не, я не про осколки. гыгы.
Я про сам взрыв. :)
Я не понял, он у тебя анимацией сделан или генерится каждый раз.
Т.е. GLScene не оптимизирует мелкие текстурки?..
А если их полторы сотни, и они все влезут на одну 512х512?
То будет создано 150 текстур? Всместо одной на 512?
Это же грустно...
← →
Fosgen (2005-09-08 22:28) [102]Взрыв - однозначно генерится. Вообще-то он использует одну и ту же текстуру (слегка анимированную), и состоит из 14 полигонов :)), но каждый раз получается разным. А в игрухе что я пишу у меня 9 текстур. Вот разнообразие-то...
Как текстуры будешь хранить - так оно и будет. Запихаешь все в одну bmp-шку - будет одна текстура, только разбирай их оттуда уже сам...
← →
Coriolis (2005-09-08 22:48) [103]Ага, ну я примерно так и думал.
А на счёт текстур - хотелось бы именно автоматом. Вот текстуры модели - это понятно, что одна модель - одна текстура. А текстуры интерфейса? Всякие там кнопочки/рюшечки/палочки/крючёчки, фон окон.
К тому же если размещать текстуры во время загрузки, то получится оптимизация под конкретное видео. Будут создаваться текстуры как можно большего размера, и на них распихиваться картинки.
Это ещё удобно и для художников - им не надо с этим париться - они могут не напрягаясь хранить даже самые мелкие текстуры в отдельных файлах, об их стыковке в одну большую текстуру позаботится сам движок.
← →
Fosgen (2005-09-09 00:19) [104]И интересно что именно ты "примерно так и думал"? :))) Пока что я не только реализации такой как у меня не видел, а даже намеков на идею не слышал - потому так просто и не колюсь...
И как он тебе об этом позаботится? Нет уж лучше о таких вещах я сам позабочусь чем доверять движку. :))) Насчет интерфейса - тут вообще все зависит от того как ты его организуешь... Да и не факт что одна модель - одна текстура. Вот у меня каждая модель состоит из 3-6 3ds-ок, да еще к каждой по 5 текстур. И рпедлагаешь это все в одной картинке хранить? Да ну нафиг. Надо будет - сложу в один файл ресурсов, да и все дела...
← →
Coriolis (2005-09-09 00:58) [105]Хех. "Так и думал" - В смысле что ты натянул на полигоны текстуру. Хотя, не знаю, как можно ещё подобное реализовать :) Ну, может с помощью частиц...
А не колишься - и не надо :!
Так, погоди, что значит "Нет уж лучше о таких вещах я сам позабочусь чем доверять движку. :)))" ?!!! Ты не доверяешь коду, тобой написанному? Хм. Нет, я имею в виду что некий менеджер объектов при загрузке раскидает мелкие текстурки в одну большую. Естественно, он будет их раскидывать _оптимально_ по занимаемой поверхности, чтобы как можно больше вместилось.
Ну и этот менеджер будет помнить смещение для каждой текстуры (и, возможно, её поворот), чтобы как только ты к ней обратишься, он выдал тебе текстуру общую и координаты/размер интересующего тебя участка.
А для моделей - я действительно стормозил. Просто припомнились мои заморочки старые, и я ляпнул.
"И рпедлагаешь это все в одной картинке хранить?"
Ты невнимательно читаешь. Я как раз таки и не предлагаю хранить всё в одном файле, ёлы-палы!!! Как раз наоборот: всё лежит по отдельности!!! Одна текстура - один граф файл. Так художникам легче что-то переделать, изменить размерность тектуры например.
Всё вмести уже сам движок соединяет. Причём при загрузке, исходя из параметров видеокарты (максимальных размеров текстуры).
Во время загрузки он берёт все текстуры, самые частоиспользуемые кладёт вместе (например шрифт, элементы интерфейса, курсоры). А остальные - как ты сам задашь(к примеру задать всем текстурам логический вес и отсортировать по убыванию). Цель всего этого шаманства - оптимизация. Ведь если при выводе отсортировать объекты по используемым текстурам, то получится очень-очень мало переключений между текстурами.
Правда, может возникнуть ситуация, когда такая здоровенная текстура будет подключаться к контексту из-за одного-единственного кусочка на ней... но тут уж ничего не сделать. Разве что можно провести статистику для каждого уровня и для каждой текстуры, чтобы посчитать - сколько раз за кадр используется каждая текстура(естественно на стадии тестирования). И это количество брать за "логический вес" для сортировки.
← →
Fosgen (2005-09-09 10:31) [106]Мда... Так почитаешь твои "наполеоновские планы", так подумаешь, да ну его нафиг такой менеджер... Лучше уж как сейчас - все ручками... Вот именно такому навороченному менеджеру я бы и не доверился... Ну разве уж только мною же и написанному, но вот писать мне его влом...
← →
Coriolis (2005-09-09 12:14) [107]ГЫГЫГЫ :)
Да, планы-то наполеоновские. Но не из-за их нереальности, а из-за "крутости". Но ведь красиво, а? (нет, я не говорю что идея моя, просто это действительно удобно для всех, и главное - для ГП)
Но и ручками нарезать - неудобно же! Вот налепил ты свои спрайты в кучу, штук так под 30. А потом понадобилось или поменять размеры, или вообще убрать один из них. Не, если ты не художник - то конечно, это не твоя проблема. Но художнику-то каково?..
Всё-таки ручками - дедовский метод! (типа провокация ;))
Мне тоже его влом писать ;)
Поэтому и интерисуюсь - не реализовано ли в GLScene подобного.
Вот, например, в движке халфы как текстуры хранятся? Нужели создаются аппаратные текстуры под каждую картинку? Их ведь дофига там, всяких размеров.
А GLScene хотя-бы сортирует объекты перед рендерингом по текстурам? Чтобы каждая используемая текстура вызывалась только один раз.
Страницы: 1 2 3 вся ветка
Форум: "Игры";
Текущий архив: 2006.03.12;
Скачать: [xml.tar.bz2];
Память: 0.83 MB
Время: 0.019 c