Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Способ создания локаций большого размера
GAMEINATOR forums > S.T.A.L.K.E.R. > Мастерская: создание модов для S.T.A.L.K.E.R.
Страницы: 1, 2, 3, 4, 5, 6, 7
K.D.
Известно, что компилятор геометрии в сталкере имеет ограничение по статической геометрии - это 1,5-1,7 млн вертексов. Далее заканчивается виртуальная память, отведенная компилятору. Проблему могла бы решить x64 версия компилятора, но видимо, нам ее в обозримом будущем не видать. Так или иначе, на досуге задался вопросом - нельзя ли объединять _уже_ скомпилированные локации? Ответ: можно. Дабы не быть голословным, вот парочка скринов (соединенная свалка и агропром):




Качество хреновенькое, снимал на дефолтных конфигах ЗП, но суть должна быть ясна.

Если это кому-то интересно, можно будет выложить альфа-версию, кхм, программы-склейщика локаций.
scwosh
Цитата(K.D. @ 07.09.2012, 03:40) *
Если это кому-то интересно,


Издеваешься??? biggrin.gif Конечно, выкладывай! good.gif

Если всё гуд - тогда... даже как-то жалко будет Богдановы труды...
dezodor
my personal opinion based on several years of testing: big maps were never problem for xray (with a decent compiler pc), the only issue is the aimap. current xrai can not compile graph for aimap which is 70-80 mbyte or more (tests with i7, x64 win7, 12gb ram), which is probably enough for 2-3 small sized locations connected together (soc garbage, agro etc...), if all trees, bushes, and small props are also included to the aimap skip-list.
K.D.
dezodor, so, explain, please, how i can compile maps with more than 1,7 million _static_ vertices (not total, not mu). Lot of mappers will thank you smile.gif
scwosh, почему жалко его труды? Для соединения локаций из финалки тулза все равно не подойдет, ибо:
а) невидимые стены вокруг локаций не дадут перейти с одной на другую
б) аи-сетка на локациях будет разделена - слишком уж далеко друг от друга стоят ноды
в) да еще много можно придумать
Так что все равно надо править и перекомпилировать локации.
macron
Цитата(K.D. @ 07.09.2012, 02:26) *
а) невидимые стены вокруг локаций не дадут перейти с одной на другую

Эту проблему возможно как-то еще можно будет решить методом "частичной компиляции", когда компилится только новый level.cform. В остальном, да, пока непонятно как это все склеится. Но фанаты бесшовной зоны уже потирают лапки в предвкушении. biggrin.gif
K.D.
macron, ну, теоретически (теоретически) можно удалить cform-вертексы согласно материала таких стен (material/fake и material/death). Но это все-таки нездорово. Кстати, на кордоне, например, есть псевдо-панорамы леса, выполненные в виде кусков видимой геометрии. Это тоже проблема при объединении локаций финалки. Впрочем, это тоже можно как-то удалить, благо подобная геометрия организована в виде иерархичных огф-моделей.
Тулза задумывалась как инструмент для объединения кусков одной локации. Скажем, сделал маппер локу на пять мильонов вертексов, порезал ее на куски, скомпилировал их отдельно и объединил. Утрирую, конечно, но суть примерно та же)
D1mon
K.D., аи сетка тоже соединяется этой прогой? Или пока только геометрия?
а, видимо соединяется... Ну дак перекомпилить локацию, чуть подправив нужные края для соединения - не проблема... И теперь вопрос - сколько уровней потянет сама игра? biggrin.gif
Veresk
Цитата(scwosh @ 07.09.2012, 02:07) *
Если всё гуд - тогда... даже как-то жалко будет Богдановы труды...

вы несовсем правы, можно даже сказать сильно неправы. Склейка локаций это хорошо, но ... геометрию тоже надо подгонять. Именно в подгонке геометрии (и текстуре террейна) основной труд. А на компил богдановской корсвалки у меня ушло всего ~6 часов.

Цитата(macron @ 07.09.2012, 02:41) *
Но фанаты бесшовной зоны уже потирают лапки в предвкушении.

вы думаете?
jocker_27
Тогда про оффлайн аи можно забыть я так понимаю?
Но идея вообще супер. Выкладывай прогу)
БогДан
По идее - это может упростить "заселение" уровня. Но подгонять геометрию одну к другой все-равно придется в 3д редакторе.
MgVolkolak
Цитата(jocker_27 @ 07.09.2012, 15:55) *
Тогда про оффлайн аи можно забыть я так понимаю?

Ну только если довести все скрипты симуляции жизни до ума. Пару лет назад играя с расширенным алайфом на локации, даже на чистой игре заметил что количество вылетов значительно увеличивается при дистанции онлайн алайфа 500 метров (вместо 150 оригинальных).
scwosh
Цитата(Veresk @ 07.09.2012, 10:26) *
ушло всего ~6 часов.


Это на хае что ли? Маловато что-то... Как так?
БогДан
Там симстема - ракета biggrin.gif
dPlayer
Цитата
Как так?

Да сервак они юзают. Толи свой, толи втихушку чьей-то компании. А тем временем какой-нибудь сайт тормозит и не грузится biggrin.gif
K.D.
Как-то всех не туда понесло. Речь не о "трудностях" соединения локаций финалки, а о том, что теперь можно делать локации, не задумываясь об ограничениях компилятора геометрии. Вот D1mon правильно вопрос обозначил - можно будет узнать, каково ограничение самой игры на размер уровня.
scwosh
Цитата(K.D. @ 07.09.2012, 18:24) *
каково ограничение самой игры на размер уровня


Но твои то собственные предположения на этот счёт какие?
БогДан
K.D., попробуй методом тыка. Практика всегда лучше теоретики. Присоедени 3,4. А дальше как карта ляжет.
БогДан
Цитата(dPlayer @ 07.09.2012, 15:22) *
Цитата
Как так?

Да сервак они юзают. Толи свой, толи втихушку чьей-то компании. А тем временем какой-нибудь сайт тормозит и не грузится biggrin.gif


Помните, Google, в одно время висел? laugh.gif
K.D.
scwosh, я считаю - пока оперативка не кончится, в остальном ограничений нет.
БогДан, сначала надо допилить утиль, а потом уже тратить время на подобное)

Вот, играйтесь. Временно отключена склейка карты дитейлов и аи-сетки. Все остальные компоненты локаций обрабатываются.
Использование:
1) поправить путь до распакованной геймдаты в fsmerger.ltx
2) поправить батник и запустить его.
примерный текст батника: location_merger -parent l02_garbage -child l03_agroprom -x -675.722 -y 1 -z -114
parent, child - объединяемые локации
x, y, z - смещение центра ббокса второй локации относительно центра ббокса первой. Ну или проще, смещение координат вертексов локации. Введено как костыль для тестирования, правильно подготовленная в майке геометрия не нуждается в задании смещения.
kiperenok
Можно подогнать в 3дс максе террайны локаций, убрать лишнее, затем каждую локу скомпилить отдельно и уже потом этой прогой склеить !
RedMagic
Не понимаю что вы всё говорите про склейку...
Намного проще просто соединить локации чтобы вдали было видно её, или вообще не видно, а для переходы оставить как есть. В таком случае можно не морочится над склейкой, и переходы между локациями будут мгновенными (ну почти).

Зато, я так думаю, можно создать свою "полностью безшовную зону". Если данная технология окажется стабильной и приемлемой - можно потом сгрупироватся, создать карту зоны, потом поделить её на квадраты (для удобства) и пусть каждый делает свой квадрат, а аи сетка... удалить её вообще и сделать карту для МП, попутно оптимизировав сетевой трафик и сделать хотя бы 64/64 игрока. Ех, мечты, что то понесло меня.
jocker_27
Цитата(STALKER--2011 @ 07.09.2012, 17:04) *
Не понимаю что вы всё говорите про склейку...
Намного проще просто соединить локации чтобы вдали было видно её, или вообще не видно, а для переходы оставить как есть. В таком случае можно не морочится над склейкой, и переходы между локациями будут мгновенными (ну почти).

Зато, я так думаю, можно создать свою "полностью безшовную зону". Если данная технология окажется стабильной и приемлемой - можно потом сгрупироватся, создать карту зоны, потом поделить её на квадраты (для удобства) и пусть каждый делает свой квадрат, а аи сетка... удалить её вообще и сделать карту для МП, попутно оптимизировав сетевой трафик и сделать хотя бы 64/64 игрока. Ех, мечты, что то понесло меня.

А зачем АИ сетку удалять? Поставить гулаги и зашибись! Можно ммофпс делать.
kiperenok
K.D. а ФПС сильно проседает ?
hi_flyer
Цитата(kiperenok @ 08.09.2012, 00:21) *
K.D. а ФПС сильно проседает ?

Да по идее не должно (сам делал карту из билдовских кордона, свалки, дарквалея) фпс такой же что и в обычной игре.
Кстати, кто нибуть смог уже склеить что нибуть?
Билдоман
А долго это дело грузится?
K.D.
Билдоман, лично я тестировал в режиме загрузки одной карты без скриптов, аи и прочей ерунды. Тут ничего сказать нельзя. Грузиться, конечно, будет чуть подольше исходных локаций - читается больше буферов геометрии.
Билдоман
Цитата(K.D. @ 08.09.2012, 22:14) *
аи


по поводу AI и детейлов: когда будет активно? Можешь завтра новую версию дать? PS: Теперь этот двиг (даже начала 2005 года) может щеголять бесшовностью... когда-то об этом могли только мечтать... smile.gif
K.D.
Билдоман, завтра? biggrin.gif Я эти опции отключил не от злодейства, а потому что склейка аи-сетки и карты дитейлов глючат smile.gif Как починю, так и выложу.
Vincent Vega
Блин я представил зону, даже склеенные финальные локации будут представлять огромный мир! Прикольно, квест берешь найти что-нибудь в Припяти и пошел с кордона в дальний путь..
Rolan96
OMG. Если на локациях грамотно расставить сектора и порталы, то будет вам счастье. То что делает с ними компилятор, если изначально их не ставить, не совсем то, что нужно. Тут вручную все расставлять надо.
__________________
По сути, если прикинуть по карте в PDA, то расстояние между локациями довольно-таки большое, его тоже в планах смоделировать?

Цитата(scwosh @ 07.09.2012, 02:07) *
Склейка локаций это хорошо, но ... геометрию тоже надо подгонять. Именно в подгонке геометрии (и текстуре террейна) основной труд.

В том-то и дело, что это займёт очень много времени и проект может перекочевать на полку.
K.D., скажите на чём написана ваша программа?
ziStam
K.D., bravo7kg.gif А сектора с порталами, хомами,саунд оклюдерми и носанами эта прога тоже соединяет?
Билдоман
Цитата(K.D. @ 08.09.2012, 23:55) *
Я эти опции отключил не от злодейства

shifty.gif
И что там за баг на стадии объединения level.cform?

Trollz0r
Цитата(Rolan96 @ 09.09.2012, 09:37) *
K.D., скажите на чём написана ваша программа?

На вижуал бейсике biggrin.gif
z_offtop.gif
K.D.
Rolan96, какой проект? я пишу программу, а объединение локаций - не моя забота.
Билдоман, а, забыл сказать. В level.ltx родительской локации обязательно должна быть секция [level_map] с параметром texture.
RedPython, biggrin.gif
ziStam, конечно. Если не соединить сектора с порталами, просто ничего не будет работать. Движок видимую геометрию от дефолтных секторов грузит.
autistic
Цитата(RedPython @ 09.09.2012, 12:03) *
На вижуал бейсике

на vb6 очень много чего написано было в свое время smile.gif
Билдоман
Забавно в 2205 летать по трём объединённым локам))
Билдоман
Есть проблема с glow-текстурами. Они иногда путаются (используется другая). Исправимо?
K.D.
Билдоман, ы, точно, индекс текстуры не меняется. Поправлю.
Скиф
Билдоман, запили видео, интересно будет глянуть. smile.gif
Билдоман
Цитата(Скиф @ 09.09.2012, 19:25) *
запили видео


Там уныло, я их не подгонял. =( Сейчас вот с Агропрома скринов накидаю))

Красот не скринил, скринил сам факт объединения и тот самый баг smile.gif





hi_flyer
Билдоман,
Ну а как насчёт максимальной выносливости движка? Сколько карт тянет одновременно ? smile.gif
Билдоман
Цитата(hi_flyer @ 09.09.2012, 21:07) *
Сколько карт тянет одновременно ?


Так ещё и не проверил, но скорее всего он сможет если не все, то половину карт ТЧ точно. (Хотя сам надеюсь на то, что и все карты трилогии влезут)))
RayTwitty
Попробуйте ЧАЭС1 и ЧАЭС2 соединить из ТЧ. Как встанут интересно.
hi_flyer
Билдоман,
Ох незнаю. Вроде как вся геометрия сразу загружается в оперативу, то оперативы этой надо будет огого.
Modera
Только сейчас заметил, на текстуре ЧМЭ3 написано ЧМО3? blink.gif
hi_flyer
Потестил немного на 2205.
В целом полёт нормальный:
кордон
свалка
агро
подземка агро
бар
дарквалей
милитари, работали в одной карте вполне стабильно. На всякий поставил размер видеобуфера 4096.
K.D большой респект! smile.gif
Кстати оперативы жрёт стандартно на уровне ~700 mb ohmy.gif
Билдоман
Цитата(hi_flyer @ 09.09.2012, 22:26) *
Кстати оперативы жрёт стандартно на уровне ~700 mb


Так я и думал, рентген локи всегда умел резать. smile.gif

Цитата(hi_flyer @ 09.09.2012, 22:26) *
K.D большой респект!


Респектище! smile.gif
K.D.
Цитата(hi_flyer @ 09.09.2012, 22:26) *
Кстати оперативы жрёт стандартно на уровне ~700 mb
А если обычный кордон запустить? В предыдущем посте ты правильно предположил - вся геометрия сразу грузится в память. Потребление оперативки _должно_ быть больше, никакой подгрузки в сталкере нет.
RedMagic
Цитата(K.D. @ 09.09.2012, 21:54) *
Цитата(hi_flyer @ 09.09.2012, 22:26) *
Кстати оперативы жрёт стандартно на уровне ~700 mb
А если обычный кордон запустить? В предыдущем посте ты правильно предположил - вся геометрия сразу грузится в память. Потребление оперативки _должно_ быть больше, никакой подгрузки в сталкере нет.

Но вроде есть во первых - упрощение геометрической модели на низкополигональную, и обрезка лишней геометрии в определённом радиусе.
PS: Может быть неверно т.к. я все технические тонкости не знаю.
hi_flyer
K.D.,
В сравнении с обычным кордоном потребление оперативы увеличилось на ~150 мб.
Думаю двиг без проблем потянет все локи smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.