HLFX.Ru Forum
Показать все 114 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Моделирование (https://hlfx.ru/forum/forumdisplay.php?forumid=25)
-- Обсуждение форматов моделей (https://hlfx.ru/forum/showthread.php?threadid=6082)


Отправлено FiEctro 19-03-2024 в 06:37:

Цитата:
Дядя Миша писал:
Вооот. А чтобы сделать экспорт лайтмапы - понадобится сохранение в CSM.


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

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


Отправлено Дядя Миша 19-03-2024 в 08:24:

Цитата:
FiEctro писал:
блендеровские плагины это как то проворачивали и без CSM

Дело не в плагине, а в простом и удобном формате, который мог бы хранить две развертки сразу.
Цитата:
FiEctro писал:
Но в целом пакетонезависимой утилиты для перегона моделей в CSM и обратно давно хотелось

Я сделаю плагин к Noesis. Я уже внес в список задач.

Добавлено 19-03-2024 в 11:24:

Это разумеется без учёта того, что будет визуализатор во вьювере и редакторе самого Ксаша.

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 19-03-2024 в 08:43:

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


Это умеют вроде все форматы, кроме obj
Так, а какой в этом тогда смысл? Тогда всеравно для 3д пакета плагин CSM нужен. Или Noesis сможет сохранять CSM в нормальные человеческие форматы? Я просто хз что за прога такая.

P.S. перенесите пожалуйста это обсуждение в другую тему

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


Отправлено Дядя Миша 19-03-2024 в 10:02:

Цитата:
FiEctro писал:
Это умеют вроде все форматы, кроме obj

И кроме ASE. И кроме SMD. И кроме PLY. Может быть FBX какой-то и умеет, но там один только SDK-загрузчик 100 мегабайт весит.
Нету нормального простого формата который умеет хранить две развертки, в том-то и дело. Я же не просто так CSM разрабатывал.

Добавлено 19-03-2024 в 13:02:

Цитата:
FiEctro писал:
Или Noesis сможет сохранять CSM в нормальные человеческие форматы?

Noesis это такой комбайн. Из всего во всё перегоняет. К сожалению весьма нестабильный и обожает падать. Но другого всё равно нет.

Цитата:
FiEctro писал:
Я просто хз что за прога такая.

https://richwhitehouse.com/index.ph...&showproject=91

И под XP прекрасно работает.

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 19-03-2024 в 11:28:

Цитата:
Дядя Миша писал:
100 мегабайт весит.


100 мегабайт это много в 2024 году? Надо поизучать, наверняка там как с QT можно выкинуть половину. Да и вообще одним FBXом свет клином не сошелся. Но другие форматы тебе тоже не понравились.

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


Отправлено Дядя Миша 19-03-2024 в 11:43:

Цитата:
FiEctro писал:
100 мегабайт это много в 2024 году?

Ну вот представь что ядро ксаша весит 2 мегабайта. Я подключаю к нему FBX и ядро начинает весить 100 мегабайт. Ради поддержки одного дурацкого промежуточного формата моделей. А потом удивляемся, почему винда уже почти 100 гигабайт занимает.

Добавлено 19-03-2024 в 14:43:

Цитата:
FiEctro писал:
Да и вообще одним FBXом свет клином не сошелся. Но другие форматы тебе тоже не понравились.

Перечисли пожалуйста эти другие форматы.

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 19-03-2024 в 11:57:

Цитата:
Дядя Миша писал:
Ну вот представь что ядро ксаша весит 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


Буду дома, проверю.

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


Отправлено Дядя Миша 19-03-2024 в 12:18:

Цитата:
FiEctro писал:
gltf, collada, usd

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 для удобства. Включая и текстуры. Вот вам и ассет.

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 19-03-2024 в 12:22:

Цитата:
Дядя Миша писал:
COLLADA давно депрекатед. К тому же это монстр, аналогичный FBX.
GLTF - выдумка на ровном месте ни для чего и ни о чём.
USD - эппловская поделка, текстовая.


зато они поддерживаются везде, и содержат необходимый функционал

Цитата:
Дядя Миша писал:
Разумеется "универсальный" формат не поддерживает брашы.


Надеюсь это шутка? Я ничего не понял, объясни причём тут брашы. Ну проверяй меш на конвексность при импорте/экспорте вот тебе и браш.

Цитата:
Дядя Миша писал:
Спецификация позволяет, да вот только подавляющее большинство загрузчиков obj написаны с нарушением спецификации и просто проигнорят второй канал. Впрочем дело даже не в этом.
Все эти великоумные разработчики абстрактных форматов делали их от балды и на ровном месте, а CSM активно используется и я в нём учёл всё необходимое, чтобы решить сразу целый спектр задач.
И при этом он крайне лёгко в имплементации, его можно добавить буквально за час времени. Попробуйте FBX так подключить, ога.


Речи не идёт об отказе от CSM в пользу FBX или вшивании его в ядро Ксаша, а просто в сторону отдельной утилиты в СДК для перегона. GLTF вроде как самый простой для имплементации, это практически тот же Json.

К тому же CSM я как понял не умеет ни скелеталку, ни морфинг, ни материалы.

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


Отправлено Дядя Миша 19-03-2024 в 12:37:

Минутка истории для всех, кому интересно.
Изначально я вообще не планировал делать никакой бинарный формат хранения статических моделей.
Я думал использовать 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:

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

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 19-03-2024 в 12:44:

Цитата:
Дядя Миша писал:
При том. Какой же универсальный формат, если брашы не поддерживает?
А кривые Безье он умеет? А дисплейсменты из ХЛ2?


Весьма странный кейс, CSM в любом случае в 3д пакете будет интерпретироваться как обычная сетка. Хоть там кривые, хоть браши, хоть дисплейсменты и любые прочие модификаторы.

Цитата:
Дядя Миша писал:
И CSM точно так же будет поддерживаться везде. Вопрос времени всего лишь.


До тех пор пока блендеровцы опять не сломают плагины.

Цитата:
Дядя Миша писал:
Я хренею как же вам всем мозг-то промыли. Ну говорю же открытым текстом - попробуй уровень сталкера сохранить в JSON. А потом я посмотрю сколько ты его будешь просто парсить по времени. А ведь уровни сталкера по нынешним меркам игрушечные.


Я не говорю хранить уровни из Сталкера в жсонах. Ты читаешь мой текст по диагонали? Я говорю про промежуточные форматы. CSM остаётся там где и был, против него я ничего не имею.

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


Ну вот и как запарсить настройки материалов в 3д пакет?

Цитата:
Дядя Миша писал:
Скелеталка будет в отдельном формате - CDM. Впрочем у меня пока есть обоснованные сомнения в его необходимости. но посмотрим.


Я не понимаю, а чем обосновано разделять форматы 3д моделей на кучу разных форматов? Типа чтобы не парсить лишнего?

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


Отправлено Дядя Миша 19-03-2024 в 13:14:

Цитата:
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 же зачем-то предлагает настраивать кости по месту вставки персонажа У ребят что-то с логикой.

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 19-03-2024 в 13:26:

Цитата:
Дядя Миша писал:
Ну вот видишь - ломают постоянно. И я думаю не только блендер, а везде оно так. Вот тебе и "поддерживается везде".


За поддержку этих форматов отвечают разработчики софта. За поддержку CSM в этих редакторах не отвечает никто. Да и вообще врядли знают о его существовании.

Цитата:
Дядя Миша писал:
Встречный вопрос - а как запарсить настройки материалов из Doom3, Half-Life 2, Quake 3 в 3D пакет?


Это депрекатед проприетарные форматы, которые поддерживаются только усилиями энтузиастов. Так же как и с КСМ пишут плагины для каждого 3д пакета, которые лагают, крашатся и т.д. и т.п.

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


При первом взгляде да. Но ведь скелеталку солид меши тоже могут содержать. Вот если тебе например нужен сложный лифт который или дверь которые гарантировано не будут разваливаться на разные объекты как в ксаше или спирите в случае застряваний, то это вполне неплохой вариант. А нет, тебе Дядя Миша запретил делать освещение в лифте.

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


Да всё впорядке с логикой есть префабы которые делают тоже самое что твой mdl. Но есть масса случаев когда нужно удалять/модифицировать/менять иерархию костям в рантайме. Например рвущиеся регдоллы, тряпки или софтбоди. Ну или там что верталёт своими ракетами мог стрелять, а не плодить дополнительных моделей и объектов.

Цитата:
Дядя Миша писал:
Опять же скелетные модели - это вещь в себе. Т.е. это некий архив который содержит в себе сам меш, аттачменты, векторы движения, анимации, описания анимаций, эвенты. Ну вообщем кучу сопутствующей инфы. И всё это пропущено через компилятор, типа studiomdl предварительно.


Ну да, и при малейшем обновлении модели всё заново настраивать, очень удобно.

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


Отправлено Crystallize 19-03-2024 в 15:20:

Цитата:
Дядя Миша писал:
А кривые Безье он умеет? А дисплейсменты из ХЛ2?

Кому какое дело до этих призраков давно ушедших в мир теней?
Разве те же Безье это не хайполи func_illusionary? Или их суть в лодах как в третьей кваке?

Добавлено 19-03-2024 в 22:20:

Цитата:
Дядя Миша писал:
И CSM точно так же будет поддерживаться везде. Вопрос времени всего лишь.

До тех пор пока в Windows 12 не сломают WinAPI


Отправлено Дядя Миша 19-03-2024 в 15:50:

Цитата:
FiEctro писал:
За поддержку этих форматов отвечают разработчики софта

И кто же у нас отвечает за поддержку OBJ?

Цитата:
FiEctro писал:
За поддержку CSM в этих редакторах не отвечает никто

Ну а как они узнают, если я его спеки ещё не публиковал?

Цитата:
FiEctro писал:
Это депрекатед проприетарные форматы, которые поддерживаются только усилиями энтузиастов

С хрена ли они деприкатед? Сам придумал?

Цитата:
FiEctro писал:
нужен сложный лифт который или дверь которые гарантировано не будут разваливаться на разные объекты как в ксаше или спирите в случае застряваний

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

Цитата:
FiEctro писал:
Но есть масса случаев когда нужно удалять/модифицировать/менять иерархию костям в рантайме

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

Цитата:
FiEctro писал:
Ну да, и при малейшем обновлении модели всё заново настраивать, очень удобно.

Ты никогда не компилировал модели под ГолдСорс?

Цитата:
Crystallize писал:
Разве те же Безье это не хайполи func_illusionary?

Весна идёт, и снова обостренье. Какой хайполи функ_иллюзионари?
Или ты нарочно?

Цитата:
Crystallize писал:
До тех пор пока в Windows 12 не сломают WinAPI

Ну то есть чтобы отвалился вообще весь софт, я правильно понял?

Добавлено 19-03-2024 в 18:50:

Кстати. Тот же OBJ - это лютое дерьмо мамонта из 80-х. Но наш ФиЭктро, как человек полностью отравленный повесточкой будет умело лавировать между "поддерживается везде" и "деприкейтед" чтобы победить в споре.

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 19-03-2024 в 16:15:

Цитата:
Дядя Миша писал:
И кто же у нас отвечает за поддержку OBJ?


Автодеск, авторы Блендера, Ксерокс в джеке в конце концов.

Цитата:
Дядя Миша писал:
Ну а как они узнают, если я его спеки ещё не публиковал?


Я сомневаюсь что им нужны браши и лайтмапы.

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


Ничего не понял.

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


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

Цитата:
Дядя Миша писал:
Ты никогда не компилировал модели под ГолдСорс?


А ты? Я ни одного мода не видел где бы в ГС производились какие либо операции со скелетом. Там всё гвоздями прибито. MDL вещь в себе и в рамках голда работает чуть ли не в режиме Read only.

Цитата:
Дядя Миша писал:
Кстати. Тот же OBJ - это лютое дерьмо мамонта из 80-х. Но наш ФиЭктро, как человек полностью отравленный повесточкой будет умело лавировать между "поддерживается везде" и "деприкейтед" чтобы победить в споре.


Я не фанат OBJ. Я больше фанат FBX, GLTF. И я согласен что они местами избыточны. Но ты похоже не понимаешь что эта избыточность не просто так. А делать разные форматы прибитые гвоздями к конкретным задачам это конечно они будут быстрее работать, но ни о какой универсальности здесь речи быть и не может. Но я твою позицию понял что в ксаше она может быть и не нужна особо.

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


Отправлено nemyax 19-03-2024 в 16:30:

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

Иерархию не надо, а донастройка констрейнтов дело хорошее.

Цитата:
FiEctro писал:
отвалившаяся бошка продолжает двигаться за телом

А башка у нас не соединена с телом? Болтается на обрубке, как в постале два?


Отправлено FiEctro 19-03-2024 в 16:41:

Цитата:
nemyax писал:
А башка у нас не соединена с телом? Болтается на обрубке, как в постале два?


Просто отлетает с плеч и всё.

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


Отправлено Crystallize 19-03-2024 в 16:42:

Цитата:
Дядя Миша писал:
Весна идёт, и снова обостренье. Какой хайполи функ_иллюзионари?

Ну Безье обычно для всяких там труб юзали. Сейчас трубы моделькой делают.


Отправлено Дядя Миша 19-03-2024 в 16:43:

Цитата:
FiEctro писал:
Автодеск, авторы Блендера, Ксерокс в джеке в конце концов.

Ну то есть никто, понятно.

Цитата:
FiEctro писал:
Я сомневаюсь что им нужны браши и лайтмапы.

Так CSM и не поддерживает браши.

Цитата:
FiEctro писал:
Ну когда отвалившаяся бошка продолжает двигаться за телом по уровню никаких проблем с логикой нет.

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

Цитата:
FiEctro писал:
А ты? Я ни одного мода не видел где бы в ГС производились какие либо операции со скелетом. Там всё гвоздями прибито. MDL вещь в себе и в рамках голда работает чуть ли не в режиме Read only.

А ничего что для голда создал новый формат моделей с развесовкой? Фактически принёс туда фишки из сорса. Ты уже в попытках оправдаться совсем какую-то дичь понёс.

Цитата:
FiEctro писал:
Но ты похоже не понимаешь что эта избыточность не просто так.

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

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

Ты понимаешь слово "универсальность" неправильно. То есть чисто как теоретик. И все остальные твои рассуждения - это голая теория, это всё можно в мусорку выбросить. К реальной жизни оно неприменимо.

Цитата:
nemyax писал:
а донастройка констрейнтов дело хорошее

Да всё решаемо, просто прямая модификация костей из объекта это самый тупой и влобный способ какой только можно придумать. И судя по всему - в Unity оно всё так.

Добавлено 19-03-2024 в 19:43:

Цитата:
Crystallize писал:
Ну Безье обычно для всяких там труб юзали

Ландшафт можно. Удивлён?

__________________
My Projects: download page

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

Цитата:

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


Отправлено Crystallize 19-03-2024 в 16:44:

Цитата:
Дядя Миша писал:
Ландшафт можно. Удивлён?

А это практично вообще? Удобно?


Отправлено FiEctro 19-03-2024 в 16:48:

Цитата:
Дядя Миша писал:
Башку прячем - отдельную модельку с башкой спавним. Причём эта можно быть одна и та же модель, просто с разными настройками body. Да чаще всего так и делают.


Ну тоесть городить костыли, вместо того чтобы дать 1 команду. И это у меня проблемы с логикой? У Кармака когда он дуум3 писал получается тоже?

Цитата:
Дядя Миша писал:
А ничего что для голда создал новый формат моделей с развесовкой? Фактически принёс туда фишки из сорса. Ты уже в попытках оправдаться совсем какую-то дичь понёс.


Я говорю изменение модели в рантайме. Развесовка была ещё до времен голдсорса, но не в голдсорсе.

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


Ну вот у тебя на всё отговорки, мол говно. А почему говно никак объяснить не можешь.

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


Отправлено Дядя Миша 19-03-2024 в 16:59:

Про скелет может быть непонятно получилось, но я поясню. Трогать кости из игрового объекта - это табу. Так делать нельзя ни в коем случае.
Уж как минимум из соображений оптимизации сетевого траффика.
И в большинстве случаев это прекрасно получается. Исключение только физическая симуляция, ну там рагдолл, тряпки эти, отрезанные бошки.
Но опять же - зачем юзеру это всё? Назначил режим симуляции и пусть движок там сам себе управляется. Что ты собрался делать с костями из редактора?

Добавлено 19-03-2024 в 19:52:

Цитата:
FiEctro писал:
Ну тоесть городить костыли, вместо того чтобы дать 1 команду

Какую команду?

Цитата:
FiEctro писал:
У Кармака когда он дуум3 писал получается тоже?

Кармак баловался. Он в каждом новом движке делал по разному и смотрел - хорошо это или нет.

Цитата:
FiEctro писал:
Я говорю изменение модели в рантайме

Зачем тебе менять модель в рантайтме?

Цитата:
FiEctro писал:
Ну вот у тебя на всё отговорки, мол говно. А почему говно никак объяснить не можешь.

Что такого может GLTF чего не может OBJ? При этом оба формата не могут того что нужно мне. Какой вывод? Очевидный - новый формат для никого, но зато типа от разработчиков OpenGL. Типа наш родной формат - юзайте. Вот и всё. Но смысла нет.

Добавлено 19-03-2024 в 19:59:

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

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 19-03-2024 в 18:17:

Цитата:
Дядя Миша писал:
но там один только SDK-загрузчик 100 мегабайт весит.


Скачал я этот СДК. Загрузчик в 100 мегабайт не нашел. Подключил СДК и собрал тестовое приложение, которое для запуска требовало libfbxsdk.dll весом 9 мегабайт. Что я делаю не так?

А x86 либа вообще 7 мегабайт весит Ну понятно как ты форматы тестируешь, наверное даже и не качал, откуда ты эти 100 мегабайт выдумал?

Для obj работает, конвертирует в fbx.
C++ Source Code:
1
#include <iostream>
2
#include <fbxsdk.h>
3
 
4
int main(int argc, char** argv) {
5
  // Проверяем количество аргументов командной строки
6
  if (argc != 3) {
7
    std::cerr << "Usage: obj_to_fbx <input_obj_file> <output_fbx_file>" << std::endl;
8
    return 1;
9
  }
10
 
11
  const char* inputFilename = argv[1];
12
  const char* outputFilename = argv[2];
13
 
14
  // Инициализируем SDK
15
  FbxManager* fbxManager = FbxManager::Create();
16
  FbxIOSettings* ios = FbxIOSettings::Create(fbxManager, IOSROOT);
17
  fbxManager->SetIOSettings(ios);
18
 
19
  // Создаём объект FbxImporter
20
  FbxImporter* importer = FbxImporter::Create(fbxManager, "");
21
 
22
  // Пытаемся загрузить OBJ файл
23
  if (!importer->Initialize(inputFilename, -1, fbxManager->GetIOSettings())) {
24
    std::cerr << "Failed to initialize FbxImporter: " << importer->GetStatus().GetErrorString() << std::endl;
25
    return 1;
26
  }
27
 
28
  // Создаём объект FbxScene
29
  FbxScene* scene = FbxScene::Create(fbxManager, "Scene");
30
 
31
  // Загружаем сцену из импортера
32
  if (!importer->Import(scene)) {
33
    std::cerr << "Failed to import scene: " << importer->GetStatus().GetErrorString() << std::endl;
34
    return 1;
35
  }
36
 
37
  // Удаляем импортер, так как он больше не нужен
38
  importer->Destroy();
39
 
40
  // Создаём объект FbxExporter
41
  FbxExporter* exporter = FbxExporter::Create(fbxManager, "");
42
 
43
  // Пытаемся инициализировать экспортер
44
  if (!exporter->Initialize(outputFilename, -1, fbxManager->GetIOSettings())) {
45
    std::cerr << "Failed to initialize FbxExporter: " << exporter->GetStatus().GetErrorString() << std::endl;
46
    return 1;
47
  }
48
 
49
  // Пытаемся экспортировать сцену в FBX файл
50
  if (!exporter->Export(scene)) {
51
    std::cerr << "Failed to export scene: " << exporter->GetStatus().GetErrorString() << std::endl;
52
    return 1;
53
  }
54
 
55
  // Освобождаем память
56
  exporter->Destroy();
57
  scene->Destroy();
58
  ios->Destroy();
59
  fbxManager->Destroy();
60
 
61
  std::cout << "Conversion successful!" << std::endl;
62
 
63
  return 0;
64
}

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


Отправлено Дядя Миша 19-03-2024 в 19:03:

Цитата:
FiEctro писал:
Подключил СДК и собрал тестовое приложение, которое для запуска требовало libfbxsdk.dll весом 9 мегабайт. Что я делаю не так?

libfxsdk.dll (9mb) -> libfxsdk.lib(100mb).
То есть ты даже этого не знаешь?

Цитата:
FiEctro писал:
Для obj работает, конвертирует в fbx.

Я рад за него. И что нам это дало? Какие задачи удалось решить?

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 19-03-2024 в 19:09:

Цитата:
Дядя Миша писал:
libfxsdk.dll (9mb) -> libfxsdk.lib(100mb).
То есть ты даже этого не знаешь?


Видимо нет. Потому что libfbxsdk.lib весит намного меньше.


Цитата:
Дядя Миша писал:
Я рад за него. И что нам это дало? Какие задачи удалось решить?


Ну прога работает в районе 7 мегабайт для х86. И нормально конвертирует. И никаких 100 мегабайт как ты говорил на диске не занимает. Щас спецом протестил на удаленной машине где никакого fbxsdk нет. Всё работает.

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


Отправлено Crystallize 19-03-2024 в 19:17:

Цитата:
Дядя Миша писал:
libfxsdk.dll (9mb) -> libfxsdk.lib(100mb).

Зачем выкладывать lib?


Отправлено FiEctro 19-03-2024 в 19:24:

https://www.sendspace.com/file/2zt7vo
Вот можете у себя проверить, никаких 100 мегабайт там нет. Правда я новой студией компилил, наверное под XP работать не будет. Но под семеркой завелось.

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

Цитата:
Crystallize писал:
Зачем выкладывать lib?


Наверное статически линковать хочет.

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


Отправлено Дядя Миша 19-03-2024 в 20:10:

Цитата:
FiEctro писал:
Видимо нет. Потому что libfbxsdk.lib весит намного меньше.

Это .lib для линковки с внешней библиотекой. А .lib для встраивания внутрь, т.е. статичный как раз под сотку и весит.

Цитата:
FiEctro писал:
И нормально конвертирует

Ну толку с той конвертации? Заметь, редактору решительно всё равно во что экспортировать. Ты будешь строить свой движок вокруг чужого проприетарного формата? Где ты ничего поменять не сможешь?

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 19-03-2024 в 20:21:

Цитата:
Дядя Миша писал:
Ну толку с той конвертации? Заметь, редактору решительно всё равно во что экспортировать. Ты будешь строить свой движок вокруг чужого проприетарного формата? Где ты ничего поменять не сможешь?


Логично для взаимодействия с другими редакторами которые его поддерживают. Это же промежуточный формат, и абсолютно не требуется строить "движок вокруг чужого проприетарного формата".

Цитата:
Дядя Миша писал:
Это .lib для линковки с внешней библиотекой. А .lib для встраивания внутрь, т.е. статичный как раз под сотку и весит.


Увы, но такой либы я не нашел. У меня она весит 4 мегабайта.

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


Отправлено Дядя Миша 19-03-2024 в 20:27:

Цитата:
FiEctro писал:
Это же промежуточный формат, и абсолютно не требуется строить "движок вокруг чужого проприетарного формата".

Ну ты знаешь чего туда внутрь натолкали на 100 мегабайт? Какие там закладки и что оно сливает? Я бы с таким не стал завязываться.
Тем более что оно не даёт абсолютно ничего.

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 19-03-2024 в 20:48:

Цитата:
Дядя Миша писал:
Ну ты знаешь чего туда внутрь натолкали на 100 мегабайт? Какие там закладки и что оно сливает? Я бы с таким не стал завязываться.


Скажи в какой папке в fbxsdk оно лежит.

P.S. можешь мне в личку спецификацию .csm формата кинуть или загрузчик? Хочу поиграться. Попытался загрузить на основе информации из плагина на питоне, но что то вершины совсем поплыли.

Скрытый текст:
Этот текст скрытый. Вы должны оставить хотя бы одно сообщение в теме, чтобы его увидеть.

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


Отправлено Дядя Миша 19-03-2024 в 21:02:

Цитата:
FiEctro писал:
Скажи в какой папке в fbxsdk оно лежит.

Статик-либу ищи.

Цитата:
FiEctro писал:
можешь мне в личку спецификацию .csm формата кинуть или загрузчик? Хочу поиграться. Попытался загрузить на основе информации из плагина на питоне, но что то вершины совсем поплыли.

Скину, да.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Crystallize 20-03-2024 в 02:20:

Цитата:
Дядя Миша писал:
Ну ты знаешь чего туда внутрь натолкали на 100 мегабайт

Я думал это всё дебажные сстроки


Отправлено FiEctro 20-03-2024 в 10:19:

Цитата:
Дядя Миша писал:
Скину, да.


Скинь если не сложно.

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


Отправлено Дядя Миша 20-03-2024 в 10:38:

https://hlfx.ru/forum/showthread.php?s=&threadid=6083

Теперь для всех.

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 20-03-2024 в 10:54:

Дядя Миша
Спасибо большое.

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


Отправлено FiEctro 20-03-2024 в 21:41:

В общем геометрию загрузил, а вот нормали и UV как то по узбекски работают, вернее не работают. В общем моих знаний в программировании явно не хватает для таких вещей.

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


Отправлено Дядя Миша 21-03-2024 в 06:55:

Цитата:
FiEctro писал:
В общем геометрию загрузил, а вот нормали и UV как то по узбекски работают

Там ориентация по-Кармаку. Т.е. Z-вверх. А ты куда загружал?

Добавлено 21-03-2024 в 09:55:

Цитата:
FiEctro писал:
В общем моих знаний в программировании явно не хватает для таких вещей.

Ну спорить со мной тебе это явно не мешает

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 21-03-2024 в 07:20:

Цитата:
Дядя Миша писал:
Там ориентация по-Кармаку. Т.е. Z-вверх. А ты куда загружал?


А имеет значение? Ну будет моделька просто повернута по другому.

Цитата:
Дядя Миша писал:
Ну спорить со мной тебе это явно не мешает


У тебя там куча deprecated кода, возможно я что то сломал когда фиксил ошибки в твоей библиотеке, т.к. 2022 студия охотно не хотела её собирать, да и до сих пор сыпит тоннами варнингов. Впрочем это не особо важно. Я ещё поковыряю, попробую теперь наоборот fbx2csm сделать, может разберусь. А потом всё тебе выложу.

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


Отправлено Karaul0v 21-03-2024 в 07:28:

Цитата:
FiEctro писал:
куча deprecated кода


Ну да было бы красивее, если бы весь код на C++ (std::ofstream и т.п, раз уж используются std::vector), а то частично C частично C++ )
Но главное есть структура, код ведь свой сделать не проблема.




А кто подскажет загрузчик именно этого формата для blender где найти? (надо бы проверить ведь после экспорта)

__________________
Отличаюсь особой адекватностью!


Отправлено FiEctro 21-03-2024 в 07:32:

Цитата:
Karaul0v писал:
А кто подскажет загрузчик именно этого формата для blender где найти? (надо бы проверить ведь после экспорта)


Он есть в XashNT SDK, наверное можно попросить Дядю Мишу чтобы тоже его (плагин для блендера) сделать публичным. Пускай народ осваивается.

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


Отправлено Дядя Миша 21-03-2024 в 08:19:

Цитата:
FiEctro писал:
А имеет значение? Ну будет моделька просто повернута по другому.

Просто предупредил на всякий случай.

Цитата:
FiEctro писал:
У тебя там куча deprecated кода, возможно я что то сломал когда фиксил ошибки в твоей библиотеке

Что ты там фиксил? Ну добавь к тем функциям, на которые оно ругается суффикс _s вот и вся правка.

Цитата:
FiEctro писал:
т.к. 2022 студия охотно не хотела её собирать, да и до сих пор сыпит тоннами варнингов

Ну да. Зато после сборки 28-килобайтное приложение превратится в 500-600 килобайт, я понимаю. Никакой безопасности это, разумеется, не добавит, но зато компилятор перестанет нести чушь.

__________________
My Projects: download page

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

Цитата:

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


Отправлено nemyax 21-03-2024 в 10:05:

Цитата:
FiEctro писал:
тоже его (плагин для блендера) сделать публичным. Пускай народ осваивается.

Выложил импортёр:
https://sourceforge.net/projects/bl...ene_csm_import/
и экспортёр:
https://sourceforge.net/projects/bl...ene_csm_export/
Ридмишки подъедут попозже.


Отправлено FiEctro 21-03-2024 в 10:19:

Цитата:
Дядя Миша писал:
Ну да. Зато после сборки 28-килобайтное приложение превратится в 500-600 килобайт, я понимаю. Никакой безопасности это, разумеется, не добавит, но зато компилятор перестанет нести чушь.


Ну вот зачем обманываешь? 22 килобайта весит у меня утилита и libfbxsdk.dll 7.1 мегабайт.

Никаких сотен мегабайт о которых ты тут писал, я так и не нашел. Может ты что то неправильно настроил?

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


Отправлено Дядя Миша 21-03-2024 в 10:34:

Цитата:
FiEctro писал:
22 килобайта весит у меня утилита

Она у тебя прилинкована к CRT 22-й версии, который на XP не установится уже. А если ты включишь статическую линковку, то разожрется как раз до 700 килобайт или около того.

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 21-03-2024 в 10:34:

Цитата:
Дядя Миша писал:
Что ты там фиксил? Ну добавь к тем функциям, на которые оно ругается суффикс _s вот и вся правка.


Error C2664 'bool model_t::ParseMaterial(const unsigned char *&)': cannot convert argument 1 from 'unsigned char *' to 'const unsigned char *&' fbxtool \fbxexport\fbxtool\fbxtool\model_csm.h 314

на это:
mat_ptr = mat_buf;
while( ParseMaterial( mat_ptr ));

я поменял на:

const unsigned char* mat_ptr = reinterpret_cast<const unsigned char*>(mat_buf);
while( ParseMaterial( mat_ptr ));

Впрочем материалы я ещё не трогал.

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


Отправлено Дядя Миша 21-03-2024 в 11:57:

Цитата:
FiEctro писал:
cannot convert argument 1 from 'unsigned char *' to 'const unsigned char *&'

Совсем с дуба рухнули
Ну да, если учить язык, в который добавили такой идиотизм, то спецов по крестам действительно скоро совсем не останется.

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 21-03-2024 в 12:51:

Дядя Миша
Ну вот за такую фигню я C++ не люблю и не понимаю. Куча типов которые делают одно и тоже но нифига друг с другом не совместимы, а порой и вот такие опусы. А с указателями так вообще вынос мозга.

Цитата:
Дядя Миша писал:
Она у тебя прилинкована к CRT 22-й версии, который на XP не установится уже. А если ты включишь статическую линковку, то разожрется как раз до 700 килобайт или около того.


Я не очень понимаю как включать совместимость с XP. Подскажи.

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


Отправлено Дядя Миша 21-03-2024 в 13:09:

Цитата:
FiEctro писал:
Куча типов которые делают одно и тоже но нифига друг с другом не совместимы

Константный тип - это защита от записи. Ну так себе решение, конечно.
Проблема в том, что модификатор const может быть применим не только к переменной, но и к указателю на нее и к ссылке на указатель. И вот это действительно у большинства полностью выносит мозг. Причём эти правила с каждой новой редакцией становятся всё строже и строже, хотя толку от этого нет никакого. Потому что язык давно исправляют не для людей, а для того, чтобы он как можно точнее соответствовал заявленной спецификации.

Цитата:
FiEctro писал:
Я не очень понимаю как включать совместимость с XP. Подскажи.

Никак. Последняя студия где её можно было включить - 2017-я.
Да я не удивлюсь, если в новых студиях вообще отключат поддержку 32-х битных приложений, как когда-то вырубили поддержку 16-битных.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Karaul0v 21-03-2024 в 16:53:

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

Я включил в newbspguy.
Там в свойствах указать минимальную версию 5.01… затем добавить там пару defin'ов не помню на память каких. Часть функционала становится не доступным, типа новые Winapi и тп

__________________
Отличаюсь особой адекватностью!


Отправлено FiEctro 21-03-2024 в 18:05:

Дядя Миша
Опубликовал в на форуме ксаша в маcтерской что получилось. Увы на большее я пока не способен, строго не судить

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


Отправлено Дядя Миша 21-03-2024 в 21:27:

FiEctro Отписался в теме.

Цитата:
Karaul0v писал:
Я включил в newbspguy.

И что? Работает под XP?

__________________
My Projects: download page

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

Цитата:

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


Отправлено Karaul0v 21-03-2024 в 22:31:

Цитата:
Дядя Миша писал:
И что? Работает под XP?


Ну я написал что да Но не проверял т.к не было возможности, но должно, пока никто из пользователей не жаловался что на XP не запустилось)

__________________
Отличаюсь особой адекватностью!


Отправлено Дядя Миша 22-03-2024 в 05:37:

А где его скачать-то можно?

__________________
My Projects: download page

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

Цитата:

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


Отправлено Karaul0v 22-03-2024 в 07:06:

Цитата:
Дядя Миша писал:
где его скачать-то

https://github.com/UnrealKaraulov/n...releases/latest

newbspguy_winxp_x86_release.zip

__________________
Отличаюсь особой адекватностью!


Отправлено Дядя Миша 22-03-2024 в 08:33:

Работает...

Добавлено 22-03-2024 в 11:33:

Корочи там дохрена функций, отсутствующих в "ядре".

__________________
My Projects: download page

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

Цитата:

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


Отправлено Crystallize 22-03-2024 в 09:32:

Цитата:
Karaul0v писал:
затем добавить там пару defin'ов не помню на память каких.

Ты по какому-то тутору делал?


Отправлено FiEctro 22-03-2024 в 09:47:

Цитата:
Дядя Миша писал:
Там ориентация по-Кармаку. Т.е. Z-вверх. А ты куда загружал?


К слову там ещё у тебя и по Y модель толи отражена, толи повёрнута на 180 градусов, надо разбираться. Как говорится не ищем лёгких путей. А может и сам блендер поворачивает, чёрт его знает.

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


Отправлено Дядя Миша 22-03-2024 в 12:05:

Цитата:
FiEctro писал:
А может и сам блендер поворачивает, чёрт его знает.

Это к Нёмычу, он знает.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Karaul0v 22-03-2024 в 15:36:

Ну вот что у меня получилось сделать в newbspguy, плагин блендера не бьет на группы, не устанавливат текстуры, так что проверить правильность сгенерированного CSM я не могу.

__________________
Отличаюсь особой адекватностью!


Отправлено Karaul0v 22-03-2024 в 15:37:

И вот класс для записи чтения что у меня вышел, на C++, правда растолстел был куда меньше без логов и проверок.

Там кое что лишнее есть это я краш словил и добавил лишнюю инициализацию но краш с этим не был связан )

__________________
Отличаюсь особой адекватностью!


Отправлено nemyax 23-03-2024 в 08:40:

Цитата:
Karaul0v писал:
не устанавливат текстуры, так что проверить правильность сгенерированного CSM я не могу



А на какие группы надо бить?


Отправлено Karaul0v 23-03-2024 в 09:08:

Цитата:
nemyax писал:


А на какие группы надо бить?


Мне кое-кто написал что это лучше obj, т.к в бинарном, но в obj я могу создавать объекты и группы вершин, тут я пробовал но при импорте в блендер ничего не создается.

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

Еще кое-кто написал что можно лайтмапу https://hlfx.ru/forum/showthread.ph...0392#post220392 сохранить но я так понял это не возможно если не создавать атласы, а так пользователям не удобно будет текстуры менять.

__________________
Отличаюсь особой адекватностью!


Отправлено Raid 23-03-2024 в 09:16:

Цитата:
Karaul0v писал:
материалы пустые без текстур.

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

__________________
Ты себя ведёшь как маленький ребёнок, который на улице увидел говно и обрадовался - говно-говно, смотрите кто-то насрал, ну и дела! © Дядя Миша

лиса.забирать.сыр.кусочек = ворона.уронить.сыр.кусочек( 1шт ); © FiEctro


Отправлено nemyax 23-03-2024 в 09:21:

Цитата:
Karaul0v писал:
мне сказали что я могу написать путь к текстурам в материалах csm

Это не так.


Отправлено Karaul0v 23-03-2024 в 10:09:

Цитата:
nemyax писал:
Это не так.

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

написал мне так)))
Ну еще казалось что лайтмапу можно указать тоже как путь к текстуре в материале но потом оказалось что все сложнее)

Просто тяжело что-то делать не зная что ты делаешь, настроение только портится от этого

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

__________________
Отличаюсь особой адекватностью!


Отправлено nemyax 23-03-2024 в 10:52:

Я могу сделать чтобы при наличии картинки рядом с ксмкой она грузилась в качестве диффузки в блендер, не вопрос. Но для движка в общем случае так работать не будет.


Отправлено Karaul0v 23-03-2024 в 10:56:

Цитата:
nemyax писал:
Я могу сделать чтобы при наличии картинки рядом с ксмкой она грузилась в качестве диффузки в блендер, не вопрос. Но для движка в общем случае так работать не будет.



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

я так понял формат CSM еще в активной разработке находится?


дядя Миша мне уже что-то на этот счет ответил типа предусмотрит то ли путь то ли что-то еще, я пока не понял буду ждать

__________________
Отличаюсь особой адекватностью!


Отправлено Дядя Миша 23-03-2024 в 14:34:

Надо завести такую особую структурку чисто для редактора.
Там перечислить поддерживаемые расширения для текстур и относительный патч к ним. Ну и возможно еще какую-то полезную информацию.
Движку это не нужно, а вот редактор будет это использовать.

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 23-03-2024 в 16:33:

Цитата:
Дядя Миша писал:
FiEctro Отписался в теме.


Я обновление там выложил

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


Отправлено SNMetamorph 24-03-2024 в 01:30:

Цитата:
Дядя Миша писал:
И кроме ASE. И кроме SMD.


SMD умеет, с каких-то пор. Выдержка из Valve Developer Wiki:
Цитата:

Note:
SMD version 3 supports up to 8 additional UV layers after additional links. Format <int|extra uvs> U1 V1 U2 V2 [...].
Nonetheless, the MDL formats used by both GoldSrc and Source only support a single set of UVs, except for CSGO, which uses a second set for $decaltexture.


Так это ещё и расширение, которое не ломает обратную совместимость.

__________________
PrimeXT
GoldSrc Monitor
SMD Splitter
mdl-flip (gFlip analog)
Xash3D Modding Discord


Отправлено Karaul0v 24-03-2024 в 06:13:

Цитата:
SNMetamorph писал:
SMD


Кстати на счёт SMD формата, можешь свою резалку SMD обновить сделать поддержку UV за пределами 0-1 ? А то пишет нет геометрии и не режет Где-то находил тут на форуме другая мелкая резалка есть и она справляется но там да режет по треугольникам а не по количеству вершин и не всегда валидный результат выдает из-за этого.

__________________
Отличаюсь особой адекватностью!


Отправлено Дядя Миша 24-03-2024 в 07:50:

Цитата:
SNMetamorph писал:
SMD умеет, с каких-то пор

Это не имеет никакого значения. Потому что абсолютно все, кто пытался сохранить дополнительные каналы в модель наивно полагали что этого и достаточно. Поэтому дополнительный канал:
1. всегда идёт в диапазоне 0-1 (а не в юнитах)
2. никак не помечает островки, принадлежащие одной группе.
Получается что при каждой компиляции эти островки надо находить заново.
А их поиск возможен только при индексации вертексов. Второй момент - мы хотим иметь качество регулировки в люкселях. То есть из относительных координат неизвестно какой размерности, нам надо сделать юниты, умножить на сэмплсайз. Это всё сами-по-себе достаточно нетривиальные задачки, которые к тому же предполагают, что развертка будет сгенерирована каким-то левым сторонним приложением. И времени это всё очень прилично занимает. К примеру уровень ЧАЭС генерировал всё необходимое порядка получаса. Но зато потом результат записался в CSM и надобность в повторных рассчётах отпала полностью.

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 24-03-2024 в 14:12:

анимированные модели надо сразу сохранять в CSM из промежуточного файла с метадатой, нафига ещё и smd конвертеры писать, с ума сойдёшь с вашими костылями


Отправлено Дядя Миша 24-03-2024 в 14:52:

CSM не поддерживает анимированные модели.

Цитата:
FiEctro писал:
нафига ещё и smd конвертеры писать, с ума сойдёшь с вашими костылями

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

Добавлено 24-03-2024 в 17:52:

Но построить хорошую развертку - не самая простая задачка.

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 24-03-2024 в 15:06:

Цитата:
Дядя Миша писал:
Но построить хорошую развертку - не самая простая задачка.


Вот это можешь глянуть.
https://github.com/jpcy/xatlas


Отправлено Дядя Миша 24-03-2024 в 15:41:

Оно всё так или иначе базируется на Thekla Atlas - разработках от Игнасио Кастано, либо на UVAtlas от Microsoft. И то и другое не годится примерно никак. Это параметризаторы, которые строят какуе-та развертку, а потом во всех учебниках пишут, что для хорошего освещения модель надо тщательно готовить. Это не мой путь.

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 24-03-2024 в 17:26:

Дядя Миша
А щито поделать, полигоны бывают очень большие причём по одной оси, на Спонзе это самое мерзкое. Тогда надо по методу халфы разбивать всё по тайлам и жестко привязывать всё к разрешению текстуры. Но выглядит это как гавно.
Возможно можно сделать промежуточное что то, чтобы например он разбивал только слишком вытянутые островки, а более менее адекватные не трогал.


Отправлено Дядя Миша 24-03-2024 в 20:46:

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

Есть и такое в компиляторе, всякое есть.

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 25-03-2024 в 07:39:

С разбиениями задача решается куда проще, главное научиться детектить самые говняные варианты островков и разбивать их на более мелкие. Это и вышеперечисленные вытянутые, и Г образные, и О образные когда внутри рамки куча пустого места. И вроде того же потолка на спонзе который вроде должен иметь прямоугольный остров, но из-за его внутренней арочной геометрии он распухает, ну и в слишком мелкие чтобы тексели влезали. Эти меры уже избавят от 90% проблем с разверткой.


Отправлено Дядя Миша 25-03-2024 в 08:58:

Вообще-то наоборот - островков должно быть как можно меньше.
В идеале - вся развертка должна быть одним островком. Тогда будет швов мало.

Добавлено 25-03-2024 в 11:58:

Ксаш кстати островки не бьёт на более мелкие, он наоборот старается из кучи островков сделать один. А если будет такая ситуация, с гигантским полигоном - ну выделит под него целую страницу лайтмапы.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Karaul0v 25-03-2024 в 09:51:

В newbspguy добавил рендер .csm (можно открыть) но пока без текстур я как бы вообще не понимаю где их пытаться найти если в CSM файле не указан путь даже

Так что на данный момент без текстур.

Ну и там исправил открытие .mdl / .spr файлов для просмотра.

__________________
Отличаюсь особой адекватностью!


Отправлено FiEctro 25-03-2024 в 10:17:

Karaul0v
Там имя материала по идее как в сорсе должно ассоциироваться с материалами из игры. Но поскольку их у тебя нет, то и суда нет. Можно просто использовать имя материала как имя текстуры, естественно карты нормалей и прочие настройки материала в пролёте. Я говорил ДМ что это не удобно, но он упорно стоит на своём. А теперь тебе придётся писать парсер его материал системы.


Отправлено Дядя Миша 25-03-2024 в 12:46:

Цитата:
FiEctro писал:
просто использовать имя материала как имя текстуры, естественно карты нормалей и прочие настройки материала в пролёте

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

Добавлено 25-03-2024 в 15:44:

Цитата:
FiEctro писал:
А теперь тебе придётся писать парсер его материал системы.

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

Добавлено 25-03-2024 в 15:46:

Цитата:
FiEctro писал:
естественно карты нормалей и прочие настройки материала в пролёте

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

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 25-03-2024 в 13:09:

Цитата:
Дядя Миша писал:
Ты никак не настроишь материал из редактора.


Ну дефолтные поля, там альбедо, нормал, спекуляр, АО, металик, роуднес, альфа, эмишен и т.д. можно вполне сохранять. А так у тебя модель даже про альбедо не знает.

Цитата:
Дядя Миша писал:
Кажется Unity сейчас делает нечто подобное.


Юнити умеет генерировать стандартный ПБР материал из FBX. Я думаю это можно сделать и для конвертации в CSM. Но нужно чтобы ты опубликовал исходник библиотеки материалов, ну или как минимум сделал общий шаблон для стандартного PBR материала совместимого с твоими шейдерами. В любом случае шариться по папкам движка в поисках нужного материала, я даже пока не знаю как.


Отправлено Дядя Миша 25-03-2024 в 13:46:

Цитата:
FiEctro писал:
Ну дефолтные поля, там альбедо, нормал, спекуляр, АО, металик, роуднес, альфа, эмишен и т.д. можно вполне сохранять.

Ты опять не понял. Нет никаких дефолтных полей. Вообще, совсем.

Ты в кваке или в халфе видел какие-то дефолтные поля? Материал это абстрактное понятие, у него нет чёткой спецификации. Потому что игры бывают какие угодно. И в этих играх нам порой надо симулировать картинку 90-х 1 в 1. Или наоборот - подтягивать к переднему краю прогресса.
И ты никак это не сделаешь, оперируя дефолтным набором настроек, который кстати никакой и дефолтный.

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

Нет никакой библиотеки материалов, равно как и её исходника. Ты пытаешься мыслить категориями привычных тебе движков.

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 25-03-2024 в 14:42:

Это уже больше решает шейдер, нежели материал. Материал это просто описание свойств поверхности независимо от рендера.


Отправлено Дядя Миша 25-03-2024 в 16:00:

FiEctro у меня к тебе убедительная просьба - прочитай документацию по системе материалов и все приложения к ней.

Добавлено 25-03-2024 в 19:00:

Цитата:
FiEctro писал:
Материал это просто описание свойств поверхности независимо от рендера.

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

__________________
My Projects: download page

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

Цитата:

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


Отправлено Crystallize 25-03-2024 в 17:59:

Цитата:
Дядя Миша писал:
В тех движках, к которым ты привык - безусловно. В Ксаш материал - это вещь, которая формирует новый рендерер. Именно формирует, потому что движок полностью рулится тем, что написано в материале. А не просто принимает к сведенью какие-то пути к текстурам.

Так может не стоит называть разные подходы одинаковыми терминами?


Отправлено Дядя Миша 25-03-2024 в 20:59:

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

Добавлено 25-03-2024 в 23:59:

Попытаюсь на примере объяснить разницу. Как устроены материалы во всех движках?
Есть некий фиксированный набор параметров, который вы можете указать материале. Строго определённые имена этих параметров, либо вообще бинарная структура. Иногда вы можете так же определить фиксированный набор пользовательских параметров с идиотскими именами, типа UserParam1, UserParam2. Дальше всё это парсится внутри движка и перенаправляется в шейдер, где подключается к точно таким же фиксированным именам юниформов. Т.е. движок по сути занимается каким-то копированием данных с жестко определёнными входными и выходными именами. Всё это берёт начало со времён Quake3, когда программируемого конвейера ещё не было. Т.е. исторически сложилось, да так и осталось.
Хотя смысла в этом никакого.
В Ксаше материалы устроены иначе. Вы объявляете переменную - и она автоматически превращается в юниформ. Или текстурный юнит. И вы назначаете этой переменной текстуру или источник данных. Согласно объявленному типу данных. Это может константное значение, выражение, какие-то данные из недр движка (вы сами выбираете, какие именно).
И всё это автоматически направляется в ваш шейдер. Движок об этом ничего не знает и занимается переброской абстрактных данных. Таким образом возможность написать любой шейдер больше не ограничена фиксированным набором входных данных, которые описывает материал.
Теперь в шейдер можно передавать любые данные. И всё это описано прямо в материале.
Тут легко догадаться, что подобное описание материала будет сильно напоминать уже полноценный язык программирования, а не лаконичный набор параметров. То есть это как минимум неудобно для художников.
И тут в дело вступает вторая подсистема - автозамена с перегрузкой.
Которая позволяет передавать произвольный набор параметров и оформлять макросы и как набор слов и как набор с фиксированными параметрами. Т.е. технически вы сперва формируете конвейер с произвольными эффектами - именно такими, какие нужны для вашей игры. А потом прячете все настройки под макросы и вместо кучи кода пишете одно-два ключевых слова, как будто работаете с классической системой материалов из конца 90-х.
Мощность системы тестировалась на возможности описать на ней шейдерный язык из Quake3, Doom 3. Так вот - моя система материалов позволяет без вмешательства в движок полностью реализовать шейдеры из Quake 3, чисто на макросах и автозаменах. И это будет полностью корректно работать, 1 в 1, как и в самой Quake3. К тому же есть возможность выполнять условия для оптимизации прямо по ходу чтения этих материалов. Я вам выложу имплементацию для Quake3 в очередной бета-версии. Помнится я однажды уже выкладывал, но тогда никто не понял что это такое. Да и сейчас я вижу доходит с величайшим трудом.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Crystallize 26-03-2024 в 01:23:

Цитата:
Дядя Миша писал:
Так вот - моя система материалов позволяет без вмешательства в движок полностью реализовать шейдеры из Quake 3, чисто на макросах и автозаменах

И порталы тоже?


Отправлено FiEctro 26-03-2024 в 05:56:

Цитата:
Дядя Миша писал:
Попытаюсь на примере объяснить разницу. Как устроены материалы во всех движках?
Есть некий фиксированный набор параметров, который вы можете указать материале. Строго определённые имена этих параметров, либо вообще бинарная структура. Иногда вы можете так же определить фиксированный набор пользовательских параметров с идиотскими именами, типа UserParam1, UserParam2. Дальше всё это парсится внутри движка и перенаправляется в шейдер, где подключается к точно таким же фиксированным именам юниформов. Т.е. движок по сути занимается каким-то копированием данных с жестко определёнными входными и выходными именами. Всё это берёт начало со времён Quake3, когда программируемого конвейера ещё не было. Т.е. исторически сложилось, да так и осталось.
Хотя смысла в этом никакого.
В Ксаше материалы устроены иначе. Вы объявляете переменную - и она автоматически превращается в юниформ. Или текстурный юнит. И вы назначаете этой переменной текстуру или источник данных. Согласно объявленному типу данных. Это может константное значение, выражение, какие-то данные из недр движка (вы сами выбираете, какие именно).
И всё это автоматически направляется в ваш шейдер. Движок об этом ничего не знает и занимается переброской абстрактных данных. Таким образом возможность написать любой шейдер больше не ограничена фиксированным набором входных данных, которые описывает материал.



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

Цитата:
Дядя Миша писал:
Мощность системы тестировалась на возможности описать на ней шейдерный язык из Quake3, Doom 3. Так вот - моя система материалов позволяет без вмешательства в движок полностью реализовать шейдеры из Quake 3, чисто на макросах и автозаменах. И это будет полностью корректно работать, 1 в 1, как и в самой Quake3. К тому же есть возможность выполнять условия для оптимизации прямо по ходу чтения этих материалов. Я вам выложу имплементацию для Quake3 в очередной бета-версии. Помнится я однажды уже выкладывал, но тогда никто не понял что это такое. Да и сейчас я вижу доходит с величайшим трудом.


Так, а как это влияет на поля с текстурами? Скажем Diffuse = "kek.png", Albedo("kek.png), Texture2d = "kek.png" это совершенно разные по концепции вещи? Ты же сам говоришь что система гибкая, так почему нельзя использовать какой то общий совместимый базовый шаблон? А там пускай пользователь конвертирует в материалы третьей кваки если ему надо.


Отправлено Дядя Миша 26-03-2024 в 07:29:

Цитата:
Crystallize писал:
И порталы тоже?

Зеркал, порталов пока нет, но в перспективе да и это тоже заработает.
Но конечно порталу надо будет камеру указать.

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

Ну вот и интерпретируйте имя материала как путь к текстуре. Это единственное что можно гарантировать в стороннем редакторе.

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 26-03-2024 в 09:01:

Ну понятно, опять всё вручную прописывать в блокнотике


Отправлено Raid 26-03-2024 в 10:40:

Цитата:
FiEctro писал:
Ну понятно, опять всё вручную прописывать в блокнотике

Не всё. Если ты программист - можно добавить суффиксы к именам текстур, как это сейчас в MIR - _bump, _spec, _luma, которые цепляются автоматически. Я, правда, не программист, но у меня есть. Имя материала в блендере - это ссылка, так же как и имя материала для меша после экспорта. По этому адресу цепляются битмапы. Дефолтный материал есть - то есть можно не создавать отдельный файл в блокноте, если ты, конечно, не хочешь, например, добавить прозрачность по альфе. Продолжая логику суффиксов, можно вообще все материалы выстроить по такому принципу - _metal, _wood, _glass итд. Обозвал, закинул - и какой надо сразу.

__________________
Ты себя ведёшь как маленький ребёнок, который на улице увидел говно и обрадовался - говно-говно, смотрите кто-то насрал, ну и дела! © Дядя Миша

лиса.забирать.сыр.кусочек = ворона.уронить.сыр.кусочек( 1шт ); © FiEctro


Отправлено FiEctro 26-03-2024 в 11:26:

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


Цитата:
Raid писал:
Продолжая логику суффиксов, можно вообще все материалы выстроить по такому принципу - _metal, _wood, _glass итд. Обозвал, закинул - и какой надо сразу.


И получить DLL_hell только для суфиксов.


Отправлено Дядя Миша 26-03-2024 в 11:59:

Цитата:
FiEctro писал:
Короче такая система крайне не юзерфрендли, но зато материалы из ку3 работают, правда я не знаю кому они нужны вообще.

Ты можешь придумать для себя абсолютно любую систему материалов.
И Ксаш её подхватит. Устроит такой вариант?

Но с ограничением, что описание каждого материала - это именованный блок фигурных скобок

C++ Source Code:
"materialname"
{
}

А внутри этих скобок выдумывай любые ключевые слова и любые параметры.
И точи под них плагин или редактор.

Добавлено 26-03-2024 в 14:58:

Есть ещё вариант запись материала в одну строку, но он детально не тестировался.

Добавлено 26-03-2024 в 14:59:

Цитата:
FiEctro писал:
И получить DLL_hell только для суфиксов.

Ну точно покусал кои-кто. А может весна. Я не знаю.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Raid 26-03-2024 в 13:21:

Цитата:
FiEctro писал:
И получить DLL_hell только для суфиксов.

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

__________________
Ты себя ведёшь как маленький ребёнок, который на улице увидел говно и обрадовался - говно-говно, смотрите кто-то насрал, ну и дела! © Дядя Миша

лиса.забирать.сыр.кусочек = ворона.уронить.сыр.кусочек( 1шт ); © FiEctro


Отправлено FiEctro 27-03-2024 в 07:01:

Цитата:
Raid писал:
все материалы выстроить по такому принципу - _metal, _wood, _glass итд. Обозвал, закинул - и какой надо сразу.


Речь не про длл, а то что вы всячески стараетесь прибить параметры гвоздями. В итоге придётся пользователем делать свои дублирующие теги в духе _wall34868 которые ещё не факт что не будут конфликтовать.
Как говорил Дядя Миша материал описывает просто настройки для униформов шейдера.

Цитата:
Дядя Миша писал:
Есть ещё вариант запись материала в одну строку, но он детально не тестировался.


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

Цитата:
Дядя Миша писал:
Ты можешь придумать для себя абсолютно любую систему материалов.
И Ксаш её подхватит. Устроит такой вариант?

Но с ограничением, что описание каждого материала - это именованный блок фигурных скобок


С экспортом ещё более менее понятно. А вот как импортировать из чужих шейдеров?


Отправлено Crystallize 27-03-2024 в 07:50:

Цитата:
Дядя Миша писал:
Я вам выложу имплементацию для Quake3 в очередной бета-версии. Помнится я однажды уже выкладывал, но тогда никто не понял что это такое. Да и сейчас я вижу доходит с величайшим трудом.

Просто всем глубоко наплевать на Quake 3


Отправлено Дядя Миша 27-03-2024 в 07:57:

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

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

Цитата:
FiEctro писал:
В итоге придётся пользователем делать свои дублирующие теги в духе _wall34868

Зачем?

Цитата:
FiEctro писал:
Как говорил Дядя Миша материал описывает просто настройки для униформов шейдера.

Материал много чего описывает.

Цитата:
FiEctro писал:
А вот как импортировать из чужих шейдеров?

Приведи пример, что ты собрался импортировать.

Добавлено 27-03-2024 в 10:57:

Ну хотя я понял откуда такое недоверие. Это ты по Unity судишь.

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 27-03-2024 в 08:53:

Цитата:
Дядя Миша писал:
Приведи пример, что ты собрался импортировать.


Ну вот есть условно у тебя моделька карты из сталкера в формате csm. Мне надо подгрузить или хотя бы сериализовать в одном месте все пути к текстурам, дифузки, карты нормалей и так далее.


Цитата:
Дядя Миша писал:
Ну хотя я понял откуда такое недоверие. Это ты по Unity судишь.


Скорее по голдсорцу. Оттуда пошли эти дуратские теги и нарративы что имя текстуры == имени материала.

Цитата:
Дядя Миша писал:
Ему объясняешь, что ничего никуда не прибито, он говорит - я понял, всё прибито гвоздями.


_metal, _wood, _glass
А это что такое?

Цитата:
Дядя Миша писал:
Материал много чего описывает.


Это не правильно. Материал не должен перекладывать на себя функционал шейдера как это делает третья квака. Это должна быть просто структура без какой либо логики.


Отправлено Raid 27-03-2024 в 09:00:

Цитата:
FiEctro писал:_metal, _wood, _glass
А это что такое? [/B]

Это пример, умозрительная конструкция. Моя личная.

__________________
Ты себя ведёшь как маленький ребёнок, который на улице увидел говно и обрадовался - говно-говно, смотрите кто-то насрал, ну и дела! © Дядя Миша

лиса.забирать.сыр.кусочек = ворона.уронить.сыр.кусочек( 1шт ); © FiEctro


Отправлено Дядя Миша 27-03-2024 в 09:10:

Цитата:
FiEctro писал:
Мне надо подгрузить или хотя бы сериализовать в одном месте все пути к текстурам, дифузки, карты нормалей и так далее.

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

Цитата:
FiEctro писал:
Оттуда пошли эти дуратские теги и нарративы что имя текстуры == имени материала.

Ксашевская система материалов НЕ НАВЯЗЫВАЕТ такой подход. Она его просто позволяет реализовать на уровне пользователя, не модифицируя бинарные файлы, чисто из скриптов. Raid сказал что ему так будет удобнее - я ему это сделал. Собственно всё. Придумай любой другой подход и точно так же настрой в скриптах.

Цитата:
FiEctro писал:
Это не правильно. Материал не должен перекладывать на себя функционал шейдера как это делает третья квака. Это должна быть просто структура без какой либо логики.

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

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 27-03-2024 в 09:15:

Цитата:
Дядя Миша писал:
Сказал человек в жизни не написавший ни одного движка


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

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


Вот не надо, всё я читал. Может не всё понял или забыл - это да. Но читал.


Отправлено Дядя Миша 27-03-2024 в 11:48:

Ты и не вчитываешься в смысл, пропускаешь мимо ушей.

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 29-03-2024 в 06:55:

Цитата:
Дядя Миша писал:
FBX - это склад говна с 95-го года.


К слову обнаружил что вес CSM больше раз в 5 чем FBX. Статик.ксм из примера Сталкера весит 50мегабайт, а модель сконвертированная в FBX - 10 мегабайт при том что FBX содержит куда больше в себе информации. Загружается "склад говна" в блендер соответственно в 5 раз быстрее чем CSM. Надо бы ещё с другими форматами посравнивать. Интересно от чего CSM так пухнет?


Отправлено Дядя Миша 29-03-2024 в 07:21:

Цитата:
FiEctro писал:
К слову обнаружил что вес CSM больше раз в 5 чем FBX

Ну значит FBX сжатый внутри. А CSM - неиндексированный.
После любой попытки собрать карту с этой моделью, он похудеет в размерах от двух до трёх раз.

Цитата:
FiEctro писал:
Загружается "склад говна" в блендер соответственно в 5 раз быстрее чем CSM

Потому что для FBX нативный лоадер на С++. А загрузчик CSM полностью на Питоне. Попробуй написать загрузчик FBX на питоне, посмотри сколько он будет загружаться.

Цитата:
FiEctro писал:
FBX содержит куда больше в себе информации

И какую же информацию он содержит?

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 29-03-2024 в 08:08:

Цитата:
Дядя Миша писал:
И какую же информацию он содержит?


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

Кстати, как насчёт добавить в спецификацию csm тоже иерархию объектов? Ну напимер если я захочу какую то стенку выключать, ну неудобно её таскать отдельной моделью.

Цитата:
Дядя Миша писал:
Потому что для FBX нативный лоадер на С++. А загрузчик CSM полностью на Питоне. Попробуй написать загрузчик FBX на питоне, посмотри сколько он будет загружаться.


Логично, но пока не знаю как проверить.

Цитата:
Дядя Миша писал:
Ну значит FBX сжатый внутри. А CSM - неиндексированный.


Да ты прав, надо с другими неиндексироваными сравнить. Правда я хз действительно FBX сжимается или нет. Довольно шустро он сталкеровские карты распаковывает даже для крестов.


Отправлено Karaul0v 29-03-2024 в 08:56:

Конкретно CSM реально что-то мало информации в себе содержит, я сначала подумал группы это что бы разбивать модель на body что бы там взаимодействовать в игре (вкл/ выкл часть модели) но дали ведь только код конвертера и структуру файла, а подробного описания не было, гадай сам называется что к чему

Добавлено 29-03-2024 в 11:56:

Я так по логике прикинул ну и показалось логичным что это какое-то разбитие модели на body, судя по тому что написали это что-то совсем другое оказалось)

__________________
Отличаюсь особой адекватностью!


Отправлено Дядя Миша 29-03-2024 в 09:33:

Цитата:
FiEctro писал:
Ну как минимум настройки материалов, иерархию объектов и их трансформы

CSM - это отдельный объект. Он и не должен содержать никакой иерархии.
Отдельный, но любой. Как маленькая моделька, так и весь уровень.

Цитата:
FiEctro писал:
Интересно теперь добавить бы сами текстуры в fbx, но относительно чего мне их искать? Папки игры? Папки движка?

Я сделаю специальную структуру для редактора с этой информацией, как и обещал.

Цитата:
FiEctro писал:
Кстати, как насчёт добавить в спецификацию csm тоже иерархию объектов?

Иерархия - в текстовом формате .source, который аналог .map.
Ксашевский Джек умеет в него сохранять.

Цитата:
FiEctro писал:
Да ты прав, надо с другими неиндексироваными сравнить

Ты не понял. CSM индексируется пост-процессом. Только после того, как компилятор попытается собрать с ним карту. Если ты самостоятельно получал csm-файлы с помощью декомпиляторов или иных тулз, то они всегда будут неоптимизированными. А после того как ты начал компилировать уровень с ним, то компилятор произведёт над ними определённые операции и их размер может уменьшиться вдвое-втрое.
Разумеется я мог бы туда добавить и сжатие архиватором, да много чего бы мог бы. Но только хрен тогда бы получилось написать загрузчик на питоне. Пришлось бы таскать с собой библиотеку. А это как раз то, чего я хотел бы избежать.

Цитата:
FiEctro писал:
Довольно шустро он сталкеровские карты распаковывает даже для крестов.

Питон медленнее С++ примерно в тысячу раз.

Цитата:
Karaul0v писал:
Конкретно CSM реально что-то мало информации в себе содержит

Он и не должен содержать в себе много. Это осознанный выбор.

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 29-03-2024 в 09:52:

Цитата:
Дядя Миша писал:
Иерархия - в текстовом формате .source, который аналог .map.


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


Отправлено Дядя Миша 29-03-2024 в 13:05:

Цитата:
FiEctro писал:
Вместо одного файла целая мешанина с весьма абстрактными ссылками друг на друга

Ну представь что у тебя пропсы лежат в папке models и ты на них ссылаешься из разных карт. Ты же сам мне говорил про эффективное переиспользование ресурсов. Как только я его сделал, ты переобулся и теперь топишь за "всё-в-одном". Ну положи эти ресурсы по адресу maps\mapname - сталкеровский конвертор, собственно так и работает.

Добавлено 29-03-2024 в 16:02:

Цитата:
FiEctro писал:
Вместо одного файла целая мешанина с весьма абстрактными ссылками друг на друга

Да без проблем, упакую в .bundle. Вот только полноценная имплементация .bundle - это примерно 100 килобайт, а может и больше. Я её сейчас оформлю в библиотеку, потом она устареет, потом половина забудет её заменить, потом в ней поменяются экспортные функции, всем придётся переписывать плагин, который её грузит и здравствуй DLL Hell. Теперь уже самый натуральный. На мой взгляд то что все файлы лежат снаружи - это как раз удобно. Потому что ты можешь их инспектировать даже без редактора.
Т.е. аварийный режим. А что ты сделаешь с FBX без редактора? Да ничего ты не сделаешь.

Добавлено 29-03-2024 в 16:05:

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

__________________
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:11.
Показать все 114 сообщений этой темы на одной странице

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