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)

yt2 11.09.2015 16:59

Можно подсмотреть как в мешконвертере решается проблема 10 значных имён, вроде там есть галка чтобы обрезать имена. В максе файл нужен со сглаживанием и маппингом. И не важно в каком будет формате obj, 3ds, md5mesh, главное чтобы в максе было хорошо.
А так задача перегнать текстовый меш в макс довольно сложна. Она ещё зависит и от того, на какой экспортер ориентироваться, потому что у разных экспортеров разные требования.
Ещё напоминание про консольную тулзу, иногда не требуется загонять файл в макс, а нужно просто перегнать меши в текстовый формат максимально приближенный к оригиналным мешам. Например это потребовалось делать для вставки в крайний патч новых жуж, а их там много было.
Ещё вариант обратный, иногда надо текстовый меш зашифровать в бинарный формат, чтобы его можно было импортнуть в макс плагином.

NB79 11.09.2015 18:32

Так мне, как раз, и надо избавится от обрезания имён. И я не могу понять причину того, что имена в присланном примере обрезаны.

Как я уже говорил, и в obj, и в 3ds нет ограничений на длину имени (вернее есть, но там может быть очень длиное имя, на порядок линее 10 символов). Не понятно в какой момент имя режется. Вот в чём вопрос.

carsmaster 11.09.2015 19:07

Цитата:

Сообщение от NB79 (Сообщение 145008)
Так мне, как раз, и надо избавится от обрезания имён. И я не могу понять причину того, что имена в присланном примере обрезаны.

Как я уже говорил, и в obj, и в 3ds нет ограничений на длину имени (вернее есть, но там может быть очень длиное имя, на порядок линее 10 символов). Не понятно в какой момент имя режется. Вот в чём вопрос.

В моем образце 3ds я ставил галку в меш конвертере " обрезать до 10 символов" , ибо если я не ставил галку(обрезать), то меш конвертер напрочь отказывался сохранять корректно в 3DS(макс ругался на файл).

Сохранял в меш конвертере в 3ds потому ,что тогда маппинг
сохраняется !!!


Соответственно при загрузке в макс полученного 3ds и далее по цепочке и пошло "обрезание до 10 имен по знакам".


При сохранении меш конвертером в obj меш конвертер напрочь ломает маппинг и файл материалов . mtl НЕ СОЗДАЕТСЯ.

Попробуйте писать в OBJ с полными именами(как в бинарнике), главное маппинг и сглаживание попробовать сохранить при этом

NB79 11.09.2015 21:23

Понятно теперь.

Сегодня, видимо, уже не успею, в результате экспериментов некоторые части исходников приобрели сильно отладочный вид. :) К воскресенью зачищу поле боя от последствий экспериментирования с разными форматами и запилю экспорт в obj. Проверим, что получилось.

Кстати, ещё один вопрос вдогонку. В присланном obj образце часть треугольников (которые faces) преобразована в полигоны (четырёхугольники). А Илу в своих мешах требуются только треугольники. Возможно, что именно по этой причине ломается маппинг. Но может и не в этом дело. Вопрос следующий:

- Есть ли возможность при экспорте из Макса явно указать, чтобы он не объединял треугольники в полигоны? Просто мне лучше заранее это знать, чтобы при чтении obj, при встрече полигона отличного от треугольного, пилить их на треугольники. А это дополнительная возьня и ненулевая вероятность искажений модели/маппинга. Хотелось бы чтобы на всех этапах конвертирования вносилось минимальное кол-во изменений в оригинальную модель.

carsmaster 11.09.2015 21:35

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

Сообщение от NB79 (Сообщение 145014)
- Есть ли возможность при экспорте из Макса явно указать, чтобы он не объединял треугольники в полигоны? Просто мне лучше заранее это знать, чтобы при чтении obj, при встрече полигона отличного от треугольного, пилить их на треугольники. А это дополнительная возьня и ненулевая вероятность искажений модели/маппинга. Хотелось бы чтобы на всех этапах конвертирования вносилось минимальное кол-во изменений в оригинальную модель.

При экспорте в OBJ в максе(2012) выскакивает окно.

в нем есть окошечко FACES

в нем можно выбирать TRIANGLES или QUADS или POLYGONS

Как вам надо сделать сохранение(экспорт из макса) ????

В том образце OBJ моем я оставлял по умолчанию QUADS

А как надо ?

В моем файле OBJ что и давал ранее маппинг вроде нормально показывает в максе, когда этот OBJ опять в макс грузишь.

Вот скрин окна перед самым экспортом из макса в OBJ

NB79 11.09.2015 21:53

Для Ила нужны TRIANGLES!

Очень хорошо, что есть выбор. Мне меньше возни и не нужно будет ничего перепиливать. Единственное, что надо будет сделать, это ругаться, если встретится полигон отличный от треугольного.

Спасибо за информацию.

carsmaster 11.09.2015 22:01

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

Сообщение от NB79 (Сообщение 145016)
Для Ила нужны TRIANGLES!.

Вот с настройками экспорта в OBJ в виде TRIANGLES

NB79 11.09.2015 23:00

Спасибо.

В этом образце, как и надо, только треугольники.

Sita. 12.09.2015 16:13

NB79 Tool - разработка)
 
Да бы не офтопить в теме вероятных перспектив, думаю пора завести отдельную темку под разработку Тула от Товарища NB79


появится кто то из модераторов, попросим перенести сюда всё касающееся ...

Sita. 12.09.2015 16:14

Цитата:

Сообщение от NB79 (Сообщение 145018)
Спасибо.

В этом образце, как и надо, только треугольники.


что бы не терять нити разговора)

NB79 13.09.2015 22:46

Вложений: 1
Не успел всё доделать, очень много работы и очень мало свободного времени.

Пока сделал частичный экспорт в obj. Пока не экспортируются коллизии, хуки и материалы. Не хватило сегодня времени всё допилить.

В аттаче экспортнутые лоды и тени для той модели, которую мне для экспериментов присылали (Ki-43-II(Multi1)). Материалы для неё взял из присланного мне архива. Посмотрите, правильно ли экспортнулось и не сбит ли маппинг.

По именам. L0 - нулевой лод, L1 - следующий, и так далее. SH в конце имени для теней. Посмотрите также, нормально ли видно имена в Максе, не режутся ли?

Кстати, а как в Максе хуки выделяются? В Иловском меше у нас просто локальная матрица (точка с векторами поворота). В obj нет такого понятия, на месте хука при экспорте надо приделывать какой-то объект и поворачивать и сдвигать его по данным из матрицы. Можно, на пример, кубик, можно линию из точки приделать. Как должно быть правильно?

carsmaster 13.09.2015 22:54

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

Сообщение от NB79 (Сообщение 145056)
...Кстати, а как в Максе хуки выделяются? В Иловском меше у нас просто локальная матрица (точка с векторами поворота). В obj нет такого понятия, на месте хука при экспорте надо приделывать какой-то объект и поворачивать и сдвигать его по данным из матрицы. Можно, на пример, кубик, можно линию из точки приделать. Как должно быть правильно?

Посмотрю ваши примеры.

Вот как хуки выглядят в максе2012 на примере тестового OBJ что я вам давал.

Тоесть просто кубики, все равно ИЛ-2 оперирует центрами кубиков и ориентацией пивотов( осей) в центре этих кубиков

NB79 13.09.2015 23:03

Ого, какие кубы здоровые. А надо ли таке огромные?

carsmaster 13.09.2015 23:15

Цитата:

Сообщение от NB79 (Сообщение 145058)
Ого, какие кубы здоровые. А надо ли таке огромные?

Да в принуипе и наверное не надо такие большие.

Я делал модель и она успешно летала уменьшив в максе кубики раза в 4...5 ,только что видны были.

С экспортом из макса в ИЛ-2 экспортером от МАРАЗ тоже при этом проблем не было

Этот большой размер лезет из меш конвертера. Они в нем большие показываются.

carsmaster 13.09.2015 23:27

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

Сообщение от NB79 (Сообщение 145056)
Пока сделал частичный экспорт в obj. Пока не экспортируются коллизии, хуки и материалы. Не хватило сегодня времени всё допилить.

в архиве

1. текстовик ошибки при попытке открыть меш конвертером ваш OBJ

2. Два скрина при попытке открыть макс 2012 ваш OBJ. Макс начинает открывать, что-то видит и потом падает на сообщение об ошибке.

3. Третий скрин(странно) ваш obj нормально открылся в конвертере для MSFX

Естественно маппинг не могу глянуть, так как в макс не могу загрузить

NB79 14.09.2015 00:27

Так, я кажется понял, в чём дело.

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

Цытата из спецификации:

----------------------------------------------------

f v1/vt1/vn1 v2/vt2/vn2 v3/vt3/vn3 . . .

Polygonal geometry statement.

Specifies a face element and its vertex reference number. You can
optionally include the texture vertex and vertex normal reference
numbers.

The reference numbers for the vertices, texture vertices, and
vertex normals must be separated by slashes (/). There is no space
between the number and the slash.

v is the reference number for a vertex in the face element. A
minimum of three vertices are required.

vt is an optional argument.

vt is the reference number for a texture vertex in the face
element. It always follows the first slash.

vn is an optional argument.

vn is the reference number for a vertex normal in the face element.
It must always follow the second slash.

----------------------------------------------------

А плагин (как и MeshConverter похоже) требует, чтобы нормали были обязательно определены.

А у нас, в Иловском меше, у теней (а ткже и у коллизий) как раз нормалей и нет. Фейс в obj описывается так:

f v1/vt1/vn1 v2/vt2/vn2 v3/vt3/vn3

Если у нас есть и вершины, и тех. координаты, и нормали, то мы имеем заполненными все три группы. Т.е., например так:

f 3129/2979/2979 3106/2956/2956 3134/2984/2984

Если нет текстурных координат, то эта же строчка будет выглядеть так:

f 3129//2979 3106//2956 3134//2984

Если нет нормалей и тек. координат, то эта же строчка будет выглядеть так:

f 3129// 3106// 3134//

Я написал эту часть экспорта в полном соответствии с спецификацией obj. По этому конвертер для MSFX файл и открывает. :) У меня тоже есть какой-то вьювер, который этот файл тоже нормально открывает. Придётся для Максовского плагина добавлять пустые нормали если их нет у объекта. Это будет раздувать файл.

Кстати, попробовал открыть MeshConverter-ом ваш файл, который с треугольниками для фейсов. MeshConverter падает с такой-же ошибкой. Тот вьювер, что есть у меня, ваш файл тоже отлично открывает. В MeshConverter-е, похоже, работа с OBJ очень криво прописана.

PS: Вот спецификация для obj, так, на всякий случай :) : http://www.martinreddy.net/gfx/3d/OBJ.spec

carsmaster 14.09.2015 00:35

Цитата:

Сообщение от NB79 (Сообщение 145061)
Так, я кажется понял, в чём дело........

Ну вот такая у нас сложная работа-задача = отгадать, понять полет мыслей создателя ИЛ-2:lol:

Sita. 14.09.2015 00:52

ох ёлки... как всё серьёзно то тут... круто!!! WTG!))

NB79 14.09.2015 00:56

Так тут, как раз, всё просто. :)

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

The Radge 14.09.2015 01:58

Спасибо огромное за разработку, NB79 :thx:
Пока утилиту не "пробовал", но подчеркну, что очень важно будет сохранение групп сглаживаний при экспорте .msh => .3ds, чтобы потом не мучится с ними с максе (очень затягивает разработку модификаций 3D).
Удачи в совершенствовании и релизах утилиты :beer:


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

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