Aynekko писал: Это очень радует, хотелось бы, чтобы ксашмод обновлялся параллельно XashNT. Лукавить не буду, тут чисто мой шкурный интерес, т.к. у меня на нем весь мод базируется и переезжать я никуда не буду (даже на прайм).
Так сам же пишешь у вас своя ветка есть с уже пофикшенными багами. Зачем дёргать ДМ?
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro писал: Так сам же пишешь у вас своя ветка есть с уже пофикшенными багами. Зачем дёргать ДМ?
У вас - это у кого? У меня свой форк (заточенный конкретно под мод), у прайма свой (причем там клиент по большей части параноя 2, а сервер ксашмодовский).
Есть баги, которые я не в силах пофиксить из-за недостаточных знаний/умений, а SNMetamorph занят другим и ему не до этого. Мне больше не к кому идти.
Дядя Миша писал: в частности поддержка формата .csm.
Так что он в итоге умеет вообще? Когда я последний раз о нём слышал, он кроме хранения геометрии + кастомной даты никаких функций больше не предоставлял.
Хранит статичную геометрию - позицию вертекса, нормаль, цвет и два UV-канала, для текстуры и лайтмапы. Компилятор уровней, загружая эту модель дополннительно её обрабатывает - генерирует развертку лайтмапы.
Цитата:
SNMetamorph писал: кроме хранения геометрии + кастомной даты никаких функций больше не предоставлял.
А какие функции он по твоему должен ещё предоставлять?
Дядя Миша писал: Хранит статичную геометрию - позицию вертекса, нормаль, цвет и два UV-канала, для текстуры и лайтмапы. Компилятор уровней, загружая эту модель дополннительно её обрабатывает - генерирует развертку лайтмапы.
Кстати, а что с порталами? У меня была такая мысль, а что если разбивать основной уровень изначально на несколько сеток? Возможно это как то автоматизировать? Для брашей можно сделать какой нить VisGroup по аналогии с обычными группами в хаммере. А компилятор просто будет записывать кто кого видит, а кого нет.
Тогда и детайлы делать не нужно.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Компилятор виз изобретен заново. А вообще интересное стремление работу компьютера перекладывать на человека. Хотя надо-то наоборот. Каждый раз в этом контексте вспоминаю свое стремление подрисовать лайтмЭпы в фотошопе.
ZGreen писал: Компилятор виз изобретен заново. А вообще интересное стремление работу компьютера перекладывать на человека. Хотя надо-то наоборот. Каждый раз в этом контексте вспоминаю свое стремление подрисовать лайтмЭпы в фотошопе.
На больших картах с большой детализацией врядли кармаковский виз будет работать эффективно, тоже касается и лайтмап в том виде в котором они хранятся в БСП. Оно больше было заточено под софтварный рендер. Да и не надо лукавить, всякие хинты и порталы тоже надо расставлять в первой и второй халфе, просто все кладут на это болт.
ДМ рассказал что можно определять детайлы по разделению их от общей сетки, а я предложил дальнейшее развитие.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro писал: Для брашей можно сделать какой нить VisGroup по аналогии с обычными группами в хаммере
Уже сделано. Правда он пока используется для принудительного разбиения лайтмап чтобы она сама на себя не замкнулась. Это довольно редкая ситуация, но встречается. Например в кваке на e1m1, там где этот спуск с кнопками. Лайтмапа на дорожке замыкается сама на себя, я попытался всё это автоматически разрулить, но в итоге ерунда получилась. То есть разрулить то конечно возможно и даже надёжно, но лайтмапа начнёт слишком часто прерываться, эта штука перестраховывается. Будет больше швов. Хотя по логике эти швы там где они в принципе и должны быть, но всё равно не слишком красиво - ведь их может не быть совсем.
Цитата:
FiEctro писал: а что если разбивать основной уровень изначально на несколько сеток?
Если ты лепишь домики на ландшафт, то технически ты уже разбил уровень на сетки. Каждый домик - это сектор. Остаётся только в оконные и дверные проёмы поставить портал-браш. Что собственно и было сделано в сталкере.
Но там тему недокрутили до конца, у них же нет BSP-дерева.
Нам просто надо проанализировать эти домики и пометить structural-поверхности. И пропустить их в дерево. Ну и собственно всё, дальше дерево строится, как будто мы имели дело с обычными брашами, корректно домики попадают в дерево и их внутренности образуют новый сектор. Весь вопрос только в том, как отделить структурные полигоны от детальных и не пропустить часть структурных. Простой пример - стены у домика однозначно станут структурными полигонами, но есть ещё к примеру поколодники, которые должны вровень выпирать, а это, сами понимаете, не такое простое дело.
Если поколодник не попадёт в структурные брашы, то внутренность домика не станет герметичной и новый сектор не образуется.
Конечно когда для ксаша будут делать полностью новые уровни, то структурную геометрию могут явно отделить в новую группу и пометить её - это проще и надежнее. Но и автоматические детекторы тоже должны присутствовать. Чтобы был выбор.
К примеру вы в курсе, что компилятор у меня автоматически определяет какие полигоны осветить повертексно, а на какие наложить лайтмапу?
Нет, ему можно это явно указать, но он умеет и сам. Все сталкеровские карты скопилены именно с автоматическим определением повертексное\лайтмапа, можете включить показ лайтмапы и убедиться что механизм отлично справляется. А ведь это гораздо сложнее чем отдуплить структурные поверхности от детальных.
Цитата:
FiEctro писал: На больших картах с большой детализацией врядли кармаковский виз будет работать эффективно
На аутдор-сценах никто виз и не использует. Порталы + HOM, иначе никак.
Причём я планирую HOM-геометрию тоже генерировать автоматически, это не так уж и сложно.
Добавлено 17-11-2023 в 13:12:
FiEctro я твою картинку не понял. Каким образом у тебя Сетка 1 попадает во фрустум и не рисуется при этом?
И где в таком случае порталы? То что сетки друг с другом соприкасаются не значит ничего. Равно как и форма сектора может быть произвольной, втч и вогнутой, это ни на что не влияет.
Добавлено 17-11-2023 в 13:20:
Вот картинку нарисовал, чтобы лучше понимали как устроена портально-пассажная система в XashNT.
Зелёная точка - игрок, жёлтые линии - фрустум, красные полоски - порталы.
Игрок видит сектор1 (потому что он сам находится в нём), сектор 2, сквозь портал, а вот сектор 3 - не видит, потому что портал между вторым и третьим сектором во фрустум не попал.
В той же кваке виз работал иначе. Там угол обзора брался равным 180 градусов, т.е. из первого сектора третий было видно ВСЕГДА.
Ну а в ксаше даже второй сектор может исчезнуть из поля видимости, если игрок отвернётся.
Добавлено 17-11-2023 в 13:22:
Важно понимать, что сектор это полувиртуальное понятие, он как бы не существует в реальности. От него остаётся только уникальный номер, а других характеристик он не имеет. Но зато и батчи геометрии знают, к какому сектору они принадлежат и порталы это тоже знают.
А большего и не требуется.
Добавлено 17-11-2023 в 13:23:
Ну и да - вся геометрия рубится по порталу, если в материале не включён запрет на это дело. Абсолютно вся - колоизационная, брашы, мешы, патчи, ландшафты, дисплейсменты.
Добавлено 17-11-2023 в 13:27:
Цитата:
Дядя Миша писал: На аутдор-сценах никто виз и не использует
Тут требуется пояснение. В XashNT на данный момент отсечение геометрии это фрустум + порталы, в дальнейшем добавится ещё HOM.
Иными словами вот те уровни квейка - они все вручную портализованы.
Причём там как получается - если портал поставить прямо внутрь двери, то дверь его подхватывает и начинает открывать и закрывать вместе с собой.
Но можно и без дверей ставить, просто в дверных проёмах.
Я бы с удовольствием эти порталы расставил автоматически, но пока не могу подобрать необходимые допущения, это ведь далеко не так просто, как кажется. Когда у меня будет собственный редактор и я смогу визуализировать свои эксперименты (да, вся автоматика, которая есть сейчас была сделана вслепую, просто вследствии чёткого понимания, как это будет работать), то смогу сделать гораздо более впечатляющие анализаторы.
Дядя Миша писал: FiEctro я твою картинку не понял. Каким образом у тебя Сетка 1 попадает во фрустум и не рисуется при этом?
И где в таком случае порталы? То что сетки друг с другом соприкасаются не значит ничего. Равно как и форма сектора может быть произвольной, втч и вогнутой, это ни на что не влияет.
В целом наверное да, немного неправильно. Но идея не в фрустуме. А в том чтобы разбивать основной меш на сегменты ещё на этапе создания карты.
Цитата:
Дядя Миша писал:
Уже сделано. Правда он пока используется для принудительного разбиения лайтмап чтобы она сама на себя не замкнулась. Это довольно редкая ситуация, но встречается.
Это как? Когда её в кольцо запирает и начинает выпучивать как потолки на спонзе?
Цитата:
Дядя Миша писал: То есть разрулить то конечно возможно и даже надёжно, но лайтмапа начнёт слишком часто прерываться, эта штука перестраховывается. Будет больше швов.
В сети есть бесплатные разворачивальщики - Xatlas например. Кармаковская система больше под софтварный рендер заточена, не факт что она вообще способна работать без разбиения всего и вся. Хотя у Xatlas тоже иногда бывают свои причуды если ему битую геометрию скормить.
Цитата:
Дядя Миша писал: Если ты лепишь домики на ландшафт, то технически ты уже разбил уровень на сетки. Каждый домик - это сектор. Остаётся только в оконные и дверные проёмы поставить портал-браш. Что собственно и было сделано в сталкере.
Но там тему недокрутили до конца, у них же нет BSP-дерева.
Нам просто надо проанализировать эти домики и пометить structural-поверхности. И пропустить их в дерево. Ну и собственно всё, дальше дерево строится, как будто мы имели дело с обычными брашами, корректно домики попадают в дерево и их внутренности образуют новый сектор. Весь вопрос только в том, как отделить структурные полигоны от детальных и не пропустить часть структурных. Простой пример - стены у домика однозначно станут структурными полигонами, но есть ещё к примеру поколодники, которые должны вровень выпирать, а это, сами понимаете, не такое простое дело.
Если поколодник не попадёт в структурные брашы, то внутренность домика не станет герметичной и новый сектор не образуется.
Конечно когда для ксаша будут делать полностью новые уровни, то структурную геометрию могут явно отделить в новую группу и пометить её - это проще и надежнее. Но и автоматические детекторы тоже должны присутствовать. Чтобы был выбор.
Если домик модель, врядли кто то будет делать его единым мешем, во всяком случае стен со стульями. Подоконник ещё могут, но это просто коробка которая ни на что особо не влияет.
Цитата:
Дядя Миша писал: К примеру вы в курсе, что компилятор у меня автоматически определяет какие полигоны осветить повертексно, а на какие наложить лайтмапу?
Нет, ему можно это явно указать, но он умеет и сам. Все сталкеровские карты скопилены именно с автоматическим определением повертексное\лайтмапа, можете включить показ лайтмапы и убедиться что механизм отлично справляется. А ведь это гораздо сложнее чем отдуплить структурные поверхности от детальных.
Это вообще не понял. Помню ты говорил что в повертексном освещении никакого смысла вообще нет.
Цитата:
SNMetamorph писал: Ну как минимум анимации хотя бы. Или под статику и динамику разные форматы?
Ну да, по идее карты лучше хранить как Static mesh. А вот загружать как раз файлы сцен где могут быть эти статик меши в любом количестве, а так же всякие объекты и скрипты. Ведь на одной сцене может быть не одна "БСПшка", а несколько. К тому же это позволяет грузить карты асинхронно т.е. бесшовно. А в случае подгрузки "БСПшек" друг в друга получим рекурсию.
Цитата:
Дядя Миша писал: На аутдор-сценах никто виз и не использует. Порталы + HOM, иначе никак.
Причём я планирую HOM-геометрию тоже генерировать автоматически, это не так уж и сложно.
Посмотри каналы и дорогу в хл2. Там довольно интересный подход к оптимизации оутдуров. Да и потом оутдур это не обязательно коробка, он может быть буквой Г, П и всех видов фигур из тетриса, или вообще змейкой. Да ещё и по любой оси.
Цитата:
Дядя Миша писал: Причём там как получается - если портал поставить прямо внутрь двери, то дверь его подхватывает и начинает открывать и закрывать вместе с собой.
А как это работает?
Добавлено 17-11-2023 в 14:36:
Цитата:
Дядя Миша писал: Причём там как получается - если портал поставить прямо внутрь двери, то дверь его подхватывает и начинает открывать и закрывать вместе с собой.
Но можно и без дверей ставить, просто в дверных проёмах.
Я не совсем понимаю как определяет Vis видимость. Но предположим можно было бы сделать таким образом - Вот у нас есть 1 полигон в секторе1 у него есть нормаль которая смотрит в сторону сектора 2, и собственно из этого полигона кидается трейс который пытается обнаружить полигоны в секторе 2 нормаль которых смотрит в его сторону, если таких нет то переходим к следующему полигону сектора 1 который так же перебирает все полигоны сектора 2. И вот если хоть один из полигонов увидит полигон из другого сектора, и между ними нет препятствий ввиде других полигонов из нашего сектора или какого либо другого, то помечаем их как видимые. Если нет, то нет. Конечно это слишком упрощённый и неэффективный вариант, но думаю смысл ты поймёшь. Самое забавное что замкнутость уровня в таком случае не нужна.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Я как раз и пытаюсь опираться на имеющиеся системы.
Собственно как то так я понимаю работу VIS:
Только тут ни порталы, ни замкнутые системы не нужны получается?
Цитата:
ZGreen писал: Особенно лайтмапы из ку3 под софтварный рендер заточены, которого в игре и нет вовсе.
Под ку3 не маппал, так что не знаю как там. Но вполне допускаю что какое либо наследие могло там быть.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Порталы в окнах домика это я так понял совсем не то что функ-порталы в ксашмоде?
Можешь показать сравнение одинаковой геометрии с тру-индиректом из HL против индиректа по полусфере из NT?
Цитата:
FiEctro писал: Да и не надо лукавить, всякие хинты и порталы тоже надо расставлять в первой и второй халфе, просто все кладут на это болт.
В халфе пространство нормально визилось автоматически, хинты нужны были для коррекции каких-то хитрых случаев и для ускорения виза (или это миф, я забыл). А в новом ксаше не поставишь портал-вообще ничего не отвизится.
Добавлено 17-11-2023 в 19:13:
Цитата:
Дядя Миша писал: Причём там как получается - если портал поставить прямо внутрь двери, то дверь его подхватывает и начинает открывать и закрывать вместе с собой.
Crystallize писал: В халфе пространство нормально визилось автоматически, хинты нужны были для коррекции каких-то хитрых случаев и для ускорения виза (или это миф, я забыл). А в новом ксаше не поставишь портал-вообще ничего не отвизится.
Там и аутдуров больших не было.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!