![]() |
Страницы (255): « Первая ... « 170 171 172 173 [174] 175 176 177 178 » ... Последняя » Показать все 3825 сообщений этой темы на одной странице |
HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Наши проекты (https://hlfx.ru/forum/forumdisplay.php?forumid=1)
-- XashNT: блог разработчика (https://hlfx.ru/forum/showthread.php?threadid=5297)
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
__________________
__________________
-Brain is dead-
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Ещё вот какая шляпа. Все редакторы строят брашы немного по разному. Тоесть эпсилоны там разные в chop is dish. Поэтому брашы, валидные с точки зрения компилятора редакторы злобно взрывают на гигантские плоскости.
Но кстати. Я вчера наконец-то осознал в чём профит сохранения плоскостей как трёх точек. Мы с вами помните гадали, зачем такая избыточность? Ну там в голову лезло, что эти точки хранились в целочисленных координатах по некоторым причинам, однако для текстового формата это не сказать чтобы прямо какая-то догма. Но оказывается есть и ещё один профит. В том случае когда браш построить не удалось, QuArK рисует, правильно что? Да эти же самые полигончики, подсвечивая их другим цветом. А как я узнал? Да очень просто. Я всегда сохранял в карту стоковые плоскости, ну те, которые размером на весь уровень. А вчера думаю, дай-ко сохраню уже те полигоны, которые компилятор превратил в браш. Ну и сохранил. Каково же было моё удивление, когда на некоторых из них QuArK браши так и не смог построить, но аккуратно отрендерил на их месте треугольнички, формой в целом напоминающие те самые брашы, которые могли бы быть на их месте.
Я конечно не знаю, может так только QuArK умеет, а другие редакторы нет.
Но вообще интересно, конечно.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
Kiss my ass if you don't like my Ford!
------------------------------------------
Game Area51 Update 1
First Person Shooter Released Jul 24, 2017
The game is a 3d shooter with the elements of the quest.
http://button.moddb.com/download/medium/125531.png
Так, ну чтож, для успешного завершения генерации брашей из моделей, осталось только написать генератор конвексных хуллов из произвольных полигонов. Это когда мы на вход подаём разные полигоны а на выходе получаем единый браш, который отдалённо напоминает исходную форму.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Подведу некоторые промежуточные итоги. В целом сконвертировать модельный уровень в брашы - возможно. Колоизационная часть по возможности принимает форму конвексных хуллов, сложные конструкции налету декомпозируются в конвексные. Всё это конечно довольно небыстро, но уж всяко быстрее чем работа VHACD, который несчастную тубаретку мучал почти 8 минут и отожрал на это гигабайт оперативы.
К тому же с переходом на новый формат, я могу легко и просто предрассчитать брашы с помощью модельного процессора и тут же сохранить их в usm-файлик. Если он изменится, то процессор перерассчитает брашы автомагически. Таким образом загруженная моделька сразу же даст мне набор готовых брашей, а я просто выберу куда мне их подевать.
Структуральные отправятся на построение BSP, а детальные отфильтруются в это дерево. Одно могу сказать точно - тот принцип построения дерева, который использовался в Q3 и D3 для модельной геометрии абсолютно не подходит. Он там всё кромсает и портит. Неудивительно, да вообщем-то и не имеет значения. Я просто отфильтрую детальные брашы в лиф, ну будет навигационная трасса потреблять чуть-чуть больше ресурсов при анализе построения пути. Некритично. Зато построение такого дерева займет не часы, а минуты. С этим моментом я определился. Теперь, собственно, вернёмся к превращению нашей полигональной геометрии в брашы.
Как я уже говорил из модели формируются группы в которых у треугольников смежные рёбра. Классификация на данный момент умеет определять следующие типы этих групп:
1. планарная группа. Ну понятно. декаль, вода или окошко. Или может плакат на стенке. Чот такое.
2. Конвексная группа. Ну тут всё просто - это 100% детальный браш. Т.к. части уровня не могут быть набором конвексных треугольников. А даже если и могут - это всё равно детальный браш
3. Почти конвексная группа. Браш не может быть почти конвексным, а вот моделька - запросто. Метод построения немного иной, но визуально результат практически такой же.
4. Группа смотрящая внутрь себя. Это очевидно мировая геометрия, какой-то колидор или лаз. Ну вообщем детальная геометрия всегда смотрит наружу себя. Конечно никто не мешает сделать сложную комплексную модель, у которой будет как наружная часть, так и внутреняя, простейший пример - ящик без одной стенки, в сталкере такие попадаются, а вертексы все шареные. Но очевидно, он не подходит под определение группы, которая смотрит исключительно в себя.
5. Ландшафт. Ну тут тоже понятно, что мировая геометрия.
6. Все оставшиеся группы. Здесь самое интересное начинается. Потому что под определение всех оставшихся групп подходят как унитазы, так и стенки уровня. То есть это неконвексная группа. Замкнутость\разомкнутость в данном случае не имеет никакого значения - моделлёры зачастую убирают лишние полигоны, поскольку за них этого никто не сделает. То есть у унитаза вполне может отсутствовать нижняя часть модели, где он соприкасается с полом. А у структурных стен вполне может оказаться какой-то разрыв в рёбрах - например одну стенку просто вдвинули в другую, да и всё. Связи между рёбрами нет, а герметичность есть. То есть передо мной стоят ещё две важные задачи:
1. отличить детальные группы от мировых (точнее говоря, всё что не задетектируется как детальная группа станет структуральной), потому что надёжного способа задетектировать часть уровня вообще не существует, приходится действовать методом исключения - задетектировать все детальные группы, то что останется и будет структурной. Этот путь гораздо надёжнее и проще, поскольку есть масса способов выявить детальные полигоны и ни одного - чтобы выявить структуральные. К тому же моделлёры их вообще никак не различают и модели делаются без учёта всего вот этого.
2. Аппроксимировать вогнутую детальную группу при помощи множества AABB. Я с подобной задачкой ещё не сталкивался, так что пока у меня нету однозначной идеи как именно это сделать. Собственно сама аппроксимация делается элементарно, вопрос только в том, как задетектировать, когда нам уже надо бросать одну группу и переходить к следующей. Тут очевидно надо искать ось для текущей группы полигонов или что-то вроде этого. Ну и вот когда эта ось вдруг резко меняется - значит переходим к созданию следующей группы. А то что получившиеся мешы будут незакрытыми как минимум с двух сторон не представляет никакой проблемы, я вчера написал автозакрыватель брашей, очень простой и эффективный алгоритм, который работает во всех случаях.
Добавлено 17-03-2023 в 15:33:
Перечитал и понял, что наихудший кейс - это трубы, внутри которых можно бегать. Они отправятся в мировую геометрию, детальными их сделать, увы не получится.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Возможен ли будет стол из единой мадельки, под который можно залезть?
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
А вот рандом-тайлинг текстур в КсашНТ оживет или это сущая глупость?
Временная зона GMT. Текущее время 01:02. | Страницы (255): « Первая ... « 170 171 172 173 [174] 175 176 177 178 » ... Последняя » Показать все 3825 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024