Дядя Миша писал: Вооот. А чтобы сделать экспорт лайтмапы - понадобится сохранение в CSM.
Ну не знаю, блендеровские плагины это как то проворачивали и без CSM. Но в целом пакетонезависимой утилиты для перегона моделей в CSM и обратно давно хотелось. Потому что не все сидят в блендере.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Дядя Миша писал: Дело не в плагине, а в простом и удобном формате, который мог бы хранить две развертки сразу.
Это умеют вроде все форматы, кроме obj
Так, а какой в этом тогда смысл? Тогда всеравно для 3д пакета плагин CSM нужен. Или Noesis сможет сохранять CSM в нормальные человеческие форматы? Я просто хз что за прога такая.
P.S. перенесите пожалуйста это обсуждение в другую тему
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro писал: Это умеют вроде все форматы, кроме obj
И кроме ASE. И кроме SMD. И кроме PLY. Может быть FBX какой-то и умеет, но там один только SDK-загрузчик 100 мегабайт весит.
Нету нормального простого формата который умеет хранить две развертки, в том-то и дело. Я же не просто так CSM разрабатывал.
Добавлено 19-03-2024 в 13:02:
Цитата:
FiEctro писал: Или Noesis сможет сохранять CSM в нормальные человеческие форматы?
Noesis это такой комбайн. Из всего во всё перегоняет. К сожалению весьма нестабильный и обожает падать. Но другого всё равно нет.
100 мегабайт это много в 2024 году? Надо поизучать, наверняка там как с QT можно выкинуть половину. Да и вообще одним FBXом свет клином не сошелся. Но другие форматы тебе тоже не понравились.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro писал: 100 мегабайт это много в 2024 году?
Ну вот представь что ядро ксаша весит 2 мегабайта. Я подключаю к нему FBX и ядро начинает весить 100 мегабайт. Ради поддержки одного дурацкого промежуточного формата моделей. А потом удивляемся, почему винда уже почти 100 гигабайт занимает.
Добавлено 19-03-2024 в 14:43:
Цитата:
FiEctro писал: Да и вообще одним FBXом свет клином не сошелся. Но другие форматы тебе тоже не понравились.
Дядя Миша писал: Ну вот представь что ядро ксаша весит 2 мегабайта. Я подключаю к нему FBX и ядро начинает весить 100 мегабайт. Ради поддержки одного дурацкого промежуточного формата моделей. А потом удивляемся, почему винда уже почти 100 гигабайт занимает.
Ну Noesis ты не включаешь же в ядро ксаша? Это может быть просто консольная утилита вроде твоего экстрагена. Которую можно включать в СДК но при этом выкидывать уже из релизной версии. Как результат ядро Ксаша не распухнет ни на килобайт, по крайней мере от автодесковского кода.
Цитата:
Дядя Миша писал: Перечисли пожалуйста эти другие форматы.
gltf, collada, usd
Кстати бот говорит что у .obj можно в MTL прописывать несколько UV карт, правда я не знаю будет ли это вообще работать.
C++ Source Code:
1
newmtl MultiUVDiffuseMaterial
2
map_Kd texture1.jpg
3
map_Kd_Bump bump1.jpg
4
5
# Определение UV-карт для дополнительных текстурных каналов
6
map_Kd_UVW texture2.jpg
7
map_Kd_Bump_UVW bump2.jpg
Буду дома, проверю.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
COLLADA давно депрекатед. К тому же это монстр, аналогичный FBX.
GLTF - выдумка на ровном месте ни для чего и ни о чём.
USD - эппловская поделка, текстовая.
C++ Source Code:
1
def Xform "SolarSystem"
2
{
3
def "Earth" (
4
references = @./planet.usda@</Planet>
5
)
6
{
7
bool has_life = True
8
string color = "blue"
9
}
10
Разумеется "универсальный" формат не поддерживает брашы. Зато у него на земле - исключительно голубая жизнь, понятно. Да и вообще он больше похож на ссылочный формат. И снова дикая избыточность в описании. NET.Spasibo.
Добавлено 19-03-2024 в 15:16:
Цитата:
FiEctro писал: Кстати бот говорит что у .obj можно в MTL прописывать несколько UV карт, правда я не знаю будет ли это вообще работать.
Спецификация позволяет, да вот только подавляющее большинство загрузчиков obj написаны с нарушением спецификации и просто проигнорят второй канал. Впрочем дело даже не в этом.
Все эти великоумные разработчики абстрактных форматов делали их от балды и на ровном месте, а CSM активно используется и я в нём учёл всё необходимое, чтобы решить сразу целый спектр задач.
И при этом он крайне лёгко в имплементации, его можно добавить буквально за час времени. Попробуйте FBX так подключить, ога.
Добавлено 19-03-2024 в 15:18:
Вообще, как это вижу лично я:
.CSM - статичные мешы (бинарный файл)
.CDM - мешы с костями (бинарный файл)
.SOURCE - исходник сцены (аналог .map)
Всё это без проблем помещается в архив .BUNDLE для удобства. Включая и текстуры. Вот вам и ассет.
Дядя Миша писал: COLLADA давно депрекатед. К тому же это монстр, аналогичный FBX.
GLTF - выдумка на ровном месте ни для чего и ни о чём.
USD - эппловская поделка, текстовая.
зато они поддерживаются везде, и содержат необходимый функционал
Цитата:
Дядя Миша писал: Разумеется "универсальный" формат не поддерживает брашы.
Надеюсь это шутка? Я ничего не понял, объясни причём тут брашы. Ну проверяй меш на конвексность при импорте/экспорте вот тебе и браш.
Цитата:
Дядя Миша писал: Спецификация позволяет, да вот только подавляющее большинство загрузчиков obj написаны с нарушением спецификации и просто проигнорят второй канал. Впрочем дело даже не в этом.
Все эти великоумные разработчики абстрактных форматов делали их от балды и на ровном месте, а CSM активно используется и я в нём учёл всё необходимое, чтобы решить сразу целый спектр задач.
И при этом он крайне лёгко в имплементации, его можно добавить буквально за час времени. Попробуйте FBX так подключить, ога.
Речи не идёт об отказе от CSM в пользу FBX или вшивании его в ядро Ксаша, а просто в сторону отдельной утилиты в СДК для перегона. GLTF вроде как самый простой для имплементации, это практически тот же Json.
К тому же CSM я как понял не умеет ни скелеталку, ни морфинг, ни материалы.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Минутка истории для всех, кому интересно.
Изначально я вообще не планировал делать никакой бинарный формат хранения статических моделей.
Я думал использовать smd из-за того, что в smd всегда одна ориентация, совпадающая с Ксашем (т.е. по-Кармаку) и все размеры - в дюймах.
Проблемы начались когда я стал собирать тестовые карты из Сталкера.
Во первых оказалось что в smd эти карты весят ну порядка одного гигабайта текста. Во вторых - генерация качественной развертки лайтмапы, индексации вертексов и прочих оптимизаций - это не сказать чтобы такое быстрое дело. К тому же, важный момент. Вы когда-нибудь задумывались в КАКОМ формате хранятся все эти развертки для лайтмапы? А они там хранятся в формате под конкретную единичную страницу. Т.е. в диапазоне 0-1, как будто бы уже лежат в атласе. Хотя движок в норме, собирая кучу моделей должен переупаковывать их в персональные атласы для конкретной сцены, а так же учитывать, что дизайнер может поменять плотность лайтмапы на отдельно взятой поверхности. Насколько я понимаю НИ ОДИН ФОРМАТ ничего подобного не предлагает даже и близко. Фактически там принцип "ну мы добавили возможность хранить вторую развертку".
То есть, по выражению Ленина "формально правильно, а по существу издевательство". И между прочим именно CSM-формат в большей степени обеспечивает удобство генерации лайтмап в XashNT и нечуствительность к исходной геометрии. Вы мне сами говорили, что вам нравятся и лайтмапы и качество развертки в XashNT и CSM играет во всём этом далеко не последнюю роль. Можете не сомневаться - без него бы ничего не получилось. Так вот при создании формата я получал обратную связь при его использовании в Блендере при моделировании объектов и добавлял туда необходимые фичи, которые тут же тестировались.
И при всём при этом он оставался простейшим и лёгким форматом, который каждый может заимплементировать без каких-либо проблем.
Там не будет избыточности, которую никто никогда не использует, но вам придётся въезжать что это тут такое нагородили и зачем оно вообще нужно. И там не будет недостатка в необходимых фичах. Т.е. - он оптимален со всех сторон.
Добавлено 19-03-2024 в 15:33:
Цитата:
FiEctro писал: зато они поддерживаются везде, и содержат необходимый функционал
И CSM точно так же будет поддерживаться везде. Вопрос времени всего лишь.
Цитата:
FiEctro писал: Надеюсь это шутка? Я ничего не понял, объясни причём тут брашы
При том. Какой же универсальный формат, если брашы не поддерживает?
А кривые Безье он умеет? А дисплейсменты из ХЛ2?
Цитата:
FiEctro писал: Ну проверяй меш на конвексность при импорте/экспорте вот тебе и браш
Надеюсь это шутка?
Цитата:
FiEctro писал: GLTF вроде как самый простой для имплементации, это практически тот же Json.
Я хренею как же вам всем мозг-то промыли. Ну говорю же открытым текстом - попробуй уровень сталкера сохранить в JSON. А потом я посмотрю сколько ты его будешь просто парсить по времени. А ведь уровни сталкера по нынешним меркам игрушечные.
Цитата:
FiEctro писал: К тому же CSM я как понял не умеет ни скелеталку, ни морфинг, ни материалы.
Материалы - ксашевые, CSM содержит на них ссылки, которые при вольной интерпретации можно истрактовать как ссылки на текстуры, что в общем случае правда. Разумеется никаких внутренних настроек материалов он не содержит, да и не должен.
Скелеталка будет в отдельном формате - CDM. Впрочем у меня пока есть обоснованные сомнения в его необходимости. но посмотрим.
Добавлено 19-03-2024 в 15:37:
И вот ещё что скажу. Аргумент "ну зато это поддерживается везде" - это самый гнилой аргумент, какой я только когда-либо слышал. Во первых я не припоминаю ни одного случая чтобы это обстоятельство хоть как-то хоть когда-то и хоть кому-то хоть в чём-то помогло. Во вторых, "поддерживается везде" означает, что народ просто утащил к себе готовую библиотеку и кое-как её прикрутил. И если вдруг начнутся некоторые проблемы с этим очередным форматом - можете не сомневаться, что абсолютно везде вы напоретесь на один и тот же баг.
Дядя Миша писал: При том. Какой же универсальный формат, если брашы не поддерживает?
А кривые Безье он умеет? А дисплейсменты из ХЛ2?
Весьма странный кейс, CSM в любом случае в 3д пакете будет интерпретироваться как обычная сетка. Хоть там кривые, хоть браши, хоть дисплейсменты и любые прочие модификаторы.
Цитата:
Дядя Миша писал: И CSM точно так же будет поддерживаться везде. Вопрос времени всего лишь.
До тех пор пока блендеровцы опять не сломают плагины.
Цитата:
Дядя Миша писал: Я хренею как же вам всем мозг-то промыли. Ну говорю же открытым текстом - попробуй уровень сталкера сохранить в JSON. А потом я посмотрю сколько ты его будешь просто парсить по времени. А ведь уровни сталкера по нынешним меркам игрушечные.
Я не говорю хранить уровни из Сталкера в жсонах. Ты читаешь мой текст по диагонали? Я говорю про промежуточные форматы. CSM остаётся там где и был, против него я ничего не имею.
Цитата:
Дядя Миша писал: Материалы - ксашевые, CSM содержит на них ссылки, которые при вольной интерпретации можно истрактовать как ссылки на текстуры, что в общем случае правда.
Ну вот и как запарсить настройки материалов в 3д пакет?
Цитата:
Дядя Миша писал: Скелеталка будет в отдельном формате - CDM. Впрочем у меня пока есть обоснованные сомнения в его необходимости. но посмотрим.
Я не понимаю, а чем обосновано разделять форматы 3д моделей на кучу разных форматов? Типа чтобы не парсить лишнего?
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro писал: CSM в любом случае в 3д пакете будет интерпретироваться как обычная сетка
CSM - да, там внутри самые обычные треугольники.
Цитата:
FiEctro писал: До тех пор пока блендеровцы опять не сломают плагины.
Ну вот видишь - ломают постоянно. И я думаю не только блендер, а везде оно так. Вот тебе и "поддерживается везде".
Цитата:
FiEctro писал: Я говорю про промежуточные форматы
Так и я про них. CSM это промежуточный формат.
Цитата:
FiEctro писал: Ну вот и как запарсить настройки материалов в 3д пакет?
Встречный вопрос - а как запарсить настройки материалов из Doom3, Half-Life 2, Quake 3 в 3D пакет?
Цитата:
FiEctro писал: Я не понимаю, а чем обосновано разделять форматы 3д моделей на кучу разных форматов?
Как минимум - чтобы избегать неоднозначности. Если у модели есть кости - ей лайтмапа уже не нужна, не правда ли.
Добавлено 19-03-2024 в 16:14:
Опять же скелетные модели - это вещь в себе. Т.е. это некий архив который содержит в себе сам меш, аттачменты, векторы движения, анимации, описания анимаций, эвенты. Ну вообщем кучу сопутствующей инфы. И всё это пропущено через компилятор, типа studiomdl предварительно.
Использовать сырой костяной меш как в том же Doom3 не предполагается.
Да и неудобно это. Модель у нас в данном случае - такая же абстракция как и исполняемый файл. Пишется в изолированной среде, а потом работает везде. То есть моделлер создаёт персонажа в полном отрыве от игры. А потом его просто вставляют на разные уровни и он там ведёт себя правильно. В этом и смысл.
Unity же зачем-то предлагает настраивать кости по месту вставки персонажа У ребят что-то с логикой.
Дядя Миша писал: Ну вот видишь - ломают постоянно. И я думаю не только блендер, а везде оно так. Вот тебе и "поддерживается везде".
За поддержку этих форматов отвечают разработчики софта. За поддержку CSM в этих редакторах не отвечает никто. Да и вообще врядли знают о его существовании.
Цитата:
Дядя Миша писал: Встречный вопрос - а как запарсить настройки материалов из Doom3, Half-Life 2, Quake 3 в 3D пакет?
Это депрекатед проприетарные форматы, которые поддерживаются только усилиями энтузиастов. Так же как и с КСМ пишут плагины для каждого 3д пакета, которые лагают, крашатся и т.д. и т.п.
Цитата:
Дядя Миша писал: Как минимум - чтобы избегать неоднозначности. Если у модели есть кости - ей лайтмапа уже не нужна, не правда ли.
При первом взгляде да. Но ведь скелеталку солид меши тоже могут содержать. Вот если тебе например нужен сложный лифт который или дверь которые гарантировано не будут разваливаться на разные объекты как в ксаше или спирите в случае застряваний, то это вполне неплохой вариант. А нет, тебе Дядя Миша запретил делать освещение в лифте.
Цитата:
Дядя Миша писал: Unity же зачем-то предлагает настраивать кости по месту вставки персонажа У ребят что-то с логикой.
Да всё впорядке с логикой есть префабы которые делают тоже самое что твой mdl. Но есть масса случаев когда нужно удалять/модифицировать/менять иерархию костям в рантайме. Например рвущиеся регдоллы, тряпки или софтбоди. Ну или там что верталёт своими ракетами мог стрелять, а не плодить дополнительных моделей и объектов.
Цитата:
Дядя Миша писал: Опять же скелетные модели - это вещь в себе. Т.е. это некий архив который содержит в себе сам меш, аттачменты, векторы движения, анимации, описания анимаций, эвенты. Ну вообщем кучу сопутствующей инфы. И всё это пропущено через компилятор, типа studiomdl предварительно.
Ну да, и при малейшем обновлении модели всё заново настраивать, очень удобно.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Дядя Миша писал: А кривые Безье он умеет? А дисплейсменты из ХЛ2?
Кому какое дело до этих призраков давно ушедших в мир теней?
Разве те же Безье это не хайполи func_illusionary? Или их суть в лодах как в третьей кваке?
Добавлено 19-03-2024 в 22:20:
Цитата:
Дядя Миша писал: И CSM точно так же будет поддерживаться везде. Вопрос времени всего лишь.
FiEctro писал: За поддержку этих форматов отвечают разработчики софта
И кто же у нас отвечает за поддержку OBJ?
Цитата:
FiEctro писал: За поддержку CSM в этих редакторах не отвечает никто
Ну а как они узнают, если я его спеки ещё не публиковал?
Цитата:
FiEctro писал: Это депрекатед проприетарные форматы, которые поддерживаются только усилиями энтузиастов
С хрена ли они деприкатед? Сам придумал?
Цитата:
FiEctro писал: нужен сложный лифт который или дверь которые гарантировано не будут разваливаться на разные объекты как в ксаше или спирите в случае застряваний
Ну в спирите то ладно. А когда это ты видел чтобы в ксаше разваливались объекты? Ну понятно сам себе придумал - сам себе поверил.
Но опять же - подобные объекты встраиваются в карту без проблем, из исходника smd. Единственный момент - компилятор посчитает им развертку на лету, вместо того чтобы сохранить в формат. А так - никаких отличий. Наконец и CSM потенциально может поддерживать кости без потери совместимости. Просто потребность в таком пока что не возникала.
Цитата:
FiEctro писал: Но есть масса случаев когда нужно удалять/модифицировать/менять иерархию костям в рантайме
Святая уверенность в том, что иерархию костям надо менять в рантайме - это и есть проблемы с логикой.
Цитата:
FiEctro писал: Ну да, и при малейшем обновлении модели всё заново настраивать, очень удобно.
Ты никогда не компилировал модели под ГолдСорс?
Цитата:
Crystallize писал: Разве те же Безье это не хайполи func_illusionary?
Весна идёт, и снова обостренье. Какой хайполи функ_иллюзионари?
Или ты нарочно?
Цитата:
Crystallize писал: До тех пор пока в Windows 12 не сломают WinAPI
Ну то есть чтобы отвалился вообще весь софт, я правильно понял?
Добавлено 19-03-2024 в 18:50:
Кстати. Тот же OBJ - это лютое дерьмо мамонта из 80-х. Но наш ФиЭктро, как человек полностью отравленный повесточкой будет умело лавировать между "поддерживается везде" и "деприкейтед" чтобы победить в споре.