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)

NB79 19.09.2015 13:24

Сделаю под Макс.

Вообще, для хуков, при импорте их Макса, будет важно соблюдение определённых правил. Так как матрица трансформации при сохранении в obj должна восстанавливаться из модели объекта, надо будет соблюдать определённые правила при создании и редактировании хуков.

Первое. Хук обязательно должен иметь 8 вершин и 12 граней (куб, параллелепипед)
Второе. Порядок нумерации вершин должен быть определён единообразно (сейчас с планшета пишу, уточню потом, но кажется: против часовой, от передней нижней правой).

Если эти условия будут соблюдаться, то матрица легко восстанавливается. Если нет, то будут не правильно восстановлена матрица вращения (направление вращения определяется через положение вершин у не развёрнутого и развёрнутого объекта).

Но это мы уже потом доточим до нужной кондиции, когда импорт модели в игру делать будем (загрузку в тулзу из obj, или 3ds). Сейчас надо материалы добить правильно, последнюю неопределённость устранить.

carsmaster 19.09.2015 14:15

Цитата:

Сообщение от NB79 (Сообщение 145175)
Сделаю под Макс....

....Но это мы уже потом доточим до нужной кондиции, когда импорт модели в игру делать будем (загрузку в тулзу из obj, или 3ds). Сейчас надо материалы добить правильно, последнюю неопределённость устранить.

Это просто праздник какой-то:beer::good:

Grog 19.09.2015 14:58

Ничего не понимаю во всём этом, но!!!
Чувствую, что надвигается что то грандиозное, важное!
NB79!
Спасибо тебе огромное, за то что созидаешь для любимой игры!:beer:

Sita. 19.09.2015 15:13

вообще Шикарно))) :bravo:

NB79 19.09.2015 15:49

Спасиб!

Но вопросов пока всё равно много. :)

Например. Иловский материал имеет до четырёх слоёв. Назначение слоёв мне пока до конца не ясно. Где-то первый слой и есть текстура, остальные пустые. А в корабликах, например, первый слой - пустой, имя текстуры во втором. В дополнение к этому материалы имеют древовидную иерархию с наследованием части параметров от родителя к потомку (дерево при чтении материалов я строю). В общем, повозиться там есть с чем. Надо физический смысл структуры mat до конца понять.

carsmaster 19.09.2015 18:06

Цитата:

Сообщение от NB79 (Сообщение 145180)
Например. Иловский материал имеет до четырёх слоёв. Назначение слоёв мне пока до конца не ясно. Где-то первый слой и есть текстура, остальные пустые. .

Ну мне не встречалось использование двух и более СЛОЕВ в материале в игре.

В ИЛ-2 есть "заготовки" кода и обрезки былых идей, которые в настоящей версии игры не используются, так как "ведут в никуда":D

Насколько мне известно в игре "Вторая мировая" ,что построена на движке ИЛ-2 есть использование второго слоя явно для многих моделей. Но там используются текстуры DDS и второй слой в материаля это попытка изобразить убогий бамп(рельеф)

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

Моя практика показывает полную бестолковость использование второго слоя в текущей версии движка. (или мои познания не полны:()

Цитата:

Сообщение от NB79 (Сообщение 145180)
А в корабликах, например, первый слой - пустой, имя текстуры во втором. .

С корабликами никогда не занимался.

Можно для примера выложить МАТ файл кораблика с пустым первым и ТЕКСТУРНЫМ вторым слоями ?

Цитата:

Сообщение от NB79 (Сообщение 145180)
В дополнение к этому материалы имеют древовидную иерархию с наследованием части параметров от родителя к потомку (дерево при чтении материалов я строю). В общем, повозиться там есть с чем. Надо физический смысл структуры mat до конца понять.

У меня сложилось представление, что использование лежащего в папке с самолетом файла Base.mat связано исключительно для экономии "места в памяти" и снижения объема(времени) чтения параметров материалов.
Просто основные параметры берутся из ОДНОГО файла Base.mat , а уж исключительные в файле самого материала меша.
Вот и все, вот и все "дерево" материалов

Мне кажется данный способ на современном железе лишен смысла. Ибо не 2001 год на дворе и никто не считает память " а у меня 128Мб памяти":umora::lol: или " А у меня целых 512Мб памяти":umora::lol:.

Ибо есть куча модов работающих на ура, в которых это "дерево" материала(родитель потомок) исключено.
Все параметры описаны в КАЖДОМ файле материала(пусть даже они и на 80% общие для всех материалов).

NB79 19.09.2015 21:07

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

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

Мат с пустым слоем сейчас закину. В корабликах таких масса, почти все, наверное.

NB79 19.09.2015 21:16

Вложений: 1
На счёт "почти все" я загнул всё же. :) Сейчас глянул - много, но меньше половины.

Вот, из "Авроры" несколько, даже не рылся особо. Текстуры в слое 1 (нумерация слоёв идёт от нуля, т.е., это второй слой):

carsmaster 19.09.2015 21:56

Цитата:

Сообщение от NB79 (Сообщение 145186)
..Вот, из "Авроры" несколько, даже не рылся особо. Текстуры в слое 1 (нумерация слоёв идёт от нуля, т.е., это второй слой):

Спасибо, посмотрел.
Я как то упустил из виду повреждения, все ваши примеры как раз и есть наложение вторым слоем повреждений на первый(скин) слой при "событие" повреждение-попадание снаряда..

Тоесть попросту говоря СЛОЙ 0 вовсе не пустой у объекта ,он просто из основного материалы берется.

Тоесть изначально все равно один слой пользуется. Ну примерно как и у самолетов дырки накладываются потом сверху скина:lol:



Тоесть аля "оверлей":D

NB79 19.09.2015 23:01

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

NB79 21.09.2015 18:04

Вложений: 1
Для того, что-бы разобраться с текстурами в Максе написал утилитку для просмотра IMF/TGA. В аттаче.

Что нужно сделать:

1) Открыть в ней текстуру, для которой маппинг перевёрнут. Текстура должна быть TGA (не IMF).
2) Написать сюда значение ImageDescriptor.

Потом:

1) Открыть в ней эту же текстуру, но в IMF
2) Записать её как TGA
3) Посмотреть в Максе, как она легла на маппинг

Ну и доложиться сюда. :)

Флаг инвертирования для файла пока не меняйте. В начале нужно разобраться почему в Максе текстура перевёрнутой отображается.

carsmaster 21.09.2015 21:24

Цитата:

Сообщение от NB79 (Сообщение 145225)
Для того, что-бы разобраться с текстурами в Максе написал утилитку для просмотра IMF/TGA. В аттаче..




Работа проводилась с оригинальным файлом скина skin1o.tgb от самолета Ki-43-II(Multi1)
Этот файл переименовывался для работы по расширению в skin1o.tga


1. Папка GIMP_PHOTOSHOP_TGA_ViewIMF_сверху-слева - это файл взят TGA после преобразования из оригинального IMF в проге
ViewIMF ,далее открыт-сохранен в GIMP установкой Начало координат сверху-слева


2. Папка GIMP_PHOTOSHOP_TGA_ViewIMF_сниз-слева - это файл взят TGA после преобразования из оригинального IMF в проге
ViewIMF ,далее открыт-сохранен в GIMP установкой Начало координат снизу-слева


3. Папка PHOTOSHOP_TGA_ViewIMF - это файл взят TGA после преобразования из оригинального IMF в проге
ViewIMF , далее открыт и сохранен без изменений в Фотошопе.

4. Папка TGA_ViewIMF - это файл взят TGA после преобразования из оригинального IMF в проге
ViewIMF

5. Папка WORK_ОТРАЗ_ВЕРТИКАЛН_TGA_ViewIMF - это файл из папки TGA_ViewIMF открытый в Фотошопе , отраженный по ВЕРТИКАЛИ и сохраненный фотошопом.

6. Папка ОРИГ_IMF - оригинальный файл skin1o.tgb после простошо переименования расширения в TGA

7. Папка ViewIMF-V1_0 - программа ViewIMF-V1_0.exe

В 3Д макс 2012 пробовались с вашим мешем CF_D0.obj все варианты полученных разными способами файлов текстур из папок что выше

Результат везде лдинаковый-ОТРИЦАТЕЛЬНЫЙ

.

Единственный способ заставивший отображать наложение текстур правильно это

5. Папка WORK_ОТРАЗ_ВЕРТИКАЛН_TGA_ViewIMF - это файл из папки TGA_ViewIMF открытый в Фотошопе , отраженный по ВЕРТИКАЛИ и сохраненный фотошопом.

Этот файл в 3д макс видится при проверки маппинга как именно перевернутый!!! Но месторасположение маппинга-развертки отображается правильно и в нужном месте на текстуре.
Соответственно и на экране показа детали-объекта CF_D0 раскраска ПРАВИЛЬНАЯ


Причем стоит повторится, при проверки маппинга в самом 3д Макс с НЕ перевернутой текстурой само расположение
развертки на текстуре выглядит как перевернутое по вертикали.

Но средствами 3д макса ни методом FLIP VERTICAL ,ни MIRROR VERTICAL самого маппинга не удалось
получить расположении маппинга в нужном месте на текстуре. Все времы маппинг чуть но сдвинут выше или ниже

Только подсунув в 3Д макс отраженную по вертикали текстуру получается добится отображения маппинга на нужном месте БЕЗ КАКИХ ЛИБО МАНИПУЛЯЦЙ

При этом конечно если использовать отраженную по вертикали текстуру в игре, то раскраска самолета НЕ ПРАВИЛЬНАЯ как и следовало ожидать.

Вот еще информация:

1. При открытии вашей прогой меша CF_D0 с текстурой из папки
"4. Папка TGA_ViewIMF - это файл взят TGA после преобразования из оригинального IMF в проге ViewIMF" маппинг отображается нормально

2. При открытии вашей прогой меша CF_D0 с текстурой из папки
"5. Папка WORK_ОТРАЗ_ВЕРТИКАЛН_TGA_ViewIMF - это файл из папки TGA_ViewIMF открытый в Фотошопе , отраженный по ВЕРТИАЛИ и сохраненный фотошопом."
маппинг отображается перевернутым

3. При открытии в MSFX Converter меша CF_D0.obj с текстурой из папки (создал материал файо материалов CF_D0. mtl)
"4. Папка TGA_ViewIMF - это файл взят TGA после преобразования из оригинального IMF в проге ViewIMF"
маппинг отображается нормально на экране просмотра

4. При открытии в MSFX Converter меша CF_D0.obj с текстурой из папки (создал материал файо материалов CF_D0. mtl)

"4. Папка TGA_ViewIMF - это файл взят TGA после преобразования из оригинального IMF в проге ViewIMF"
маппинг отображается нормально на экране просмотра

Тоесть MSFX Converter совершенно пофигу при отображении на экране на перевернутость текстуры

В архиве ниже есть скрины и отображением нужных вам параметров в вашем просмотрщике текстур

СКАЧАТЬ :

https://cloud.mail.ru/public/Eyuv/sC5woJuiG

NB79 21.09.2015 22:46

Спасибо. Но на один вопрос нет ответа. :)

Так а что получается, если моей утилитой по просмотру TGA открыть IMF, сохранить его в TGA и потом этот TGA подсунуть Максу? Я же говорил, что я не пользуюсь сторонними утилитами, я спокойно могу читать IMF и конвертить его в TGA (или что-то другое, если надо, кроме экзотики всякой).

Меня, в первую очередь, интересует как Макс видит TGA, которые конвертит моя утилита.

carsmaster 21.09.2015 22:50

У меня не получилось корректно вашей прогой сделать файл TGA из оригинального файла skin1o.tgb (он же в игре и есть IMF , только хитрый какой-то)

Макс полученный файл TGA не видит -ругается
имеем image decriptor 0x20 у него

Но фотошоп его видит и открывает

Edit:

Пробовал я и так :
прогой ViewIMF-V1_0.exe преобразовал skin1o.tga (переименовал сначала из skin1o.tgb) в TGA. Далее этот TGA все той же прогой ViewIMF-V1_0.exe перегнал в IMF. Далее вашей уже прогой перегнал этот IMF в TGA. Все равно макс на него ругается, а фотошоп видит и открывает
Видимо макс не любит image decriptor 0x20

NB79 21.09.2015 23:12

Цитата:

Сообщение от carsmaster (Сообщение 145236)
Макс полученный файл TGA не видит -ругается
имеем image decriptor 0x20 у него

Вот, это самое главное! Спасибо, буду думать.

Интересно то, что в спецификации для четвёртого бита во флагах (0x08) написано, что он reserved и должен быть установлен в ноль. Однако, в ваших файлах из фотошопа он везде стоит в 1 (0х08, или 0х28). Может я старой спецификацией пользуюсь и его надо всегда в 1 ставить, чтоб Макс его видел. А может его вообще из reserved вывели и используют для чего-то. Попробую поискать.

UPD: Забыл, ещё вопросик. А как Макс ругается, что пишет на мой файл?

carsmaster 21.09.2015 23:21

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

Сообщение от NB79 (Сообщение 145237)
UPD: Забыл, ещё вопросик. А как Макс ругается, что пишет на мой файл?

сек

Edit:

Бывает правда на 10 раз макс вроде подхватывает файл ваш текстуры и вроде не выдает ошибку, но текстурит коряво(капот весь черный)

Да и в редакторе маппинга в максе макс показвает текстуру СО СМЕЩЕНИЕМ !!
А так в основном выдает окошко об ошибки при попытке подсунуть максу вашу текстуру.

Спасибо за труды!!:beer::good:

NB79 21.09.2015 23:41

Вложений: 1
Переделал немного, надеюсь Макс будет открывать.
Проверьте, если не трудно.

carsmaster 21.09.2015 23:49

Цитата:

Сообщение от NB79 (Сообщение 145239)
Переделал немного, надеюсь Макс будет открывать.
Проверьте, если не трудно.

Сейчас

EDIT:

Эта версия вашего просмотрщика нормально конверти из:

1. файл skin1o.tgb вручную переименовал в skin1o.tga , открыл и сохранил вашей прогой в TGA. Макс нормально видит и открывает текстуру в том виде как она и есть. Маппинг аля НЕ правильный.
При ОТРАЖЕНИИ по ВЕРТИКАЛИ в фотошопе, в максе маппинг встает на место.

2. файл skin1o.tgb напрямую !! открыл и сохранил вашей прогой в TGA. Макс нормально видит и открывает текстуру в том виде как она и есть. Маппинг аля НЕ правильный.
При ОТРАЖЕНИИ по ВЕРТИКАЛИ в фотошопе, в максе маппинг встает на место.

NB79 22.09.2015 00:18

Вложений: 1
TGB можно не переименовывать в TGA, я ориентируюсь не на расширение файла, а на его содержимое.

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

В игре IMF просто распаковывается в буфер и этот буфер отдаётся на маппиг. В IMF картинка перевёрнута. Видимо в этом всё и дело.

carsmaster 22.09.2015 00:50

Цитата:

Сообщение от NB79 (Сообщение 145241)
В игре IMF просто распаковывается в буфер и этот буфер отдаётся на маппиг. В IMF картинка перевёрнута. Видимо в этом всё и дело.

Проверил, image descriptor 0x20 у файла полученного.

Но к сожелаению маппинг так и остался "перевернут":(

А вот интересно, 3ds и obj по разному работают с маппингом ??

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

Загрузил в макс и маппинг нормально показывает с дефолтным скином в TGA(сделанного из IMF). С крайней версии сохранения файла в вашем просмотрщике, тоже нормально кажет маппинг, есои использовать 3ds из меш конвертера

Может есть какая-то хитрость в разности форматов ?


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

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