Дядя Миша писал: FBX - это склад говна с 95-го года.
К слову обнаружил что вес CSM больше раз в 5 чем FBX. Статик.ксм из примера Сталкера весит 50мегабайт, а модель сконвертированная в FBX - 10 мегабайт при том что FBX содержит куда больше в себе информации. Загружается "склад говна" в блендер соответственно в 5 раз быстрее чем CSM. Надо бы ещё с другими форматами посравнивать. Интересно от чего CSM так пухнет?
FiEctro писал: К слову обнаружил что вес CSM больше раз в 5 чем FBX
Ну значит FBX сжатый внутри. А CSM - неиндексированный.
После любой попытки собрать карту с этой моделью, он похудеет в размерах от двух до трёх раз.
Цитата:
FiEctro писал: Загружается "склад говна" в блендер соответственно в 5 раз быстрее чем CSM
Потому что для FBX нативный лоадер на С++. А загрузчик CSM полностью на Питоне. Попробуй написать загрузчик FBX на питоне, посмотри сколько он будет загружаться.
Цитата:
FiEctro писал: FBX содержит куда больше в себе информации
Дядя Миша писал: И какую же информацию он содержит?
Ну как минимум настройки материалов, иерархию объектов и их трансформы. Я кстати добавил экспорт имени материала в имя дифузной текстуры. Интересно теперь добавить бы сами текстуры в fbx, но относительно чего мне их искать? Папки игры? Папки движка?
Кстати, как насчёт добавить в спецификацию csm тоже иерархию объектов? Ну напимер если я захочу какую то стенку выключать, ну неудобно её таскать отдельной моделью.
Цитата:
Дядя Миша писал: Потому что для FBX нативный лоадер на С++. А загрузчик CSM полностью на Питоне. Попробуй написать загрузчик FBX на питоне, посмотри сколько он будет загружаться.
Да ты прав, надо с другими неиндексироваными сравнить. Правда я хз действительно FBX сжимается или нет. Довольно шустро он сталкеровские карты распаковывает даже для крестов.
Конкретно CSM реально что-то мало информации в себе содержит, я сначала подумал группы это что бы разбивать модель на body что бы там взаимодействовать в игре (вкл/ выкл часть модели) но дали ведь только код конвертера и структуру файла, а подробного описания не было, гадай сам называется что к чему
Добавлено 29-03-2024 в 11:56:
Я так по логике прикинул ну и показалось логичным что это какое-то разбитие модели на body, судя по тому что написали это что-то совсем другое оказалось)
__________________
Отличаюсь особой адекватностью!
FiEctro писал: Ну как минимум настройки материалов, иерархию объектов и их трансформы
CSM - это отдельный объект. Он и не должен содержать никакой иерархии.
Отдельный, но любой. Как маленькая моделька, так и весь уровень.
Цитата:
FiEctro писал: Интересно теперь добавить бы сами текстуры в fbx, но относительно чего мне их искать? Папки игры? Папки движка?
Я сделаю специальную структуру для редактора с этой информацией, как и обещал.
Цитата:
FiEctro писал: Кстати, как насчёт добавить в спецификацию csm тоже иерархию объектов?
Иерархия - в текстовом формате .source, который аналог .map.
Ксашевский Джек умеет в него сохранять.
Цитата:
FiEctro писал: Да ты прав, надо с другими неиндексироваными сравнить
Ты не понял. CSM индексируется пост-процессом. Только после того, как компилятор попытается собрать с ним карту. Если ты самостоятельно получал csm-файлы с помощью декомпиляторов или иных тулз, то они всегда будут неоптимизированными. А после того как ты начал компилировать уровень с ним, то компилятор произведёт над ними определённые операции и их размер может уменьшиться вдвое-втрое.
Разумеется я мог бы туда добавить и сжатие архиватором, да много чего бы мог бы. Но только хрен тогда бы получилось написать загрузчик на питоне. Пришлось бы таскать с собой библиотеку. А это как раз то, чего я хотел бы избежать.
Цитата:
FiEctro писал: Довольно шустро он сталкеровские карты распаковывает даже для крестов.
Питон медленнее С++ примерно в тысячу раз.
Цитата:
Karaul0v писал: Конкретно CSM реально что-то мало информации в себе содержит
Он и не должен содержать в себе много. Это осознанный выбор.
Дядя Миша писал: Иерархия - в текстовом формате .source, который аналог .map.
Это я понял, но всеравно неудобно. Вместо одного файла целая мешанина с весьма абстрактными ссылками друг на друга. Т.е. конвертер я так понимаю надо прибивать гвоздями к конкретной папке и движку чтобы нормально сконвертировать полноценную сцену со всеми ресурсами в один файл.
FiEctro писал: Вместо одного файла целая мешанина с весьма абстрактными ссылками друг на друга
Ну представь что у тебя пропсы лежат в папке models и ты на них ссылаешься из разных карт. Ты же сам мне говорил про эффективное переиспользование ресурсов. Как только я его сделал, ты переобулся и теперь топишь за "всё-в-одном". Ну положи эти ресурсы по адресу maps\mapname - сталкеровский конвертор, собственно так и работает.
Добавлено 29-03-2024 в 16:02:
Цитата:
FiEctro писал: Вместо одного файла целая мешанина с весьма абстрактными ссылками друг на друга
Да без проблем, упакую в .bundle. Вот только полноценная имплементация .bundle - это примерно 100 килобайт, а может и больше. Я её сейчас оформлю в библиотеку, потом она устареет, потом половина забудет её заменить, потом в ней поменяются экспортные функции, всем придётся переписывать плагин, который её грузит и здравствуй DLL Hell. Теперь уже самый натуральный. На мой взгляд то что все файлы лежат снаружи - это как раз удобно. Потому что ты можешь их инспектировать даже без редактора.
Т.е. аварийный режим. А что ты сделаешь с FBX без редактора? Да ничего ты не сделаешь.
Добавлено 29-03-2024 в 16:05:
Хранить исходники в максимально упакованном виде с моей точки зрения неправильно. Наоборот они должны быть в максимально разжатом виде, чтобы можно было с ними взаимодействовать как угодно. Вот готовая игра действительно должна быть оформлена в виде единичного игрового архива, т.к. с ней единственный способ взаимодействия - запустил и играй себе.
А исходники - ты никогда не знаешь, может твой хвалёный редактор не сможет какую-то мелочь, и придётся прибегать к стороннему.