XaeroX писал: Звучит как жалоба обманутого вкладчика.
Так это вы регулярно жалуетесь, что мол я вообще никакого участия не принимал.
Цитата:
XaeroX писал: Даже func_rotating в волатиле был сделан специально для тебя, после твоей жалобы, о чём имеется специальный комментарий в исходниках.
Хоть на этом спасибо.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Мне нравится Годот, но я видимо пропустил момент, когда его причислили к ААА движкам. Как по мне, хоть он и не уступает по возможностям основным игрокам, но всё же продукт достаточно нишевый и направленный в сторону инди-сегмента
Цитата:
Дядя Миша писал: А. ну это через шейдер делается без проблем.
Тут двояко. Да, можно и через шейдер, но на том-же хл-лабе валялась куча моделек деревьёв с анимированными ветками, например. Но в целом при наличии полноценной grass system как в XT очевидно более рентабельно делать через шейдер, да
KiQ писал: но на том-же хл-лабе валялась куча моделек деревьёв с анимированными ветками, например
Ну я еще планировал делать анимированные статики. Это такие деревья, которые вкомпилены в карту, но при этом у них сохраняются кости, которые можно анимировать. XashNT такое позволяет.
Добавлено 15-03-2023 в 23:17:
Вообще в меню можно рендерить либо отдельные текстуры, либо картинки\буквы из шрифта. Единственное ограничение - в 2D не работают всякие шейдеры и система материалов. Я просто не стал распространять её влияние на меню. Но зато в меню можно взаимодействовать с полноценными 3д объектами и даже сделать полностью трёхмерное меню И вот на них уже материалы естественно работают.
Ещё вот какая шляпа. Все редакторы строят брашы немного по разному. Тоесть эпсилоны там разные в chop is dish. Поэтому брашы, валидные с точки зрения компилятора редакторы злобно взрывают на гигантские плоскости.
Но кстати. Я вчера наконец-то осознал в чём профит сохранения плоскостей как трёх точек. Мы с вами помните гадали, зачем такая избыточность? Ну там в голову лезло, что эти точки хранились в целочисленных координатах по некоторым причинам, однако для текстового формата это не сказать чтобы прямо какая-то догма. Но оказывается есть и ещё один профит. В том случае когда браш построить не удалось, QuArK рисует, правильно что? Да эти же самые полигончики, подсвечивая их другим цветом. А как я узнал? Да очень просто. Я всегда сохранял в карту стоковые плоскости, ну те, которые размером на весь уровень. А вчера думаю, дай-ко сохраню уже те полигоны, которые компилятор превратил в браш. Ну и сохранил. Каково же было моё удивление, когда на некоторых из них QuArK браши так и не смог построить, но аккуратно отрендерил на их месте треугольнички, формой в целом напоминающие те самые брашы, которые могли бы быть на их месте.
Я конечно не знаю, может так только QuArK умеет, а другие редакторы нет.
Но вообще интересно, конечно.
Дядя Миша писал: и игр ваших так до сих пор никто и не увидел
Разработка игры пока стоит на паузе, не до нее сейчас, но я уже на анриле написал 2 конфигуратора и пишу еще одну прогу, так что есть что показать
А еще есть Area 51
__________________
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.
Так, ну чтож, для успешного завершения генерации брашей из моделей, осталось только написать генератор конвексных хуллов из произвольных полигонов. Это когда мы на вход подаём разные полигоны а на выходе получаем единый браш, который отдалённо напоминает исходную форму.
Дядя Миша писал: Ну я еще планировал делать анимированные статики. Это такие деревья, которые вкомпилены в карту, но при этом у них сохраняются кости, которые можно анимировать. XashNT такое позволяет.
Анимированные статики в мемориз
Такое ощущение что ты не понимаешь что такое модель и что такое кости. Иначе не могу понять чем вызвано стремление создавать дополнительные сущности? Ведь статик это модель без костей вообще. То что в ГС для статиков нужна кость, это скорее частный случай, чем всеобщая практика. Ещё модель без костей можно анимировать через шейдер да, некоторые даже умудряются записывать сдвиги вершин в текстуру, и двигая UV по ней, анимировать персонажей, но это не тип модели, а просто материал с шейдером.
Цитата:
Дядя Миша писал: Так, ну чтож, для успешного завершения генерации брашей из моделей, осталось только написать генератор конвексных хуллов из произвольных полигонов. Это когда мы на вход подаём разные полигоны а на выходе получаем единый браш, который отдалённо напоминает исходную форму.
Помню мы со СразуРашеном строили в центре триса точку и спускали её в другую сторону относительно нормали получая конвексный тэтраэдр который побить крайне сложно, тем самым преобразуя obj в браши практически в неизменном виде.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro писал: Ведь статик это модель без костей вообще
Совершенно верно. Но повторюсь, в XashNT возможно иметь статики с костями, которые будут частью уровня. Это нужно для реалистичной процедурной анимации деревьев, а то, что они статики - помогает в дополнительной оптимизации отрисовки. Если ты этого не понимаешь - ну сиди дальше на Юнити.
Дядя Миша писал: Это нужно для реалистичной процедурной анимации деревьев,
Так, а что мешает их так же анимировать без костей?
Цитата:
Дядя Миша писал: Если ты этого не понимаешь - ну сиди дальше на Юнити.
Юнити это только частный случай. Не нравится Юнити, открой Анрил, там тоже самое всё.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Подведу некоторые промежуточные итоги. В целом сконвертировать модельный уровень в брашы - возможно. Колоизационная часть по возможности принимает форму конвексных хуллов, сложные конструкции налету декомпозируются в конвексные. Всё это конечно довольно небыстро, но уж всяко быстрее чем работа VHACD, который несчастную тубаретку мучал почти 8 минут и отожрал на это гигабайт оперативы.
К тому же с переходом на новый формат, я могу легко и просто предрассчитать брашы с помощью модельного процессора и тут же сохранить их в usm-файлик. Если он изменится, то процессор перерассчитает брашы автомагически. Таким образом загруженная моделька сразу же даст мне набор готовых брашей, а я просто выберу куда мне их подевать.
Структуральные отправятся на построение BSP, а детальные отфильтруются в это дерево. Одно могу сказать точно - тот принцип построения дерева, который использовался в Q3 и D3 для модельной геометрии абсолютно не подходит. Он там всё кромсает и портит. Неудивительно, да вообщем-то и не имеет значения. Я просто отфильтрую детальные брашы в лиф, ну будет навигационная трасса потреблять чуть-чуть больше ресурсов при анализе построения пути. Некритично. Зато построение такого дерева займет не часы, а минуты. С этим моментом я определился. Теперь, собственно, вернёмся к превращению нашей полигональной геометрии в брашы.
Как я уже говорил из модели формируются группы в которых у треугольников смежные рёбра. Классификация на данный момент умеет определять следующие типы этих групп:
1. планарная группа. Ну понятно. декаль, вода или окошко. Или может плакат на стенке. Чот такое.
2. Конвексная группа. Ну тут всё просто - это 100% детальный браш. Т.к. части уровня не могут быть набором конвексных треугольников. А даже если и могут - это всё равно детальный браш
3. Почти конвексная группа. Браш не может быть почти конвексным, а вот моделька - запросто. Метод построения немного иной, но визуально результат практически такой же.
4. Группа смотрящая внутрь себя. Это очевидно мировая геометрия, какой-то колидор или лаз. Ну вообщем детальная геометрия всегда смотрит наружу себя. Конечно никто не мешает сделать сложную комплексную модель, у которой будет как наружная часть, так и внутреняя, простейший пример - ящик без одной стенки, в сталкере такие попадаются, а вертексы все шареные. Но очевидно, он не подходит под определение группы, которая смотрит исключительно в себя.
5. Ландшафт. Ну тут тоже понятно, что мировая геометрия.
6. Все оставшиеся группы. Здесь самое интересное начинается. Потому что под определение всех оставшихся групп подходят как унитазы, так и стенки уровня. То есть это неконвексная группа. Замкнутость\разомкнутость в данном случае не имеет никакого значения - моделлёры зачастую убирают лишние полигоны, поскольку за них этого никто не сделает. То есть у унитаза вполне может отсутствовать нижняя часть модели, где он соприкасается с полом. А у структурных стен вполне может оказаться какой-то разрыв в рёбрах - например одну стенку просто вдвинули в другую, да и всё. Связи между рёбрами нет, а герметичность есть. То есть передо мной стоят ещё две важные задачи:
1. отличить детальные группы от мировых (точнее говоря, всё что не задетектируется как детальная группа станет структуральной), потому что надёжного способа задетектировать часть уровня вообще не существует, приходится действовать методом исключения - задетектировать все детальные группы, то что останется и будет структурной. Этот путь гораздо надёжнее и проще, поскольку есть масса способов выявить детальные полигоны и ни одного - чтобы выявить структуральные. К тому же моделлёры их вообще никак не различают и модели делаются без учёта всего вот этого.
2. Аппроксимировать вогнутую детальную группу при помощи множества AABB. Я с подобной задачкой ещё не сталкивался, так что пока у меня нету однозначной идеи как именно это сделать. Собственно сама аппроксимация делается элементарно, вопрос только в том, как задетектировать, когда нам уже надо бросать одну группу и переходить к следующей. Тут очевидно надо искать ось для текущей группы полигонов или что-то вроде этого. Ну и вот когда эта ось вдруг резко меняется - значит переходим к созданию следующей группы. А то что получившиеся мешы будут незакрытыми как минимум с двух сторон не представляет никакой проблемы, я вчера написал автозакрыватель брашей, очень простой и эффективный алгоритм, который работает во всех случаях.
Добавлено 17-03-2023 в 15:33:
Перечитал и понял, что наихудший кейс - это трубы, внутри которых можно бегать. Они отправятся в мировую геометрию, детальными их сделать, увы не получится.
nemyax писал: Возможен ли будет стол из единой мадельки, под который можно залезть?
Если ты каким-то образом изловчишься и у столешницы с ножками абсолютно везде будут смежные рёбра, то такой стол аппроксимируется конвексными примитивами. Если же нет, то анализатору будет куда как меньше работы.