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, только вершины.

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

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

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

NB79 09.01.2016 17:14

Цитата:

Сообщение от Grejf11 (Сообщение 148363)
И еще вопрос может ли оказаться полезным данный меш редактор?

Без понятия. Я уже говорил, что моделирование для меня - тёмный лес. :) Это надо у людей, которые модельки делают спрашивать. Делать модель и программировать её отрисовку, это довольно сильно разнящиеся вещи. Их соединяют только общие договорённости о том, какие данные и как должны присутствовать и выводится на экран. А уж как моделить и что при этом полезно - только от автора модели зависит. Хорошую модель сделать (что б она сочетала малое кол-во вершин/полигонов/текстур/наворотов и при этом красиво рисовалась) - особый талант нужен. Не знаю, чем я могу в этом помочь, совсем не эксперт в этом вопросе и названия 3Д редакторов только знаю, не более. :)

Grejf11 09.01.2016 23:48

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

Огромное спасибо за совет
Цитата:

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

NB79 10.01.2016 00:07

Я наверное завтра выложу новую версию в которой тени с нормалями грузятся нормально (сорри за масло масляное :) ). В ней будет проще - модель открыл -> модель сохранил и нормали в тенях автоматом уберутся. А ручкаме да, задолбаешься править.

А почему в Максе сразу не прибить нормали там, где они не нужны? Или в нём нельзя это сделать?

Grejf11 10.01.2016 00:23

Я маляр и красить мне еще до посинения дотягивая текстурами кривоватые упрощенные модели (Бофайтеру кабину вообще при помощи 2х полигонных примитивов сваял)http://dispersalfield.ru/main/index.php?topic=949.0. Так что до МАКСа реально не доходят руки. Если в Фотошопе я могу все то в 3Д моделировании только в форточку пока заглядываю. А времени на вдумчивое изучение хронически не хватает. Вопрос времени которого нет. А серьезные вопросу по максу это к Олегу Молве.

NB79 10.01.2016 01:30

Вложений: 2
Новые версии в аттаче.

Только для текстовых мешей:

- автоматом убираются сглаживающие нормали в тенях
- для теней, если есть фейсы, но нет вершин, автоматом удаляется информация о фейсах.

Для бинарных мешей всё это делать не стал, вроде в них таких проблем не бывает.

Повороты/перемещения мешей будут чуть позже. "Священный месяц Вдрабодан", придаюсь неге и разврату, сорри. :)

Grejf11 10.01.2016 02:07

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

NB79 10.01.2016 02:10

Пож. :)

Тока новая версия тож "выявляет" и пишет об этом в лог внизу. ;)

wcat1973 10.01.2016 13:33

СПАСИБО огромное за столь нужную для мододелов программу!
С уважением жму руку! И - :beer:

snd-73 10.01.2016 13:38

Уважаемый NB79, нужна Ваша информационная помощь по Вашей проге. Абсурдность ситуации заключается в том, что ранние версии проги (до декабря 2015 года) в работе не вызывают нарекания, но являются устаревшими и не отвечают обсуждаемой в настоящее время работе с тенями. Версии же проги начиная с декабря сразу же после запуска выдает окно "access violation at address 000000000. Read of address 00000000 " и дальнейшая работа не представляется возможной. Использую версию mesh_dump32. Работаспособность проверялась на двух различных ноутбуках, в обоих ноутах операционная система Windows XP.
Не могли бы Вы дать какие-либо рекомендации по реанимации проги. Множество проблем с тенями аналогичных описанным выше по ветке, и как представляется Ваша прога на сегодняшний день единственный способ их хоть как-то решить. Буду признателен за любую помощь.

NB79 10.01.2016 14:34

Добрый день!

Сложно сказать, в чём причина. Попробуем разобраться.

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

Далее. Более новые версии от более ранних отличаются следующим:

- сохранение настроек, положения и размера окна в ini
- необходимость иметь OGL версии 2.1 и старше (добавлено рисование шейдерами)

По этому можно покапать в этих направлениях.

1) Куда прога установлена? Для записи ini в директории, откуда прога запускается, должно быть разрешено создание/запись/модификация файлов. Для того, чтоб ini можно было записывать. В реестр я специально решил не писАть, чтоб не захламлять его лишний раз. Проверьте, разрешена ли запись в директорию с программой.

2) По версии OGL. Что за видео в системе? Один ли адаптер, или несколько? Что за драйвера для него установлены? Можно попробовать обновить видео драйвер. Важно, чтоб он поддерживал OGL версии 2.1 и выше.

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

snd-73 10.01.2016 17:12

Все мои попытки выяснить шейдеры какой версии поддерживает мой видеоадаптер mobile intel r 965 express chipset family дали основания полагать что версию 2.0 как бы видюха точно поддерживает, все что выше не узнал (не нашел информации как это сделать). По поводу файла ini- однозначно пишет, по крайней мере для проги (ноябрьская версия), которая у меня успешно работает.

NB79 10.01.2016 19:11

Тогда всё сложнее. Придётся ковыряться углублённо.

Вопрос: Основное окно даже не создаётся, я правильно понял? При запуске просто выскакивает окно с ошибкой и всё?

snd-73 10.01.2016 19:57

Нет, нет... После запуска экзешного файла проги, на рабочий стол компа выпадает окно "access violation at address 000000000. Read of address 00000000 ", затем прога полностью открывается, в ней работают все функциональные кнопки: например "открыть him" или "открыть msh", ставятся галки в любой функции к примеру "показывать тени", одним словом программа то запускается. Но при попытке загрузить модель даже дефолтную, даже простейшую, например модель дефолтного автомобиля или танка- результат один и тот-же: в нижнем окне программы выходит весь список файлов которые программа пыталась открыть, естественно все строки начинаются с информации об ошибке, окно msh wiewer где должна открываться модель остается пустым, стандартного фонового цвета и выскакивает очередное окно-ошибки: "scrollbar property out range". Все, можно со спокойной душой закрывать прогу. Версия Проги от ноября (которая у меня работаспособна) с дефолтными моделями работает как по инструкции, с модовыми моделями, могут отдельные меши выбрасывать ошибки и не открываться, но в общем работает же, и помогает некоторым образом.

NB79 10.01.2016 20:16

Ясно. Теперь примерно понятно где копать.

Ещё вопрос, чтоб сузить круг причин: Если запустить программу, не открывая ничего выбрать "включить ночную подсветку приборов", меняется ли цвет фона вьювера на чёрный?

Grejf11 10.01.2016 20:40

Попробуй установить данные библиотеки VisualC+++ это решает многие да практически все проблемы работы данных приложений. Перед установкой внимательно прочти ридмик в архиве.
У меня все заработало на ура включая самые капризные графические приложения. Перед установкой необходимо снести все установленные ранее библиотеки VisualC данный пак полный и гибридный как для 32х так и 64х битных систем
http://www.mediafire.com/download/s4...27.07.2015.rar

snd-73 10.01.2016 21:30

Да Андрей, я тоже репу почесывал по поводу того, что библиотеки у меня не первой свежести VisualC++. А по ссылочке гибридный файл устанавливается адекватно, косо ничего не ставится, а то у меня на этот комп резервной копии на случай откатки системы нет.
По вопросу вьювера, крайняя на сегодняшний день версия программы, при выборе "включить ночную подсветку приборов" цвет фона вьювера не изменяется.

Grejf11 10.01.2016 22:42

Проверено мин ньет

Сапёр Васильев

Ставь все чисто без косяков из проверенного источника.

snd-73 10.01.2016 22:50

Андрей, в личку не заглянешь?

NB79 10.01.2016 23:31

Цитата:

Сообщение от snd-73 (Сообщение 148443)
По вопросу вьювера, крайняя на сегодняшний день версия программы, при выборе "включить ночную подсветку приборов" цвет фона вьювера не изменяется.

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

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

В общем, завтра здесь кину версию для диагностики. Надеюсь, что сможем разобраться.

NB79 22.01.2016 18:13

И снова - здравствуйте! :)

Уфф.. Однако, пришлось мне изрядно повоевать. :)

Благодаря огромному желанию помочь разобраться с некоторыми тех. проблемами и сказочному терпению, готовности в любой момент проверять мои тестовые решения Сергея (snd-73) мне удалось обнаружить Н-ное кол-во глюков, баг и т.п.

Обнаружилось, что вопреки спецификациям OGL что-то иногда может работать по другому, либо не так, как написано в спецификации, либо не работать вовсе. У меня случился культурный шок, когда я это обнаружил. :)

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

1) Теперь минимальные требования по OGL - версия 2.0
2) Теперь минимальные требования по GLSL - версия 1.1
3) Не требуется расширение WGL_ARB_multisample (если его нет, но просто не работает сглаживание)
4) Инициализируемся более аккуратно и не падаем с ошибкой, если чего-то вдруг не оказалось в наличии

Ещё полезное - селект в дереве чуть переделал, теперь он должен работать всегда и везде. Рефреш картинки - теперь тоже должны уйти глюки с неперерисовкой кадра на некоторых машинках и версиях драйверов. Ну и ещё всякое по мелочи. Моя довольна как слон! :)

Так-же сделал кручение, удаление/приближение, таскание модельки мышкой. Крутим с зажатой ЛКМ, таскаем с зажатой ПКМ. Дистанцию меняем ткнув в окно просмотра и потом - колесом, с одновременно зажатым шифтом дистанцию меняем по 10 см, без шифта - 1 метр.

Релизы будут чуть позже. Ибо вылезла маленькая проблема, которая требует консультации с пользователем этого добра. :) А именно следующе.

Решил я рисовать уровень земли если он есть в модели. Для чего это надо - говорить не буду, понятно вроде. За это у нас отвечает хук Ground_Level. Приделал рисование квада на уровне этого хука и обраружил, что у некоторых моделей этот хук развёрнут не правильно. Как это выглядит можно увидеть по ссылкам:

тут всё ok: http://itmages.ru/image/view/3507046/9e89e737
а тут - хук развёрнут криво: http://itmages.ru/image/view/3507055/ebfb26c1

Получается, что игре пофиг на его разворот, она пользует только его положение. И вот вопрос:

Что мне делать? Рисовать как есть, чтоб видеть, когда он не так развёрнут? Или забить, и рисовать ориентируясь только на положение? У меня нет однозначного ответа как правильно. Подскажите, или решите.

Вроде всё. Релизы будут чуть позже, хочу добить эту проблему с GL хуком.


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

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