AviaSkins.Forums

AviaSkins.Forums (http://forum.aviaskins.com/index.php)
-   Ил-2 Штурмовик: Забытые Сражения (http://forum.aviaskins.com/forumdisplay.php?f=15)
-   -   NB79 Tool - разработка) (http://forum.aviaskins.com/showthread.php?t=4152)

tarakan67 06.01.2016 09:47

Цитата:

Сообщение от jabo (Сообщение 148106)
Всю тему проспал, прошу коротко раздуплить: msh -> obj -> 3D Max ->? т.е. есть ли возможность загнать меш(-и) с текстурой и прочей требухой, в 3Д Макс, там отредактировать и обратно перегнать в съедобный для Ила msh?

msh -> obj -> 3D Max -> загоняется, но без текстуры, похоже, или я не умею пользоваться?

jabo 06.01.2016 12:50

Цитата:

Сообщение от tarakan67 (Сообщение 148114)
msh -> obj -> 3D Max -> загоняется, но без текстуры, похоже, или я не умею пользоваться?

получается и с текстурой, ее нужно перевернуть на 180 в Фшопе или развертку модели в 3D Max

NB79 06.01.2016 13:31

Не всякую текстуру.

В 3Д по умолчанию 0:0 для текстур может быть:

- Левый верхний угол для DX
- Левый нижний угол для OGL

В самой текстуре (для TGA) есть флаг, который указывает где координата 0:0 находится в самом изображении. Кроме этого, у нас ещё есть IMF, который представляет из себя специально обработанный для лучшего сжатия буфер с информацией о пикселах. В нём 0:0 всегда слева снизу.

Поскольку в obj нельзя передать информацию о том, где 0:0 для текстуры находится, а сам Макс за флагами в TGA не следит, то нужно руками переворачивать текстуры в тех случаях, когда они в Максе ложатся не правильно.

Кстати, текстура в Максе может не отображаться ещё и потому, что IMF имеет то же расширение, что и TGA (.tga), но внутренний формат IMF не совпадает с форматом TGA. Соответственно Макс не может её прочитать и не грузит. Для работы в Максе IMF надо конвертировать в TGA ручками.

Примерно так.

jabo 06.01.2016 13:44

с конвертированием и вращением TGA это понятно. Что еще заметил, модель в OBJ прямо в Мах сглаживание не переносит, приходится редактировать, хотя бы даже в авторежиме

NB79 06.01.2016 14:45

Я уже много раз здесь об этом писал. :)

В obj сглаживающие нормали для вершин пишутся без группировки. Ибо групп сглаживания в msh нет. И восстановить группы сглаживания можно только в некоторых простых частных случаях. В модели при сохранении в obj сглаживающие нормали есть, нет Максовских групп сглаживания. Группировку надо делать руками в Максе самостоятельно.

carsmaster 06.01.2016 19:44

Цитата:

Сообщение от NB79 (Сообщение 148127)
... Группировку надо делать руками в Максе самостоятельно.

Ну я не великий мастер в 3Д, но в принципе у меня не возникало проблем поназначать группы сглаживания в МАКСЕ в режиме AUTO, что есть в самом МАКСЕ. Вроде нормально получается. Меня устраивает результат.

Спасибо автору за архи полезный инструмент.

tarakan67 08.01.2016 20:53

Вопрос автору утилиты.
Отредактировал в максе меш и он перестал открываться утилитой.
Сообщение: " Scrollbar property out of range". Хотя в игре меш виден с внесёнными изменениями. Что-то можно сделать? Система Win7 X 64bit

Grejf11 08.01.2016 22:31

Выше в ветке говорилось уже про правленные блокнотом меши. Из опыта утилита позволяет только правленные ручками хуки, дистанции лодов, и материалы. Любое касание координат вот тут приехали прога слепнет. По ходу блокнот что то оставляет в виде скрытого мусора. Может кто посоветует простой и не гадящий редактор.
Пока писал вспомнил что в особо капризных случаях редактировал не в блокноте а старым родным Фар менеджером. Вот тут как раз буду пробовать.

NB79 09.01.2016 00:05

Цитата:

Сообщение от tarakan67 (Сообщение 148270)
Вопрос автору утилиты.
Отредактировал в максе меш и он перестал открываться утилитой.
Сообщение: " Scrollbar property out of range". Хотя в игре меш виден с внесёнными изменениями. Что-то можно сделать? Система Win7 X 64bit

Нужно этот меш кинуть сюда. Могу предположить, что что-то с фреймами не то после правки.

Grejf11 09.01.2016 00:20

Меш с проблемой
 
Вложений: 1
Вот этот меш виден в игре но после ручного редактирования перестал отображаться вьюером. СКНИЛ его по прежнему видит.

tarakan67 09.01.2016 00:39

Вложений: 1
Цитата:

Сообщение от NB79 (Сообщение 148285)
Нужно этот меш кинуть сюда. Могу предположить, что что-то с фреймами не то после правки.

Вот.

Molva 09.01.2016 02:05

Цитата:

Сообщение от Grejf11 (Сообщение 148286)
Вот этот меш виден в игре но после ручного редактирования перестал отображаться вьюером.

Убери тень и все будет видно.

Grejf11 09.01.2016 02:24

Дык без тени я его вижу Тут бы с этой жабой разобраться которая возникает после вставки тени в ручную через блокнот. Или это не лечится?

NB79 09.01.2016 13:49

Цитата:

Сообщение от Grejf11 (Сообщение 148286)
Вот этот меш виден в игре но после ручного редактирования перестал отображаться вьюером. СКНИЛ его по прежнему видит.

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

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

tarakan67 09.01.2016 14:12

Кстати, у меня тоже было дело в тенях.

NB79 09.01.2016 14:14

Цитата:

Сообщение от tarakan67 (Сообщение 148288)
Вот.

С этим тоже разобрался. Есть секция с фейсами для теней, но самих теней нет (нет данных по вершинам для теней). Ну я из-за этого и выпадаю с unhandled error. :)

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

Вам надо руками удалить последнюю секцию в вашем файле (ту, которая [ShFaces]). Непонятно, как она в ваш файл попала. Если вы руками не правили этот файл, то это вероятно глюк плагина. Если правили руками, то просто не всё убрали.

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

NB79 09.01.2016 14:20

Чуть позже кину версии, в которых игнорируются нормали для теней если они есть в соответствующих данных. Предупреждение о наличии таких данных наверное кидать не буду. Но если это очень надо, то подумаю как его формировать. Всё дело в том, что теоретически в секции могут присутствовать и 3 вершины, и 3 вершины + 3 нормали, и просто ошибочный мусор. Ругаться на каждую строку - весь лог будет заспамен однотипными сообщениями (а строк теоретически может быть несколько тысяч).

Наверное сделаю однократное предупреждение о том, что помимо вершин есть ещё и нормали, которые игнорируются. Подумаю ещё.

Grejf11 09.01.2016 16:19

Вопрос покажется глупым как можно вычленить сглаживающие нормали из тени, вручную не прибегая к экспорту в МАКС. Есть ли у них какой нибудь признак в текстовом редакторе? Крайний ЛОД тоже с нормалями или упрощен настолько что их там может не оказаться?

Grejf11 09.01.2016 16:44

И еще вопрос может ли оказаться полезным данный меш редактор?(работает прямо с мешами без экспорта импорта LODka 3D Заранее благодарен за ответ.

Вот собственно сама программа http://www.mediafire.com/download/e7...ka3d_v1_53.zip

NB79 09.01.2016 17:06

Признаков нет.

Базово если:

- Есть вершина
- Из вершин можно сложить полигон. У нас это треугольник.
- Для полигона можно:
- а) Иметь одну нормаль
- б) Иметь нормаль для каждой вершины

Вариант "а" для игры в модели не зашивается. Если для фейса должна быть задана одна нормаль, то она рассчитывается при загрузке модели. Потому что сглаживающие нормали определяют то, каким образом мы соединяем соседние вершины, а одиночная нормаль просто является перпендикуляром к поверхности и указывает только на то, как эта поверхность развёрнута к наблюдателю (лицом/задом :) ).

Отличить значение нормали от других данных в общем случае нельзя. Это просто число с плавающей точкой, такое-же, как и координаты вершин, маппинга и т.п. Нормали могут быть нормированы и в этом случае их значение будет в диапазоне -1 .. 1. Если не нормированы, то любое значение в пределах выбранной разрядности. Обычно нормали всегда зашиваются в модели нормированными, по традиции, чтоб при загрузке лишнее не считать. Но в шейдерах один чёрт, после умножения на матрицу, либо при вычислении отражений/направлений, значение нормализуется.

В Иловских мешах нормали от вершин отделяются директивно - первые три значения в описании вершин задают координаты вершины, три следующих - нормаль для вершины. Таким образом:
- Если строка содержит 3 значения, значит эта строка содержит только координаты вершины
- Если 6 значений, то координаты вершины и нормаль для неё

Для лодов используем 6 значений (вершины и нормали). Для теней - 3, только вершины.

Фейсы для лодов и теней в игре прописываются одинаково. Три значения, которые являются тремя индексами для массива вершин/вершин+нормалей. Эти три значения и образуют один минимальный замкнутый полигон-треугольник.

Для коллизий фейсы задаются только для возможности нарисовать её на экране во время дизайна, в самой игре они нафиг не нужны и теоритически их из меша можно выкинуть, эта часть игрой в процессе работы не используется, нужны только донные о том, какие полигоны с какими граничат. Но лучше это всё руками не трогать, ХЗ какой результат может получиться. :)

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


Текущее время: 11:01. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot