|
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
03.09.2015, 15:27 | #1 |
Местный
Регистрация: 23.09.2012
Сообщений: 721
|
NB79 Tool - разработка)
|
13.09.2015, 22:46 | #2 |
Местный
Регистрация: 12.07.2015
Сообщений: 417
|
Не успел всё доделать, очень много работы и очень мало свободного времени.
Пока сделал частичный экспорт в obj. Пока не экспортируются коллизии, хуки и материалы. Не хватило сегодня времени всё допилить. В аттаче экспортнутые лоды и тени для той модели, которую мне для экспериментов присылали (Ki-43-II(Multi1)). Материалы для неё взял из присланного мне архива. Посмотрите, правильно ли экспортнулось и не сбит ли маппинг. По именам. L0 - нулевой лод, L1 - следующий, и так далее. SH в конце имени для теней. Посмотрите также, нормально ли видно имена в Максе, не режутся ли? Кстати, а как в Максе хуки выделяются? В Иловском меше у нас просто локальная матрица (точка с векторами поворота). В obj нет такого понятия, на месте хука при экспорте надо приделывать какой-то объект и поворачивать и сдвигать его по данным из матрицы. Можно, на пример, кубик, можно линию из точки приделать. Как должно быть правильно? |
13.09.2015, 22:54 | #3 | |
Пытающийся полететь
|
Цитата:
Вот как хуки выглядят в максе2012 на примере тестового OBJ что я вам давал. Тоесть просто кубики, все равно ИЛ-2 оперирует центрами кубиков и ориентацией пивотов( осей) в центре этих кубиков |
|
13.09.2015, 23:27 | #4 | |
Пытающийся полететь
|
Цитата:
1. текстовик ошибки при попытке открыть меш конвертером ваш OBJ 2. Два скрина при попытке открыть макс 2012 ваш OBJ. Макс начинает открывать, что-то видит и потом падает на сообщение об ошибке. 3. Третий скрин(странно) ваш obj нормально открылся в конвертере для MSFX Естественно маппинг не могу глянуть, так как в макс не могу загрузить |
|
13.09.2015, 23:03 | #5 |
Местный
Регистрация: 12.07.2015
Сообщений: 417
|
Ого, какие кубы здоровые. А надо ли таке огромные?
|
13.09.2015, 23:15 | #6 |
Пытающийся полететь
|
Да в принуипе и наверное не надо такие большие.
Я делал модель и она успешно летала уменьшив в максе кубики раза в 4...5 ,только что видны были. С экспортом из макса в ИЛ-2 экспортером от МАРАЗ тоже при этом проблем не было Этот большой размер лезет из меш конвертера. Они в нем большие показываются. |
14.09.2015, 00:27 | #7 |
Местный
Регистрация: 12.07.2015
Сообщений: 417
|
Так, я кажется понял, в чём дело.
Похоже, что плагин для Макса (а так-же 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 |
14.09.2015, 00:35 | #8 |
Пытающийся полететь
|
|
14.09.2015, 00:52 | #9 |
Местный
Регистрация: 12.04.2009
Сообщений: 5,063
|
ох ёлки... как всё серьёзно то тут... круто!!! WTG!))
__________________
ищется идейный Программер ) |
14.09.2015, 00:56 | #10 |
Местный
Регистрация: 12.07.2015
Сообщений: 417
|
Так тут, как раз, всё просто.
Тени, как и коллизии, объекты невидимые. Соответственно, им ненужны ни текстуры, ни нормали. По этому в Иловский меш для них нормали и не пишутся. В итоге - файл получается заметно меньше по размеру. Авторы вообще, очень много для уменьшения размеров данных сделали. На мой взгляд, даже излишне много. В некоторых местах можно было вполне без некоторых трюков обойтись. Всё равно данные потом жмутся. На выходе всё равно разница будет не значительной. А вот время загрузки этих данных возрастает иногда значительно. Потому что мы сначала данные распаковываем, потом ещё и дополнительно преобразовываем. А эти преобразования сидят в циклах. И в результате время загрузки растёт линейно с размером и кол-вом данных. А данных у нас немало. |
14.09.2015, 01:58 | #11 |
Местный
|
Спасибо огромное за разработку, NB79
Пока утилиту не "пробовал", но подчеркну, что очень важно будет сохранение групп сглаживаний при экспорте .msh => .3ds, чтобы потом не мучится с ними с максе (очень затягивает разработку модификаций 3D). Удачи в совершенствовании и релизах утилиты |
14.09.2015, 15:25 | #12 | |
нужно больше чамфера!
|
Цитата:
|
|
14.09.2015, 16:13 | #13 |
Местный
|
А какие сохраняют без наличия других проблем?
Может тогда есть возможность сразу конвертнуть в .max? |
14.09.2015, 16:17 | #14 |
нужно больше чамфера!
|
ндык .obj. В идеале .fbx.
Последний раз редактировалось Pumping_Noise; 14.09.2015 в 20:00. |
14.09.2015, 03:14 | #15 |
Местный
Регистрация: 12.07.2015
Сообщений: 417
|
Спасибо, конечно, за спасибо! Но!
Есть большая ж. Даже так - Ж! Группы сглаживания в Иловских мешах не сохраняются! Для того, чтобы ускорить загрузку моделей в игре, иловский меш уже содержит все необходимые, предварительно рассчитанные нормали. Т.е., в таком подходе большой плюс в том, что у тебя все необходимые данные просто грузятся в буферы и отдаются на отрисовку. Не надо на этапе загрузки моделей рассчитывать нормали (а это занимает время и требует определённых манипуляций с данными). Разработчики не ставили целью возможность восстановить модель из своего формата, им это не нужно было, у них модели и так были в наличии. А вот скорость загрузки моделей и простата манипуляций с ними для них важна. Я уже давно ломаю голову над тем, как можно из имеющихся данных попробовать восстановить группы сглаживания. К сожалению простых и надёжных способов для этого нет. И открытых алгоритмов для этого, похоже тоже нет. Беглым просмотром в гугле я ничего толкового на эту тему не нашел, даже намёков на решение. Придётся придумывать самостоятельно, а это очень трудоёмкая и непростая задача. Не знаю, буду ли я этим вообще заниматься. Было бы хотя бы годное описание мат аппарата для этой задачи, хоть можно было бы оценить во что это выливается. У меня опыта в решении такого рода задач нет. Как я уже говорил, 3Д я раньше вообще не занимался. Сложность в том, что группа сглаживания задаёт некоторые области для которых нормали должны рассчитываться определённым, заданым автором модели, образом. И группа, как раз, и содержит в себе эти параметры. И в иловском меше, кроме уже рассчитанных нормалей, следов этого определения нет. А нормаль - это уже результат вычислений по заданным в группе правилам. Значит надо проходить по всем полигонам и каким-то образом определять степень искривления поверхности, группировать полученные данные определённым образом и потом пытаться понять является ли некоторая группа полигонов обеденённой в одну группу сглаживания, либо нет. В принципе, наименее сложно выделить группы полигонов (для плоских поверхностей), у которых сглаживание было отключено, у них все нормали принадлежащих им вершин в замкнутой поверхности смотрят в одну сторону и параллельны. Но даже это без гарантии, по крайней мере у меня нет сейчас уверенности в том, что это не будет искажать результат. Вот такие пироги. Последний раз редактировалось NB79; 14.09.2015 в 03:30. |
14.09.2015, 03:16 | #16 |
Местный
Регистрация: 12.07.2015
Сообщений: 417
|
Переделал сохранение obj-а (всё ещё не полное, пока надо разобраться что не так с загрузкой). Проверьте, пож., будет Макс его грузить, или нет. И если загрузит, то всё ли нормально.
|
14.09.2015, 16:40 | #17 |
нужно больше чамфера!
|
Макс открывает. Материалы, мапинг вроде на месте. Только носом вниз почему-то.
|
14.09.2015, 17:13 | #18 |
Пытающийся полететь
|
|
14.09.2015, 20:12 | #19 | ||
Местный
Регистрация: 18.01.2012
Сообщений: 795
|
Цитата:
Файлы объектов наземки используют обычно только два основных метериала, но и там нужно по-хорошему оставлять для NULL материала ID1. Я всегда считал, что из текстового меша фейсы с материалом нуль не восстановить, т.к. сами фейсы в текстовый меш не идут, а используются для просчёта нормалей смежных фейсов. Пример на практике применения материала NULL был рассмотрен choisek-ом в теме E13A, где он сглаживал им заслонки радиаторов на капоте. Также, сколько я видел конвертеров мешей, ни один из них абсолютно корректно группы сглаживания не восстанавливал, и файлик приходилось пилить вручную. А ну и про масштаб напомню, хорошо бы, чтобы при импорте в макс можно было указывать масштаб вручную, тк в иле принято модели в максе делать в масштабе 20:1. Цитата:
Последний раз редактировалось yt2; 14.09.2015 в 20:16. |
||
14.09.2015, 20:35 | #20 | |
Пытающийся полететь
|
Цитата:
Хотя с другой стороны, может забить на этот NULL и от безисходности смирится с последующим вручную работой в максе с этим материалом ? Или как предложил У2 просто забить место в списке материалов для NULL в виде ID1 Последний раз редактировалось carsmaster; 14.09.2015 в 20:38. |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|