FiEctro писал: нафига ещё и smd конвертеры писать, с ума сойдёшь с вашими костылями
Я сделаю ревизию всего вот этого, когда появится собственный редактор.
Я ж почему и не тороплюсь ничего внедрять ударными темпами.
По сути я сделал только один промежуточный формат - CSM.
И то, см. выше почему. Если бы эти рассчёты занимали доли секунды, я бы и его не делал.
Добавлено 24-03-2024 в 17:52:
Но построить хорошую развертку - не самая простая задачка.
Оно всё так или иначе базируется на Thekla Atlas - разработках от Игнасио Кастано, либо на UVAtlas от Microsoft. И то и другое не годится примерно никак. Это параметризаторы, которые строят какуе-та развертку, а потом во всех учебниках пишут, что для хорошего освещения модель надо тщательно готовить. Это не мой путь.
Дядя Миша
А щито поделать, полигоны бывают очень большие причём по одной оси, на Спонзе это самое мерзкое. Тогда надо по методу халфы разбивать всё по тайлам и жестко привязывать всё к разрешению текстуры. Но выглядит это как гавно.
Возможно можно сделать промежуточное что то, чтобы например он разбивал только слишком вытянутые островки, а более менее адекватные не трогал.
FiEctro писал: Возможно можно сделать промежуточное что то, чтобы например он разбивал только слишком вытянутые островки, а более менее адекватные не трогал.
С разбиениями задача решается куда проще, главное научиться детектить самые говняные варианты островков и разбивать их на более мелкие. Это и вышеперечисленные вытянутые, и Г образные, и О образные когда внутри рамки куча пустого места. И вроде того же потолка на спонзе который вроде должен иметь прямоугольный остров, но из-за его внутренней арочной геометрии он распухает, ну и в слишком мелкие чтобы тексели влезали. Эти меры уже избавят от 90% проблем с разверткой.
Вообще-то наоборот - островков должно быть как можно меньше.
В идеале - вся развертка должна быть одним островком. Тогда будет швов мало.
Добавлено 25-03-2024 в 11:58:
Ксаш кстати островки не бьёт на более мелкие, он наоборот старается из кучи островков сделать один. А если будет такая ситуация, с гигантским полигоном - ну выделит под него целую страницу лайтмапы.
В newbspguy добавил рендер .csm (можно открыть) но пока без текстур я как бы вообще не понимаю где их пытаться найти если в CSM файле не указан путь даже
Так что на данный момент без текстур.
Ну и там исправил открытие .mdl / .spr файлов для просмотра.
__________________
Отличаюсь особой адекватностью!
Karaul0v
Там имя материала по идее как в сорсе должно ассоциироваться с материалами из игры. Но поскольку их у тебя нет, то и суда нет. Можно просто использовать имя материала как имя текстуры, естественно карты нормалей и прочие настройки материала в пролёте. Я говорил ДМ что это не удобно, но он упорно стоит на своём. А теперь тебе придётся писать парсер его материал системы.
FiEctro писал: просто использовать имя материала как имя текстуры, естественно карты нормалей и прочие настройки материала в пролёте
Ты никак не настроишь материал из редактора. Потому что нет никаких дефолтных настроек. Всё регулируется пользователем. Очевидно что редактор должен иметь идентичный с движковым конвейер, а это может быть только нативный редактор.
Добавлено 25-03-2024 в 15:44:
Цитата:
FiEctro писал: А теперь тебе придётся писать парсер его материал системы.
Не напишет. Там имплементация пару мегабайт исходников, это фактически отдельный язык программирования.
Добавлено 25-03-2024 в 15:46:
Цитата:
FiEctro писал: естественно карты нормалей и прочие настройки материала в пролёте
Ни для одного материала заранее неизвестно какие именно там могут быть настройки. Абсолютно любые. Это рендерер который можно бесконечно достраивать и улучшать, не затрагивая код движка, в пользовательских скриптах. Кажется Unity сейчас делает нечто подобное.
Дядя Миша писал: Ты никак не настроишь материал из редактора.
Ну дефолтные поля, там альбедо, нормал, спекуляр, АО, металик, роуднес, альфа, эмишен и т.д. можно вполне сохранять. А так у тебя модель даже про альбедо не знает.
Цитата:
Дядя Миша писал: Кажется Unity сейчас делает нечто подобное.
Юнити умеет генерировать стандартный ПБР материал из FBX. Я думаю это можно сделать и для конвертации в CSM. Но нужно чтобы ты опубликовал исходник библиотеки материалов, ну или как минимум сделал общий шаблон для стандартного PBR материала совместимого с твоими шейдерами. В любом случае шариться по папкам движка в поисках нужного материала, я даже пока не знаю как.
FiEctro писал: Ну дефолтные поля, там альбедо, нормал, спекуляр, АО, металик, роуднес, альфа, эмишен и т.д. можно вполне сохранять.
Ты опять не понял. Нет никаких дефолтных полей. Вообще, совсем.
Ты в кваке или в халфе видел какие-то дефолтные поля? Материал это абстрактное понятие, у него нет чёткой спецификации. Потому что игры бывают какие угодно. И в этих играх нам порой надо симулировать картинку 90-х 1 в 1. Или наоборот - подтягивать к переднему краю прогресса.
И ты никак это не сделаешь, оперируя дефолтным набором настроек, который кстати никакой и дефолтный.
Цитата:
FiEctro писал: Но нужно чтобы ты опубликовал исходник библиотеки материалов
Нет никакой библиотеки материалов, равно как и её исходника. Ты пытаешься мыслить категориями привычных тебе движков.
FiEctro у меня к тебе убедительная просьба - прочитай документацию по системе материалов и все приложения к ней.
Добавлено 25-03-2024 в 19:00:
Цитата:
FiEctro писал: Материал это просто описание свойств поверхности независимо от рендера.
В тех движках, к которым ты привык - безусловно. В Ксаш материал - это вещь, которая формирует новый рендерер. Именно формирует, потому что движок полностью рулится тем, что написано в материале. А не просто принимает к сведенью какие-то пути к текстурам.
Дядя Миша писал: В тех движках, к которым ты привык - безусловно. В Ксаш материал - это вещь, которая формирует новый рендерер. Именно формирует, потому что движок полностью рулится тем, что написано в материале. А не просто принимает к сведенью какие-то пути к текстурам.
Так может не стоит называть разные подходы одинаковыми терминами?