![]() |
Сделаю под Макс.
Вообще, для хуков, при импорте их Макса, будет важно соблюдение определённых правил. Так как матрица трансформации при сохранении в obj должна восстанавливаться из модели объекта, надо будет соблюдать определённые правила при создании и редактировании хуков. Первое. Хук обязательно должен иметь 8 вершин и 12 граней (куб, параллелепипед) Второе. Порядок нумерации вершин должен быть определён единообразно (сейчас с планшета пишу, уточню потом, но кажется: против часовой, от передней нижней правой). Если эти условия будут соблюдаться, то матрица легко восстанавливается. Если нет, то будут не правильно восстановлена матрица вращения (направление вращения определяется через положение вершин у не развёрнутого и развёрнутого объекта). Но это мы уже потом доточим до нужной кондиции, когда импорт модели в игру делать будем (загрузку в тулзу из obj, или 3ds). Сейчас надо материалы добить правильно, последнюю неопределённость устранить. |
Цитата:
|
Ничего не понимаю во всём этом, но!!!
Чувствую, что надвигается что то грандиозное, важное! NB79! Спасибо тебе огромное, за то что созидаешь для любимой игры!:beer: |
вообще Шикарно))) :bravo:
|
Спасиб!
Но вопросов пока всё равно много. :) Например. Иловский материал имеет до четырёх слоёв. Назначение слоёв мне пока до конца не ясно. Где-то первый слой и есть текстура, остальные пустые. А в корабликах, например, первый слой - пустой, имя текстуры во втором. В дополнение к этому материалы имеют древовидную иерархию с наследованием части параметров от родителя к потомку (дерево при чтении материалов я строю). В общем, повозиться там есть с чем. Надо физический смысл структуры mat до конца понять. |
Цитата:
В ИЛ-2 есть "заготовки" кода и обрезки былых идей, которые в настоящей версии игры не используются, так как "ведут в никуда":D Насколько мне известно в игре "Вторая мировая" ,что построена на движке ИЛ-2 есть использование второго слоя явно для многих моделей. Но там используются текстуры DDS и второй слой в материаля это попытка изобразить убогий бамп(рельеф) В ИЛ-2, да можно тоже подключить второй слой, но он будет работать либо в убогом режиме смешивания либо вообще заместит первый слой. Моя практика показывает полную бестолковость использование второго слоя в текущей версии движка. (или мои познания не полны:() Цитата:
Можно для примера выложить МАТ файл кораблика с пустым первым и ТЕКСТУРНЫМ вторым слоями ? Цитата:
Просто основные параметры берутся из ОДНОГО файла Base.mat , а уж исключительные в файле самого материала меша. Вот и все, вот и все "дерево" материалов Мне кажется данный способ на современном железе лишен смысла. Ибо не 2001 год на дворе и никто не считает память " а у меня 128Мб памяти":umora::lol: или " А у меня целых 512Мб памяти":umora::lol:. Ибо есть куча модов работающих на ура, в которых это "дерево" материала(родитель потомок) исключено. Все параметры описаны в КАЖДОМ файле материала(пусть даже они и на 80% общие для всех материалов). |
Дерево не для экономии места. Место тут - копеешная величина. Дерево позволяет группировать материалы по группам свойств и избавляет от необходимости для материалов с подобными свойствами прописывать все свойства индивидуально. Этот подход, в первую очередь, экономит время разработки, а не место либо скорость исполнения.
Представьте, что у вас, допустим, тысяч пять мешей. Все они являются частями каких-то моделей, которые условно можно разделить на несколько групп по условию, допустим, отражающей способности материала. Вы, при разработке, сделали несколько базовых материалов, по кол-ву этих групп, и наследуясь от них создали материалы, где прописаны только индивидуальные текстуры для мешей. Если вы хотите изменить характеристики отражения для какой-то группы, то вам не надо править тысячу материалов, достаточно только в базовом для группы. Это фишка исключительно для удобства управления группами сущностей обладающих схожими характеристиками. Мат с пустым слоем сейчас закину. В корабликах таких масса, почти все, наверное. |
Вложений: 1
На счёт "почти все" я загнул всё же. :) Сейчас глянул - много, но меньше половины.
Вот, из "Авроры" несколько, даже не рылся особо. Текстуры в слое 1 (нумерация слоёв идёт от нуля, т.е., это второй слой): |
Цитата:
Я как то упустил из виду повреждения, все ваши примеры как раз и есть наложение вторым слоем повреждений на первый(скин) слой при "событие" повреждение-попадание снаряда.. Тоесть попросту говоря СЛОЙ 0 вовсе не пустой у объекта ,он просто из основного материалы берется. Тоесть изначально все равно один слой пользуется. Ну примерно как и у самолетов дырки накладываются потом сверху скина:lol: Тоесть аля "оверлей":D |
Есть нюансы. Сейчас посмотреть возможности нет, с планшета пишу, но у кораблей есть особенность. В меши зашиты имена материалов, которые при выводе меша дают пустую текстуру для неповреждённой модели. Я, при показе этих мешей, вынужден лезть во второй слой за текстурой. Со всем этим надо разбираться, чтобы экспорт/импорт был максимально простым. Т.е., нужна определённая система правил, которая максимально приближена к оригинальной методике изготовления моделей.
|
Вложений: 1
Для того, что-бы разобраться с текстурами в Максе написал утилитку для просмотра IMF/TGA. В аттаче.
Что нужно сделать: 1) Открыть в ней текстуру, для которой маппинг перевёрнут. Текстура должна быть TGA (не IMF). 2) Написать сюда значение ImageDescriptor. Потом: 1) Открыть в ней эту же текстуру, но в IMF 2) Записать её как TGA 3) Посмотреть в Максе, как она легла на маппинг Ну и доложиться сюда. :) Флаг инвертирования для файла пока не меняйте. В начале нужно разобраться почему в Максе текстура перевёрнутой отображается. |
Цитата:
Работа проводилась с оригинальным файлом скина 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 |
Спасибо. Но на один вопрос нет ответа. :)
Так а что получается, если моей утилитой по просмотру TGA открыть IMF, сохранить его в TGA и потом этот TGA подсунуть Максу? Я же говорил, что я не пользуюсь сторонними утилитами, я спокойно могу читать IMF и конвертить его в TGA (или что-то другое, если надо, кроме экзотики всякой). Меня, в первую очередь, интересует как Макс видит TGA, которые конвертит моя утилита. |
У меня не получилось корректно вашей прогой сделать файл 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 |
Цитата:
Интересно то, что в спецификации для четвёртого бита во флагах (0x08) написано, что он reserved и должен быть установлен в ноль. Однако, в ваших файлах из фотошопа он везде стоит в 1 (0х08, или 0х28). Может я старой спецификацией пользуюсь и его надо всегда в 1 ставить, чтоб Макс его видел. А может его вообще из reserved вывели и используют для чего-то. Попробую поискать. UPD: Забыл, ещё вопросик. А как Макс ругается, что пишет на мой файл? |
Вложений: 1
Цитата:
Edit: Бывает правда на 10 раз макс вроде подхватывает файл ваш текстуры и вроде не выдает ошибку, но текстурит коряво(капот весь черный) Да и в редакторе маппинга в максе макс показвает текстуру СО СМЕЩЕНИЕМ !! А так в основном выдает окошко об ошибки при попытке подсунуть максу вашу текстуру. Спасибо за труды!!:beer::good: |
Вложений: 1
Переделал немного, надеюсь Макс будет открывать.
Проверьте, если не трудно. |
Цитата:
EDIT: Эта версия вашего просмотрщика нормально конверти из: 1. файл skin1o.tgb вручную переименовал в skin1o.tga , открыл и сохранил вашей прогой в TGA. Макс нормально видит и открывает текстуру в том виде как она и есть. Маппинг аля НЕ правильный. При ОТРАЖЕНИИ по ВЕРТИКАЛИ в фотошопе, в максе маппинг встает на место. 2. файл skin1o.tgb напрямую !! открыл и сохранил вашей прогой в TGA. Макс нормально видит и открывает текстуру в том виде как она и есть. Маппинг аля НЕ правильный. При ОТРАЖЕНИИ по ВЕРТИКАЛИ в фотошопе, в максе маппинг встает на место. |
Вложений: 1
TGB можно не переименовывать в TGA, я ориентируюсь не на расширение файла, а на его содержимое.
Сейчас ещё вариант кину, если маппинг не встанет на место, значит придётся текстуры сначала переворачивать в одну сторону, а при импорте в игру опять их крутить назад. В игре IMF просто распаковывается в буфер и этот буфер отдаётся на маппиг. В IMF картинка перевёрнута. Видимо в этом всё и дело. |
Цитата:
Но к сожелаению маппинг так и остался "перевернут":( А вот интересно, 3ds и obj по разному работают с маппингом ?? Проверил сейчас в меш конвертере перегнал меш CF_D0 в формат 3ds , причем все параметры сохранения оставил по умолчанию, ну только имена обрезал до 10 Загрузил в макс и маппинг нормально показывает с дефолтным скином в TGA(сделанного из IMF). С крайней версии сохранения файла в вашем просмотрщике, тоже нормально кажет маппинг, есои использовать 3ds из меш конвертера Может есть какая-то хитрость в разности форматов ? |
Хм. Интересно. А Макс может читать IMF? Если может, то тогда и голову ломать смысла нет, надо ему IMF и подсовывать. Или я чего-то не понимаю?
UPD: А как равёртка в случае с 3ds, перевёрнутая? |
Цитата:
Ночь уже сказывается у меня...:(:D |
Вложений: 1
Цитата:
EDIT: Вот развертка, отображаемая в максе корректно на модели, это 3DS который из который из меш конвертра На скрине 1111 видно что вроде маппинг как бы сместился вниз относительно текстуры. Но это если не знать хитрости макса. На самом деле макс там как то по хитрому ТИЛЕТ(размножает ) тестурные координаты и как то там по умолчанию и такое расположение маппинга считает правильным. Ибо насколько я знаю макс по умолчанию не показвает на экране работы с маппингом ИСТИННОЕ (внутри макса размноженное) положение текстур. Это внтуренне расположение можно включить (отображение на экаране) - это я включил на скрине 222 А маппинг в OBJ из вашей проги при НЕ ПЕРЕВЕРНУТОЙ текстуре смещен мало и как то отзеркален. Тоесть он даже не попадет на следующую размноженную максом копию текстуры. Правда я в толк не возьму, почему при ПЕРЕВЕРНУТОЙ текстуре макс показывает и маппинг ровно на основной текстуре и строго там где надо?:( Еще хочется напоинить о рекомендациях авторов меш конвертера о параметрах которые на вкладке SAVE OPTIONS отображены. Там авторы рекомендуют в двух местах ставить -1 !! Но применительно к этому меше CF_D0 я оставил 0 в двух местах там где авторы говорят ставь -1 при сохранении в формате 3DS. |
Вложений: 1
Тогда пусть эта версия вьювера/конвертера здесь останется. Пусть будет. Типа, релизной. Мало ли пригодится.
|
Сделал сохранение в 3DS с рекомендованными авторами меш конвертера (в двух местах по -1)
Маппинг с дефолтной текстурой стал отображаться в максе, так же как и в вашем OBJ Сейчас скрин будет EDIT: СКРИНЫ https://cloud.mail.ru/public/Azh9/fHZkUyC5m |
Цитата:
Цитата:
Зачем скалинг в -1 - не понимаю. Вероятно это что-то специфическое для 3ds. Странно только одно, почему с нулём для V Offset нормально проходит. Плохо тут одно, 3ds не подходит одназначно. Он не пишет в себя нормали. А значит - всё оригинальное сглаживание на моделях идёт в корзину. Так бы я всё делал под него и не мучался. Теоретически, можно будет попробовать при экспорте смещение на -1 умножать. Но вижу тут потенциальные сложности. Делать это, или нет, скорее всего зависит как раз от текстуры (её внутренних флагов). Мне кажется, что не для всякой текстуры надо переворачивать координаты. Если все текстуры на месте, то можно их грузить и смотреть на флаги. Но если нет, то при экспорте может получится фигня. В общем, попробуем провести эксперимент. В любом случае, спасибо. Сильно легче нам не стало, но отрицательный результат - тоже результат. :) |
Ну, по вашим скринам так и получается. Скалинг не понятно для чего, а со смещением можно будет попробовать поиграться. Только непонятно, что будет с моделью в игре после таких манипуляций с маппингом.
Предлагаю на сегодня в люлю. :) Утро вечера мудреннее. :) |
Цитата:
|
Стоило лечь в койку, как мысль появилась. :)
Надо попробовать в Макс загрузить obj модель, ей подсунуть родную текстуру (без переворота в фотошопе) и руками для этой текстуры поставить V offset в -1. На ваших скринах, справа, есть соответствующее поле для ввода. Может сработает. Уж больно мне не хочется при экспорте вносить какие бы то ни было изменения. Хочется максимальную идентичность всё-же сохранить. Но это уже на завтра. :) |
Цитата:
К сожалению я с 3Д макс недавно учусь работать и многого в настройках просто не знаю. АУ !!! мастера 3Д подключитесь, просветите:) |
не сталкивался с этим ... у меня всё по умолчанию обычно... я с чёрного хода же работаю
|
Вложений: 2
Ладно, с этой проблемой в obj похоже не совладать. Тратить на неё время сейчас не будем. Пока, видимо, надо просто переворачивать текстуру. Увы. Может подбиру чуть позже другой формат для экспорта, который и эту проблему позволит решить, и нормали будет сохранять.
В аттаче версии, которые пишут библиотеку материалов. Проверяем. :) Важно: - Библиотеку материалов пишу туда-же, куда и obj - Непосредственно текстуры (tga) не копирую. Во-первых, есть нюансы с иерархией (об этом чуть ниже), и во-вторых - при копировании можно перезаписать по верх чего-то, что перезаписывать не надо было. В принципе, можно и экспорт текстур сделать, но пока не буду, потом посмотрим. - Параметры для материалов (свет, отражение и т.д.) пока забиты как константы (всё белое макс яркости). В mat Ила значения задаются непонятным мне образом, одно число на параметр, хотя их должно быть четыре. Возможно, что цвет везде белый и это число простой множитель для него. Но не факт, пока не понятно. - Путь к текстуре для материала пишу так, как он задаётся в игре, т.е. - относительный. Если вы будете использовать структуру каталогов как в игре, то текстуры будут подхватываться как надо. Пример для понимания того, что такое относительный путь: Допустим, что у нас есть общий каталог для текстур и есть мешь, который лежит в другом каталоге: 3do\textures\tex1.tga 3do\planes\textures\tex2.tga 3do\planes\bf-109_f4\mesh.obj 3do\planes\bf-109_f4\tex3.tga Для меша прописано три материала, мат1, мат2 и мат3. В мат1 путь к текстуре задан "..\..\textures\tex1.tga". В мат2 - "..\textures\tex2.tga" В мат3 - "tex3.tga" Когда вы открываете mesh, то путь к текстуре из относительного преобразовывается в абсолютный. И, соответственно, по полученным путям и берутся нужные текстуры. Это традиционный способ задания путей. Его огромный плюс в том, что вы можете скопировать данные в любое место (сохраняя структуру каталога), переносить на другие компы и при этом у вас всегда нужные данные будут доступны. - В библиотеку материалов также добавлены некоторые служебные материалы. В первый слот - материал NULL (цвет красный, что ещё для него надо установить - ХЗ). После всех материалов меша также добавлены материалы для кубов, которые на хуках у нас сидят. Потом материал для теней (зелёный) и материал для коллизий (фиолетовый). Грани кубов для хуков крашу так, как мне указали парой страниц выше. Яркий цвет - ось в плюс, тёмный - в минус. Ну и чуть перерулил отображение модели во вьювере. Учитываю некоторые параметры из материалов. По лучше рисуется. Нет сортировки для полупрозрачных полигонов, по этому некоторые модели (похоже те, что ещё с СПШ) немного не правильно рисуются, за стёклами иногда не видно внутренностей. :) Но это чисто на отрисовке, модель я не трогаю. Вроде ничего не забыл. Смотрите, что получилось и докладывайте. :) Если всё гуд, то след. пунктом пойдёт запись в бинарный меш. |
скачал, посмотрел. Открыл модельку газика. Во вьюере смотрится превосходно, автоматом подцепились текстуры, сглаживание корректное показывает.
Сохранил в обж и открыл максом. Тут не айс. Групп сглаживания нет вообще (А без них моделька не моделька). Маппинг какой-то странный искажённый, или смещённый. В списке материалов куча материалов (вот этого мне совсем не надо. Надо 1 мультиматериал на каждый лод. Вот к примеру откроете вы кокпит ю88, а там от 50 материалов. Если слоты занимать одним материалом то вы потом запутаетесь в поиске нужного материала. Мультиматериал это правильный выход). В принципе штуку вы задумали хорошую. Ещё бы в макс всё хорошо переходило, было бы совсем замечательно. |
Цитата:
Пока попробовал на около 15 разных мещах разных самолетов. Пока косяков не выявлено. Все четко сохраняет и TXT и в OBJ После переворачивания текстуры основного скина, в максе все выглядит достойно. Меня цветовка теней, коллизий, кубов Хуков вполне устраивает Цветовка начальных правильных ориентаций осей кубок хуков позвлдяет БЕЗ ПРОБЛЕМ вручную загнать пивот куба в центр куба и развернуть согласно видимой цветовке сторон куба. Построение всей ветки материалов тоже позволяет весьма экономить время и дает четкое представление что есть что! Мне кажется стоит попробовать прочитать HIM всего самолета и попробовать "сложить" всю модель. Ибо там же в HIM часто прописано всякие смещения и развороты отдельных мешей для их правильной стыковки в единое целое. Вдруг там будет засада с ошибками построения модели корректной? Например меш конвертер открывает модель(через HIM) вроде корректно, но например в 3DS сохраняет всю модель КОРЯВО , не получается правильно сложить все элементы. А вот при сохранении в OBJ всей модели в меш конвертере, он правильно и корректно стыкует все меши в единый самолет. Правда есть косяки все равно с хуками, расставляет их не корректно !! Огромное спасибо:good::beer: вам за желание создать добротный инструмент, позволяющий сильно упростить работу и подключить новых людей в дело улучшения игры. Ибо с хорошим инструментом люди меньше будут бояться сложностей с моделями для игры |
Цитата:
|
Цитата:
В максе конечно при открытии все элементы по отдельности(меши, тени, коллизии, хуки) Тоесть меш конвертер при чтении HIM просто согдасно смещений и разворотов в HIM прописанных складывает все в визуально цельную модель и пишет все в один файл. |
Прислать(файл) весь самолет сохраненный в OBJ в меш конвертере ???
|
Цитата:
|
Вложений: 1
вот весь Ki-43-II(Multi1)
Это я делал в меш конвертере. ВСЕ пути в папке с самолетом я переписал на саму папку самолета , тоесть где HIM, там и текстуры у меня лежат и в материалах так прописал. Это я там для своих целей дела. Но это в пригципе не важно я думаю для вас, вы создаете все по иловской структуре папок. Хуки все равно в моем файле не корректно расставлены меш конвертером. Видно в самолете он не путается при открытие HIM и корректно расставляет меши, а вот Хуки все равно не понимает до конца правильно. МАППИНГ НЕ СОХРАНЯЕТ меш конвертер в OBJ !!! |
Ага, спасиб! Завтра посмотрю как в obj оно складывается.
Him/sim я читать умею и дерево объектов строю, только надо будет немного доработать под экспорт всей модели. |
Текущее время: 15:08. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot