Render.ru

Разорванные вершины при экспорте в 3ds

ARTIS

Активный участник
Рейтинг
5
#1
Ранее не работал с файлами этого типа. Сейчас пришлось. И столкнулся со странной особенностью - при экспорте вершины разбиваются. При чём не все, а только определённые вершины. Сложно однозначно объяснить... Попробую на примере:
обычный бокс, разделённый пополам по каждой стороне (Length Segs = Width Segs = Height Segs = 2).

Имеем 26 вертексов.
Экспортим в 3ds.
Импортим обратно в Макс - получаем 100 вертексов. Анвелдились (если можно так выразиться) все вершины по граням бокса. Те, что были по центрам сторон - остались в порядке.

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

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

Наверняка, кто-то сталкивался с подобной проблемой, подскажите, как её решить? В чём фишка, или это особенность 3ds формата?..
 
Рейтинг
22
#2
Особенность экспорта-импорта в 3ds. После импорта в MAX сделай Vertex - Select All - Weld
с минимальным порогом Weld Selected.
 

ARTIS

Активный участник
Рейтинг
5
#3
После импорта в MAX сделай Vertex - Select All - Weld
с минимальным порогом Weld Selected.
Спасибо за ответ. Да, это решает проблему при импорте модели в макс. Но мне нужна модель на выходе, т.е. я делаю её в Максе, а конечный продукт, который мне нужно получить - это 3ds. Так что велдинг вершин в данном случае - не панацея.
Модель лоу поли, сложной формы. Я сделал её из бокса, путём разных манипуляций получил нужную форму, которая меня вполне устраивает. Применил сглаживание полигонов - моделька стала выглядеть хорошо. Сделал экспорт - и вот беда, модель в формате 3ds имеет разрезы на тех местах, где ранее были грани бокса. Это хорошенько портит вид модели.
Выходит, из бокса делать модель нельзя?
Вообще, какие ограничения существуют в работе с 3ds?
 
Рейтинг
22
#4
"модель в формате 3ds" - после импорта это уже модель в формате .max, а не 3ds.
При импорте в другие пакеты соответственный и формат файлов будет.
Ограничения на экспорт в 3ds, основные:
- количество faces одного объекта (любого в сцене) не более 65536, на практике
61000-62000, при 63000 обычно начинаются проблемы
- количество карт/материалов в сцене не более 256
- количество символов в названии объектов не более 10, в названиях карт и материалов
не более 8
- все текстуры при экспорте должны лежать в одной папке с max-файлом
 

ARTIS

Активный участник
Рейтинг
5
#5
За информацию спасибо! Только вот моя модель всем этим условиям удовлетворяет. Почему же разрезы на гранях??? Может быть, есть ещё какие-то нюансы?
"модель в формате 3ds" - после импорта это уже модель в формате .max, а не 3ds.
Уважаемая Селена, я прекрасно понимаю, что значит "модель в формате 3ds" :) Импорт в Макс я делал только для того, что бы разобраться, что с вершинами не так. А вообще, как я уже говорил, я делаю модель в Максе, экспорчу её в 3ds и смотрю на неё во вьювере. Так что всё с фразой "модель в формате 3ds" верно )
 
Рейтинг
22
#6
Ну тогда уж на "-ый", а не "-ая", пол у меня указан в регистрационных данных.
А вообще лучше на "ты", так проще.
У тебя модель уже раскрашена? Если нет, то при раскраске примени несколько материалов
Multi/Sub-Object и экспортируй в 3ds. после импорта заметишь еще пару "интересных"
вещей, а именно: некоторые материалы будут разбиты на несколько более простых, также ID
у некоторых материалов изменится.
Я не совсем понимаю смысл экспорта-импорта в 3ds, зачем это собственно делать, если моделируешь
все равно в MAX-е? В видовых окнах ты и так все видишь, для проверки геометрии есть STL Check,
а если хочешь посмотреть, как выглядит модель именно в 3ds, то еще раз повторюсь, в разных
программных пакетах после импорта она будет на уровне геометрии выглядеть по разному.
В видовом окне ты смотришь после импорта не 3ds, это уже Max-файл.
 

ARTIS

Активный участник
Рейтинг
5
#7
Ну тогда уж на "-ый", а не "-ая", пол у меня указан в регистрационных данных.
Прошу прощения. В профиль не глянул. Не ловко вышло, ещё раз сорри...
На счёт смысла экспорта: мне нужна модель именно в 3дс. Я делаю модели для интегрирования их в приложение (программа по типу САПР). Т.е. макс в данном случае - это просто инструмент. Конечная цель - получить модель в формате 3ds.
3ds модель подгружается в программу и отображается в её штатном вьювере. Мне важно, что бы модель смотрелась хорошо именно там. Я делаю модель в максе, экспорчу её в 3дс и смотрю на неё не в максе, а в этой тулзе. И вижу, что некоторые грани модели разбиты. как этого избежать, пока не могу понять, перепробовал уже много всего....

на скриншоте видны места "разрезанных" граней. В максовской модели, естественно, такого нет.
 

Вложения

ARTIS

Активный участник
Рейтинг
5
#8
Чёрт побери, как же всё оказалось просто!!!!! Аж стыдно, ей богу....
Оказывается, проблема была в текстурных координатах, хотя логику в этом я смутно вижу. При экспорте в 3ds есть одна единственная опция: Preserve MAX's texture coordinates. Если её отключить - всё отлично, все вершины и грани остаются в первоначальном виде и ничего не разбивается.
Тот же эффект, если изначально при создании примитива убрать опцию Generate Mapping Coords.
А я копал в саму геометрию, искал причины в вертексах, гранях... а оно вот как, оказывается...
Селена, спасибо за помощь и возбуждение мозговой деятельности.

Кстати, может быть, кто-то может объяснить логику такого поведения? Просто, интересно понять суть, почему текстурные координаты влияют на разбиение вершин?
 
Рейтинг
22
#9
Потому, что они используются в качестве ориентира при экспорте. Можешь провести еще
такой эксперимент: примени несколько одноцветных карт небольшого размера, например
10x10 пикселов, к объекту с большими физическими размерами и экспортируй в 3ds.
Если даже у него количество faces будет намного меньше 64К, во многих случаях обратно
его импортировать не получится.
И кстати, почему вдруг 3ds выбран для экспорта в CAD программы? Я достаточно давно
в них работаю ( Unigraphics NX и SolidWorks) и мне это совсем не понятно. 3ds хорош тем,
что его понимают практически все программные пакеты графики, т.е. своей универсальностью,
очень подходит для экспорта объектов в генераторы ландшафтов, например. Но для CAD
приложений у него слишком много ограничений.
 

ARTIS

Активный участник
Рейтинг
5
#10
И кстати, почему вдруг 3ds выбран для экспорта в CAD программы?
Ну, это вопрос не ко мне, а к разработчикам :) Мне сказали делать 3ds, я делаю 3ds... Я в этой сфере, можно сказать, новичок. Вообще, работаю в геймдеве, там свои заморочки. Ну а не так давно связался ещё и с этой канторой - теперь вот втягиваюсь в новые нюансы.
 
Рейтинг
22
#11
Могу тебя "успокоить", лет через ...ь вопросов меньше не станет, просто они
будут другого уровня.
 
Рейтинг
319
#12
к списку Селена - в 3ds на одном вертексе должен быть только один набор UV координат. Потому и рвет. Может, obj можно?
 

ARTIS

Активный участник
Рейтинг
5
#13
к списку Селена - в 3ds на одном вертексе должен быть только один набор UV координат. Потому и рвет. Может, obj можно?
Boris Kulagin ВЫ ГЕНИЙ!!! :)) Действительно, причина в этом.
Хотя, к сожалению, мою проблему это не решает (( Что бы все были счастливы (т.е. что бы и вершины не рвались, и текстура ложилась ровно), мне придётся каждую модель тщательно разворачивать и следить, что бы швы были в нужных местах и т.д.... ох.....
На счёт obj - не знаю, думаю, что нельзя. Разработчики используют только 3ds.
 
Рейтинг
22
#14
ARTIS, в какой программный пакет эти разработчики импортируют твои
3ds файлы? Если это окажется один из тех, в которых я работаю, может
что-то посоветую с учетом его особенностей.
 

ARTIS

Активный участник
Рейтинг
5
#15
Вряд ли. Это пакет их собственной разработки, эта кантора как раз и занимается разработкой и продвижением этого продукта - ProKitchen. Это не профессиональный программный продукт. Он более ориентирован, скажем так, на домохозяек. По типу "нарисуйте свою кухню, расставьте в в ней нашу мебель и сделайте заказ прямо сейчас!" ))
 
Рейтинг
319
#16
ARTIS - а UV координаты нужны? Есть утилита UVW Remove. Хотя это же делает снятие галки при экспорте в 3ds.
Если пакет в разработке - то чего им стоит сделать импорт OBJ, спецификация открытая, денег не просит (вроде), ведь импорт 3DS как-то сделали? http://en.wikipedia.org/wiki/Wavefront_.obj_file
 

ARTIS

Активный участник
Рейтинг
5
#17
Моделей очень много и они разные. Да, для некоторых моделей UV координаты, действительно, не так важны, и я просто снимаю чекбокс при экспорте. Так же пробовал и упомянутую Вами утилиту - эффект такой же. Если модель не требует чёткого позиционирования текстуры (например, сплошная заливка) - то всё без проблем, экспорчу без сохранения текстурных координат и получаю вполне приемлемый результат. Но как только сталкиваюсь с более сложной моделью, где приходится натягивать чёткую текстуру - тут и начинаются проблемы (( Приходится выбирать: либо съехавшая текстура (что совсем не айс), либо разорванные вершины (что тоже не очень приятно).
По поводу использования других форматов: я уже об этом подумывал, но дело в том, что этот софт уже давно на рынке и кантора эта уже работает много лет. В данное время они занимаются выпусками апдейтов для программы и периодическим расширением библиотек моделей (которые делаю я). И я у них работаю совсем недавно, а в чужой монастырь, как известно, со своим не ходят ))
В любом случае, ещё раз спасибо Селена и Boris Kulagin за отзывчивость )
 
Рейтинг
22
#18
"либо съехавшая текстура" - это мне не понятно вообще-то, я экспортирую
модели в 3ds очень давно и сохранением проецирования проблем не было
никогда.
 

ARTIS

Активный участник
Рейтинг
5
#19
Ну как же?.. если я снимаю галку Preserve MAX's texture coordinates, то текстурные координаты не сохраняются, и текстура, соответственно, ложится не так, как нужно. Или я что-то не так делаю?..
Вот провёл простой эксперимент: создал бокс, выдавил экструдом пару поликов. Натянул простую текстуру чекер. На этих новоиспечённых полигонах текстура, естественно, смазана. Сделал анврап, разложил текстуру как надо. Всё красиво. Делаю экспорт (без сохранения текстурных координат) - и текстура, конечо же, отображается криво. Если с сохранением текст. координат - да, всё хорошо, но тогда рвутся вершины. В данном примере разрыв вершин ничего не портит. т.к. моделька остоугольная. Но, если этот бокс превратить в что-нибудь более гладкое - разрыв вершин будет явно портить вид модели (несколько постов выше я выкладывал скриншот одной из таких моделей).
 
Рейтинг
22
#20
Теперь понятно с текстурами, но не вижу проблемы со швами,
Vertex - Select All - Weld с минимальным порогом Weld Selected
решает эту проблему с минимальными затратами времени.
Если хочешь и проецирование и целую геометрию, то выше уже
правильно советовали, ищи другой формат для экспорта.
Если строго 3ds, то что-то одно придется выбирать.
 
Сверху