HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Разработка игр > Наши проекты > XashNT: блог разработчика
Часть I
Страницы (241): « Первая ... « 179 180 181 182 [183] 184 185 186 187 » ... Последняя »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
Crystallize
Житель форума

Дата регистрации: Jul 2007
Проживает: Новосибирск
Сообщений: 4423
Возраст: 34

Рейтинг



Цитата:
Дядя Миша писал:
В телеграме выложил серию постов, отчёты о проделанной работе и о том, что предстоит сделать в ближайшее время.

Не хотелось бы чтобы это стало традицией, когда реальная инфа вся в телеграме.

Вот здесь можно скачать модельки Лондона в каких-то географических форматах, 1-2Гб, может получиться мощная тестовая карта.
nload/?mapService=EA/SurveyIndexFiles&Mode=spatial

Сообщить модератору | | IP: Записан
Сообщение: 214380

Старое сообщение 13-05-2023 16:54
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32213
Нанёс повреждений: 392 ед.

Рейтинг



Здесь я в основном пишу отвлечённые мысли, когда есть что писать.
а в телеграме - конкретику.

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | | IP: Записан
Сообщение: 214383

Старое сообщение 13-05-2023 18:46
-
Crystallize
Житель форума

Дата регистрации: Jul 2007
Проживает: Новосибирск
Сообщений: 4423
Возраст: 34

Рейтинг



Сорян вот правильная ссылка
https://environment.data.gov.uk/Def...es&Mode=spatial

Сообщить модератору | | IP: Записан
Сообщение: 214385

Старое сообщение 13-05-2023 19:53
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32213
Нанёс повреждений: 392 ед.

Рейтинг



В рамках написания универсального конвертора-мигратора со старых игр на XashNT, наконец-то дошли руки до обещанного декомпилятора уровней из халфы\кваки. Что тут можно сказать:

1. Информации, которая хранится в Q1BSP\HLBSP недостаточно для полноценной реконструкции брашей. Я не могу извлечь эту информацию из дерева, потому что соответствующие ветки дерева помечены как outside и обрублены ещё на этапе компиляции. Они все просто ссылаются на common outside leaf.

2. Тем не менее, учитывая вышесказанное, можно создать гигантский куб, по размеру всей модели и пропустить его сквозь дерево, нарубив внутренности на конвексные брашы. У такого подхода две очевидных проблемы:
- результат декомпиляции, запечённый в куб практически не подлежит дальнейшему редактированию.
- текстурные координаты для сурфейсов при таком подходе ищутся перебором примерно подходящих и в большинстве случаев оканчиваются фейлом. Нет хорошего способа наложить текстурные координаты на получившиеся брашы. Если не путаю, то BSPc вообще их не накладывает.

3. Таким образом декомпиляция по методу, описанному во втором пункте не годится - мы же хотим чтобы карту можно было ещё и редактировать в дальнейшем. Был ещё один декомпилятор под названием BSPTwoMap. Он на первый взгляд давал куда более лучшие результаты, но на самом деле просто превращал каждый полигон в отдельный браш. Т.е. максимально тупой способ.

4. Учитывая всё вышесказанное, надо было придумать что-то иное. Раз уж внешние стены всё равно до брашей не восстановишь, то их можно превратить в тонкие брашы, достроив недостающее. И в то же время, там где сторон достаточно для полноценной реконструкции - создавать настоящие браши. Именно такой подход я и принял за основу своего декомпилятора. Однако меня ждала весьма неожиданная и непреодолимая засада.

5. Дело в том, что перед тем, как уложить фейсы на ноду, компилятор их рубит на квадратики, согласно размерам их лайтмапы. Как легко догадаться, отличить сурфейс, разрубленный секущей плоскостью ноды, от сурфейса, разделённого субдивайдером на квадартики нет даже теоретической возможности. Казалось бы, ну и что такого? Надо просто смержить все сурфейсы да и всё. Но как раз тут нас и подстерегает вышеупомянутая засада:

6. Излишний мержинг убивает валидные стороны брашей! Т.е. если где-то были два браша у которых была планарная верхушка, существует очень высокая вероятность что эти две стороны смержатся в одну и там где могло бы получится два симпатичных замкнутых браша, получится 12 брашей из их сторон. Я бы не сказал, что эта ситуация возникает абсолютно всегда. Я больше скажу - брашей подлежащих полноценной реконструкции практически на всех картах удивительно мало, но оно и понятно. Ведь BSP в первую очередь задаёт геометрию, а детализации там весьма мало. Вот и получается что на какую-нибудь халфовскую карту приходится от силы 50-60 брашей, которые можно реконструировать. А всё остальное превращается в новые брашы из одной-единственной стороны. Т.е. это такой компромиссный вариант между BSPc и BSPTwoMap.

7. Теоретически в дальнейшем мне в голову придут какие-то новые идеи насчёт всего этого. Но пока - вот так.

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | | IP: Записан
Сообщение: 214479

Старое сообщение 29-05-2023 13:31
-
Crystallize
Житель форума

Дата регистрации: Jul 2007
Проживает: Новосибирск
Сообщений: 4423
Возраст: 34

Рейтинг



В NT будут триггеры которые могут регистрировать высокоскоростные объекты?

Сообщить модератору | | IP: Записан
Сообщение: 214486

Старое сообщение 29-05-2023 18:31
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32213
Нанёс повреждений: 392 ед.

Рейтинг



Crystallize да, конечно.

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | | IP: Записан
Сообщение: 214487

Старое сообщение 29-05-2023 19:16
-
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 12901
Возраст: 32

Рейтинг



Цитата:
Дядя Миша писал:
- текстурные координаты для сурфейсов при таком подходе ищутся перебором примерно подходящих и в большинстве случаев оканчиваются фейлом. Нет хорошего способа наложить текстурные координаты на получившиеся брашы. Если не путаю, то BSPc вообще их не накладывает.


Почему? Это же просто UV для отдельного сурфейса. Почему его нельзя просто скопировать? или там проекцию сделать?

Цитата:
Дядя Миша писал:
Он на первый взгляд давал куда более лучшие результаты, но на самом деле просто превращал каждый полигон в отдельный браш. Т.е. максимально тупой способ.


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

Добавлено 30-05-2023 в 11:52:

Цитата:
Дядя Миша писал:
6. Излишний мержинг убивает валидные стороны брашей! Т.е. если где-то были два браша у которых была планарная верхушка, существует очень высокая вероятность что эти две стороны смержатся в одну и там где могло бы получится два симпатичных замкнутых браша, получится 12 брашей из их сторон. Я бы не сказал, что эта ситуация возникает абсолютно всегда. Я больше скажу - брашей подлежащих полноценной реконструкции практически на всех картах удивительно мало, но оно и понятно. Ведь BSP в первую очередь задаёт геометрию, а детализации там весьма мало. Вот и получается что на какую-нибудь халфовскую карту приходится от силы 50-60 брашей, которые можно реконструировать. А всё остальное превращается в новые брашы из одной-единственной стороны. Т.е. это такой компромиссный вариант между BSPc и BSPTwoMap.


Наверное их надо проверять совпадают ли у них UV и текстурные координаты, и находятся ли они в одной плоскости, если да, то можно мержить, если нет, то это разные браши. В общем у них должна быть общая нормаль, общие UV координаты, и вершины плоскости должны быть конвексными.

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

Отредактировано FiEctro 30-05-2023 в 08:56

Сообщить модератору | | IP: Записан
Сообщение: 214491

Старое сообщение 30-05-2023 08:52
- За что?
Crystallize
Житель форума

Дата регистрации: Jul 2007
Проживает: Новосибирск
Сообщений: 4423
Возраст: 34

Рейтинг



Цитата:
FiEctro писал:
А в случае с ILE благодаря тому что мы использовали пирамидки, можно было импортировать даже obj.

Я помню пробовал импортировал, там конверсия шла как-то с большим трудом. https://www.models-resource.com/dre...e2/model/15153/

Сообщить модератору | | IP: Записан
Сообщение: 214492

Старое сообщение 30-05-2023 09:48
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32213
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
FiEctro писал:
Это же просто UV для отдельного сурфейса.

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

Цитата:
FiEctro писал:
В целом да, но при этом геометрию косячит меньше всего

Для NT я мог бы вообще дропнуть весь уровень в единую модель и так скомпилить. Но ето неспортивно.

Цитата:
FiEctro писал:
В общем у них должна быть общая нормаль, общие UV координаты, и вершины плоскости должны быть конвексными.

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

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | | IP: Записан
Сообщение: 214494

Старое сообщение 30-05-2023 11:27
-
marikcool
Житель форума

Дата регистрации: Jul 2011
Проживает: kz
Сообщений: 1522
Возраст: 37

Рейтинг



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

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

__________________
vk.com/skullcapstudios

Сообщить модератору | | IP: Записан
Сообщение: 214495

Старое сообщение 30-05-2023 19:15
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32213
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
marikcool писал:
сначало может от сабдивайд избавиться, вычистив разбиение

Как определить где субдивайд, а где разделение деревом?

Цитата:
marikcool писал:
чтобы можно сходу карту скомпилить

ну карту к слову можно сразу компилить. Дырок нет.

У меня несколько иная идея сейчас - надо матрицу смежности строить.
Потом как-нибудь опробую. Пока что лимит времени выделенный на декомпилятор истёк. Другие задачи ждут.

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | | IP: Записан
Сообщение: 214496

Старое сообщение 30-05-2023 20:05
-
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 12901
Возраст: 32

Рейтинг



Цитата:
Дядя Миша писал:
Ну во первых не UV, а текстурная матрица, а во вторых, как ты предлагаешь найти какой UV соответствует какому полигону? Если эти же самые полигоны размолоты в кучу после компиляции, а при выгрызании дыр в кубе они размолоты совершенно иначе. Если бы они совпадали - можно было бы сравнивать повертексно, все вертексы совпали - накладываем текстуру.


Ну импортёры БСП в модельки же как то их находят? И в отличие от разного рода декомпиляторов, текстуры там не сползают. Может стоит сначала сконвертировать в модель и уже с ней работать? Я просто не очень силён в специфике БСП архитектуры.

Добавлено 31-05-2023 в 08:58:

Цитата:
Дядя Миша писал:

Вот в том-то и кроется весь ужас. Что абсолютно всё совпадает, но при этом брашы - разные.


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

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

Отредактировано FiEctro 31-05-2023 в 06:03

Сообщить модератору | | IP: Записан
Сообщение: 214497

Старое сообщение 31-05-2023 05:58
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32213
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
FiEctro писал:
Ну импортёры БСП в модельки же как то их находят?

Какая связь? Там достаточно смержить все фейсы и записать результат в obj. Они их и не ищут. Ты вероятно просто не понял сути проблемы.

Цитата:
FiEctro писал:
И в отличие от разного рода декомпиляторов, текстуры там не сползают

У меня текстуры тоже не сползают.

Цитата:
FiEctro писал:
Ну было 2 браша, мержнули их в один

Так не получится в один, в том-то и дело. Потому что от второго браша остался только один фейс. А остальное попало в наружние фейсы и было удалено.

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | | IP: Записан
Сообщение: 214498

Старое сообщение 31-05-2023 06:03
-
Crystallize
Житель форума

Дата регистрации: Jul 2007
Проживает: Новосибирск
Сообщений: 4423
Возраст: 34

Рейтинг



Цитата:
Дядя Миша писал:
Так не получится в один, в том-то и дело. Потому что от второго браша остался только один фейс. А остальное попало в наружние фейсы и было удалено.

Может в пэйнте нарисуешь чтоб мы поняли?

Сообщить модератору | | IP: Записан
Сообщение: 214499

Старое сообщение 31-05-2023 06:15
- За что?
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 12901
Возраст: 32

Рейтинг



Цитата:
Дядя Миша писал:
У меня несколько иная идея сейчас - надо матрицу смежности строить.


Что такое матрица смежности и как она решает эту проблему?

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

Сообщить модератору | | IP: Записан
Сообщение: 214500

Старое сообщение 31-05-2023 06:49
- За что?
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 13:25. Новая тема    Ответить
Страницы (241): « Первая ... « 179 180 181 182 [183] 184 185 186 187 » ... Последняя »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Разработка игр > Наши проекты > XashNT: блог разработчика
Часть I
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

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