HLFX.Ru Forum Страницы (2): [1] 2 »
Показать все 26 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Технические вопросы (https://hlfx.ru/forum/forumdisplay.php?forumid=20)
-- Самая большая карта (с большой проблемой) (https://hlfx.ru/forum/showthread.php?threadid=5490)


Отправлено Reyond 18-04-2020 в 08:33:

Самая большая карта (с большой проблемой)

Друзья, всем добрый день! Это длинный пост и сразу скажу что он не связан напрямую с маппингом для игр на движке GoldSrc и это скорее крик о помощи! Я прошу вас прочитать мой пост до конца, так как даже если вы не знаете как мне помочь, то я думаю вам будет интересно узнать что я пытался сделать и что у меня не получилось.

Начнем с того, что у нас есть небольшое сообщество, где мы создаем небольшие моды на Quake и его форки. Как-то раз я наткнулся на мод под названием Freecs. Он заключался в том, что добавлял в форк FTE Quake поддержку CS 1.5. То есть буквально можно было бы положить оригинальную папку игры cs 1.5, и из нее считывались все модели, звуки, партикли, спрайты, текстуры и т.д. С той лишь разницей, что все это запускалось на более продвинутом движке. Для меня большой плюс был в том, что весь код написан на языке QuakeC, на котором написаны многие наши моды и с которым хорошо знаком один из разработчиков в нашем сообществе. Этот мод просто перевернул моё сознание. Можно было взять ту самую кс, и создать в ней почти что угодно. Я сразу представил себе огромную карту, с хорошей (в сравнении с оригинальной cs 1.5/1.6) графикой, с различным транспортом, с масштабным дезматчем. С тех самых пор мы написали небольшой концепт и сделали дезматч со спавном оружия в случайных местах, с системой редкости оружия, с отдельными предметами патронов, с дропом денег и для дальнейшего развития не хватало только большой добротной карты. Вот тут и есть вся загвоздка...

Я решил делать карту в формате Quake 3 с использованием Quake 3 шейдеров. Карта представляет из себя город, разделенный на два района. Сначала я сделал район, который состоит в основном из "домов-коробок", покрытых одной текстурой. Другой район состоял из детальных домов, которые выглядят примерно вот так:



Здесь вы можете видеть примерные размеры карты:



И ещё пара скриншотов:











Мы активно использовали Quake 3 шейдеры, например здесь даже занавески в окнах качаются:







Некоторые здания являются копиями реальных.

Например, усадьба Абрамцево:



Или здание Казанского Федерального Университета:



Проблема в том, что попытка создать на движке не предназначенном для открытых карт, открытую городскую карту, привело к тому, что FPS на карте стал дико проседать. Огромное количество деталей, районы, состоящие из десятков элементов фасадов домов - все это сильно влияло на производительность. Стало понятно что продолжать делать карту без оптимизации просто невозможно и нужно что-то с этим делать. В качестве решения решили сделать систему LOD (Load on distance). Она заключалась в том, что подменяет детальную модель на её низкополигональную копию. И мы-таки её сделали. Прямо через QuakeC, а как она работает можете посмотреть у меня на канале:

ВИДЕО ТУТ

Эта система хороша тем, что реально повышает FPS, и при этом легко внедряется в любые Quake форки. Соответственно мы сделали каждый дом в новом районе bsp моделькой, но столкнулись с большой проблемой - компилятор q3map2 не может включить в обработку освещения наши дома. Получается так, что мы просто не можем сделать карту с адекватным lightmap освещением. А без него карта не смотрится никак от слова совсем. Во-вторых в quake 3 нельзя было делать бсп модели, а соответственно в любых редакторах для quake 3 нельзя увидеть в редакторе правильно ли вы выставили bsp модель. Из-за этого карту приходится комплировать 20 раз на день и каждый раз проверять в игре в правильном ли месте ты выставил дом.

Тем не менее, я очень надеюсь, что на этом форуме найдутся люди, которые раньше уже умели работать с компиляторами, вполне возможно вы работали с плагинами для radiant, возможно редактировали код trenchbroom. Если вы знаете как мне помочь, то очень прошу помогите мне сделать, чтобы компилятор q3map2 мог обрабатывать освещение для моих lod'ов. Если кто-то знает как научить radiant отображать бсп модели в режиме quake 3, то я так же приветствую любую помощь с этим. Да и вообще я был бы рад услышать что вы обо всем этом думаете.

P.S. Для работы над этой картой постаралось немало людей, которые потратили много времени, сил, нервов. Некоторых мапперов мне пришлось обучить с нуля. К многим людям, кто раньше работал с компиляторами я уже пытался обращаться, но получал либо отказ, либо игнорирование. Прошу, если вы можете хоть как-то помочь, то это будет очень важно для меня, да и для всех, кто работал над этой картой. Большой респект вам, если дочитали это до конца.


Отправлено Дядя Миша 18-04-2020 в 09:11:

FTE он же дико нестабильный сам по себе, а поддержка халфы там еще глючнее чем сам FTE. Я вообще удивляюсь что вы на этой связке смогли сделать что-то достойное. Наверное у вас в запасе было много жизненных сил.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Reyond 18-04-2020 в 09:40:

Дядя Миша, спасибо, что ответили! Эту карту мы делали очень долго, в свободное от работы/учебы время. Сил потрачено немерено. Да, поддержка counter-strike 1.5 доделана не до конца, возможно мы откажемся на мод именно для нее, возможно свой самостоятельный мод сделаем. Но саму локацию мы очень хотим закончить. Двигаться дальше без поддержки освещения наших лодов в компиляторе мы просто не можем. Нам очень нужна помощь с этим. К кому мы уже только не обращались, но нам советовали обратиться именно на форум hlfx и нам говорили, что возможно Дядя Миша с этим сможет помочь.

Не могли бы вы, пожалуйста, помочь нам сделать компилятор? У меня есть даже мод с тестовой картой (потому что вся городская карта со светом компилится несколько суток). Не могли бы вы, пожалуйста, посмотреть его? Если нужно я могу скинуть всю карту целиком. Можете использовать карту и модели домов где угодно для любых своих разработок, только напишите.

Вот ссылка:

https://drive.google.com/file/d/1GE...ohksaPrkiJ/view


Отправлено Дядя Миша 18-04-2020 в 10:00:

Сделать я конечно могу, но бесплатно этим заниматься точно не буду.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 18-04-2020 в 10:13:

Reyond не хотелось бы чтобы ваша работа утекла куда-то раньше времени, поэтому ссылку на неё лучше либо удалить и послать в ЛС, либо обернуть в тэг [hidе] [/hidе]

Добавлено 18-04-2020 в 17:13:

п.с. а какого размера вся карта?


Отправлено FiEctro 18-04-2020 в 10:21:

Единственное что тут можно сделать, так это опустить потолок до уровня крыш, а от самих крыш выстроить стены с текстурой неба до потолка, чтобы улицы превратились в закрытые корридоры. Типа как здесь:


Плюс использовать порталы, чтобы отсекать геометрию сразу за углом здания. Вбейте себе и запомните как правило, в бсп нет понятия открытых пространств, виз заточен больше под корридорообразные пространства. И чем меньше в них обзор, тем меньше объектов будет отрисовываться. Поэтому даже если это город с улицами, сначала постройте закрытые корридоры из коробок и только потом на их стены лепите фасады.

Потом у тебя вся детализация фасадов тоже сделана брашами, это плохо. Рамы и перила особенно. Убери эту фигню и замени её либо на модели, либо на текстуры с прозрачностью. Всякую мелочь преврати в фанк_детейл или илюженари.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено Reyond 18-04-2020 в 10:27:

Crystallize вы можете спокойно скачать файл, там пока просто один дом на асфальте. Можете тоже скачать и посмотреть как работает LOD


Отправлено ncuxonaT 18-04-2020 в 13:04:

FiEctro ну так они и используют лоды, потому что виз не поможет


Отправлено FiEctro 18-04-2020 в 13:28:

ncuxonaT
Здесь как мёртвому припадки эти ваши LODы.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено ncuxonaT 18-04-2020 в 13:38:

FiEctro ну не скажи, 50 треугольников против 16к на каждый дом - это неплохо


Отправлено Дядя Миша 18-04-2020 в 14:55:

Цитата:
FiEctro писал:
в бсп нет понятия открытых пространств

Ну зачем глупость говоришь. БСП - это метод индексации пространства, ему всё равно, открытое оно, закрытое, да хоть какое.

Цитата:
FiEctro писал:
виз заточен больше под корридорообразные пространства

На открытом пространстве его можно заставить работать, например фтумани - отсекать по дальности. В кутри были такие карты.

Ну и да, вон выше правильно говорят, что дома оптимальнее делать не брашами. Но там свои заморочки, нету нормальной коллизии, стрипификация тоже весьма условная.

Добавлено 18-04-2020 в 17:55:

Там с этим отсечением по дальности тумана какая хитрость - принудительно включается glClear и пустые места окрашиваются в цвет тумана.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено FiEctro 18-04-2020 в 15:35:

Мне вот интересно другое, а чему там глючить? По современным меркам брашевые карты имеют смехотворное количество полигонов. Лайтмапа жрёт?

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено Reyond 18-04-2020 в 16:11:

FiEctro, спасибо за то что предложил оптмизировать стандартным hl/quake способом. Но в моём случае это не работает, потому что слишком большая детализация. А закрытие крыш сделает город недоступным для просмотра с высоких зданий. Из-за этого мы изменили сам принцип оптимизации, чтобы он был больше похож на то, что используется в играх с открытыми пространствами. Откуда у вас такая не любовь к лодам мне непонятно. Лоды же работают и работают хорошо, уменьшается количество полигонов, которые одновременно можешь увидеть, причем очень существенно. ФПС от этого заметно возрастает. Другое дело, что мы не можем освещение для них сделать, это да.

Карта брашевая, но очень детальная, я же написал в первом посте.


Отправлено Дядя Миша 18-04-2020 в 16:50:

Цитата:
FiEctro писал:
По современным меркам брашевые карты имеют смехотворное количество полигонов

Рендеринг неоптимизированный для современного конвейера. Причём там нельзя просто в каком-то одном месте подшаманить, тут весь пайплайн надо менять. Собсно, чем я щас и занимаюсь для NT. Может быть потом напишу большую статью о причинах тормозов.

Цитата:
Reyond писал:
потому что слишком большая детализация

Слишком большая - это сколько полигонов в кадре? Миллиард?

Цитата:
Reyond писал:
Откуда у вас такая не любовь к лодам мне непонятно

Лоды для программируемого пайплайна не дают особого выигрыша, поскольку, там основная нагрузка идёт на пиксельный конвейер, а он и так прекрасно лодится через мип-мапы текстур. С лодами сейчас используется обратный механизм - увеличение числа полигонов от базовой модели. Ну впрочем всё это не так уж существенно, просто потому что в этих форках кваки неоптимальный рендеринг, оно в первую очередь из-за этого тормозит. А неоптимальность рендеринга еще и частично обусловлена устаревшими форматами. Но не только.

Кстати какой размер в юнитах у твоей карты?

Добавлено 18-04-2020 в 19:50:

Вообще эти брашевые домики можно было попробовать из bsp сконвертировать в ase (есть у q3map2 такой ключ), а потом вставить на карту при помощи misc_model у который выставлен спаунфлаг 4 (коллизия).
И будут конечно тени и свет от них нормальный. И кое-какая коллизия.
Лодов конечно не будет, но зато эти модельки худо-бедно стрипифицируются и наверное будут рисоваться быстрее чем сейчас.
BSP для моделей не годится абсолютно.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено ncuxonaT 18-04-2020 в 16:50:

Человек говорит, что уже сделал ЛОДы и фпс вырос до приемлемого уровня, нужно только освещение посчитать. А ему начинают рассказывать, что это всё неправильно.


Временная зона GMT. Текущее время 23:57. Страницы (2): [1] 2 »
Показать все 26 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024