Показать сообщение отдельно
Старый 04.05.2016, 15:47   #408
NB79
Местный
 
Регистрация: 12.07.2015
Сообщений: 417
По умолчанию

Всех с праздниками!

В аттаче новая версия. Что нового:

- Переделал немного отрисовку.
- Добавил опцию автоматической корректировки геометрии оверлеев (см. описание ниже)
- Добавил опцию игнорирования неизвесных секций (см. описание ниже)
- Пофиксил некоторое кол-во мелких баг. Может и новых добавилось.


Теперь немного подробнее о новых опциях.

Автоматическая коррекция геометрии оверлеев делает следующее:

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

Как-то так. Опция отключаемая. Когда отключена, то никаких изменений в модель не вносится. Если опция включена и для оверлея не смог найти фрагмент подстилающей, то ругаюсь об этом в лог.

При отключенном текстурировании оверлеи с совпадающей геометрией крашу в оттенки зелёного, с не совпадающей в оттенки красного.

Игнорирование неизвестных секций:

Сделал эту опцию по просьбе carsmaster-а. Если опция включена, то при обнаружении неизвестной мне секции в меше продолжаю открытие модели (только в лог ругаюсь о том, что секция мне неизвестная). Для чего это надо? Есть такая игра, WWII, там очень похожие меши моделей, но в них присутствуют отличные от Ил2 секции. Для чего они нужны я не разбирался, но теперь можно открывать модели и из этой игры. Правда не знаю, как оно будет работать, у меня есть только одна моделька из этой игры и она открывается. Ещё момент - в WWII структура каталогов с материалами и текстурами похоже немного другая и по этому текстуры нормально не подхватываются. Плюс слой два там для bump-а используется, поддержки которого у меня по понятным причинам нет. Но в любом случае, можно какие-то модельки теперь попробовать по открывать. Может пригодится для чего.


Ну и о логе, о котором чуть выше обсуждалось. Решил его не приделывать. Можно и без этого обойтись, просто нет свободного времени абсолютно. Можно получить весь лог так:

Правая кнопка на окне лога ->В меню "выделить всё"->"Копировать"->Открыть Блокнот->"Вставить"->Профит.

Вроде всё. Совершенно точно о чём-то забыл по причине длинной паузы. Надеюсь, что по ходу дела вспомниццо.

Версия 1.02 (билд 311)

UPD: вот, вспомнил уже! В WWII текстуры хоть и имеют расширение tga, но по факту там dds. Чтоб они нормально подхватывались их нужно в tga конвертить.
Вложения
Тип файла: rar mesh_dump32.rar (1.16 Мб, 944 просмотров)
Тип файла: rar mesh_dump64.rar (1.37 Мб, 1119 просмотров)

Последний раз редактировалось NB79; 04.05.2016 в 16:01.
NB79 вне форума   Ответить с цитированием