Подготовка модели в 3ds max: различия между версиями

Материал из Light Stream (RU)
(Задача №936 (LS Dev Hub))
 
(Межъязыковые ссылки на переводы)
Строка 1: Строка 1:
[[ru:Подготовка модели в 3ds max]] [[en:Preparing a Model in 3ds Max]] [[zh:在3ds Max中准备模型]]
Эта статья — о том, какой должна быть модель, чтобы она встала в сцену Light Stream нужного размера, нужной стороной вверх и без потерь. Речь идёт о 3ds max, но требования одинаковы для любого 3D-редактора: программе важно не в чём модель сделана, а что записано в файле <code>*.obj</code>. О самом импорте рассказывает статья [[Импорт моделей OBJ]].
Эта статья — о том, какой должна быть модель, чтобы она встала в сцену Light Stream нужного размера, нужной стороной вверх и без потерь. Речь идёт о 3ds max, но требования одинаковы для любого 3D-редактора: программе важно не в чём модель сделана, а что записано в файле <code>*.obj</code>. О самом импорте рассказывает статья [[Импорт моделей OBJ]].



Версия от 19:28, 2 сентября 2026

Эта статья — о том, какой должна быть модель, чтобы она встала в сцену Light Stream нужного размера, нужной стороной вверх и без потерь. Речь идёт о 3ds max, но требования одинаковы для любого 3D-редактора: программе важно не в чём модель сделана, а что записано в файле *.obj. О самом импорте рассказывает статья Импорт моделей OBJ.

Готовить модель для Light Stream нужно не «покрасивее», а «понятнее». Красивого рендера здесь не будет: программа показывает объект простой заливкой с одной текстурой. Зато по вершинам модели работает привязка, а её объекты становятся строками списка, который вы будете листать весь проект, — поэтому важнее всего правильный масштаб, чистая геометрия и осмысленные имена.

Что переносится в Light Stream, а что нет

Переносится Не переносится
  • Геометрия — треугольники и четырёхугольники
  • Разбивка на объекты и их имена
  • Нормали (светотень и сглаживание)
  • Линии — они становятся сплайнами
  • Развёртка (координаты текстуры)
  • Основной цвет материала и основная текстура
  • Модификаторы, история построения, кости и анимация
  • Слои, группы, связи «родитель — потомок»
  • Группы сглаживания сами по себе
  • Все карты, кроме основной текстуры: рельеф, отражение, прозрачность, самосвечение
  • Второй и следующие материалы одного объекта
  • Источники света и камеры — из *.obj они не приходят
  • Вершинные цвета

Единицы и масштаб

Координаты берутся из файла как есть: окна с масштабированием при импорте нет, и подогнать размер «на входе» не получится.

Сцена Light Stream измеряется в миллиметрах: одна единица длины файла — это один миллиметр. Фасад высотой 30 м должен занимать в файле 30 000 единиц, а отдельный пиксель светодиодной линейки — три-четыре десятка. Проверить масштаб проще всего кубом, созданным в самой программе: куб с размерами 1000 × 1000 × 1000 — это метровый кубик, поставьте его рядом с моделью и сравните.

В 3ds max удобнее всего работать так: задайте системные единицы в миллиметрах и моделируйте в реальных размерах — тогда при экспорте ничего пересчитывать не нужно и коэффициент масштаба остаётся равным 1. Если сцена собрана в других единицах, задайте коэффициент масштаба при экспорте: из метров — 1000, из сантиметров — 10, из дюймов — 25,4.

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

Ориентация

Вверх в сцене Light Stream смотрит ось Z — как и в 3ds max. Поэтому в настройках экспорта OBJ флажок Flip YZ-axis (перестановка осей под Y-вверх) нужно снять: с ним модель ляжет в сцене на бок. Если модель всё же легла, переключите этот флажок и экспортируйте заново.

Перед экспортом полезно сбросить трансформации и поставить модель в 3ds max туда, где она должна оказаться относительно начала координат: положение объектов друг относительно друга и координаты из файла сохраняются при импорте полностью.

Разбивка на объекты и имена

Файл разбирается на отдельные объекты, и каждый из них становится строкой в окне 3D Объекты со своим флажком видимости, своим материалом и своим замком. Правила простые:

  • Вся геометрия должна лежать в именованных объектах. То, что записано в файл до первого объекта, не импортируется.
  • У каждого объекта должно быть имя. Безымянный объект или группа обрывают чтение файла: то, что записано ниже, в сцену уже не попадёт, и модель придёт наполовину.
  • Имена — латиницей, без кириллицы. Русские буквы в именах объектов и в именах файлов превращаются при импорте в набор вопросительных знаков.
  • Разбивайте по смыслу: «facade», «roof», «column_left». Модель из одной сплошной детали будет одной строкой в списке — спрятать или перекрасить её часть уже не выйдет.
  • Не увлекайтесь и обратным: несколько сотен мелких объектов превращают список 3D Объекты в бесконечную ленту, по которой неудобно искать.

Полигоны

Light Stream читает треугольники и четырёхугольники. Грани с пятью и более вершинами пропускаются молча — на их месте в сцене будут дыры.

Поэтому в настройках экспорта в группе Faces выбирайте Triangles или Quads, но не Polygons. Перед экспортом сверните модификаторы и переведите объекты в полигональную сетку: NURBS, патчи, тела с булевыми операциями и прочие непросчитанные объекты в OBJ либо не попадут, либо попадут не тем, чем выглядели в окне проекции.

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

Нормали

Нормали в файл записывать обязательно — в настройках экспорта это флажок Normals. По ним программа считает светотень: без нормалей объект рисуется одной ровной заливкой цветом фоновой подсветки, то есть выглядит плоским тёмным силуэтом без объёма.

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

Отсечения задних граней в Light Stream нет — грань видна с обеих сторон, поэтому вывернутая наружу деталь не исчезнет. Но нормаль, направленная от света, гасит светотень: такая грань будет заметно темнее соседних. Если после импорта на модели тёмные пятна, проверьте направление нормалей в редакторе.

Линии под приборы

Линии, записанные в файл, приходят в сцену готовыми сплайнами — по ним сразу можно расставлять приборы, не обводя рёбра вручную. Это самый удобный способ передать в Light Stream трассы линеек, гирлянд и контурной подсветки: рисуете их сплайнами в 3ds max по месту, и в программе остаётся только связать их с маппингом.

Чтобы линии дошли:

  • включите их экспорт — флажок Shapes/Lines в настройках экспорта OBJ;
  • переведите сплайны в ломаные с нужным числом точек: кривые записываются в файл отрезками, и чем меньше шаг, тем больше точек придёт в сцену;
  • соедините сегменты в одну линию. Каждая линия файла становится отдельным сплайном, поэтому трасса, собранная из несоединённых отрезков, придёт россыпью коротких сплайнов;
  • отключите экспорт текстурных координат, если сплайны не появились: некоторые экспортёры дописывают их и в строки линий, а такие строки Light Stream пропускает.

Отдельного объекта для приборов делать не нужно: источники света из 3ds max в OBJ не сохраняются вовсе. Если хочется передать в программу и расставленные светильники, экспортируйте модель в *.fbx — оттуда, кроме объектов и сплайнов, приходят и одиночные приборы.

Материалы и текстуры

Материалы OBJ хранит в отдельном файле рядом с моделью, а текстуры — это ещё и отдельные картинки, поэтому включайте экспорт материалов и всегда переносите модель целиком, всей папкой.

Что нужно знать про материалы заранее:

  • Один объект — один материал. Многокомпонентный материал (Multi/Sub-Object) переносится только одной своей частью. Если части детали должны быть разного цвета, разделите деталь на объекты по материалам.
  • Из материала берутся только основной цвет и основная текстура. Прозрачность, отражения, рельеф, самосвечение и любые процедурные карты игнорируются — их лучше «запечь» в обычную картинку или не рассчитывать на них.
  • Текстуры — обычные картинки JPG, PNG, BMP или GIF. Кладите их рядом с моделью или во вложенную папку: программа ищет файл по имени и в соседних папках тоже. Имена файлов — латиницей.
  • Для текстуры нужна развёртка. Объект без развёртки получит текстуру, размазанную одним цветом.
  • Самосветящихся материалов в Light Stream нет. Если деталь должна выглядеть светящейся — вывеска, экран, световая линия, — включите ей после импорта флажок Свечение в разделе Материал окна Свойства.

Цвет, текстуру и свечение можно назначить и полностью вручную уже в программе, поэтому для служебной геометрии материалы в редакторе можно вообще не настраивать: объект без материала приходит белым.

Сложность модели

Модель попадает внутрь файла проекта целиком, поэтому её вес — это вес проекта, время его открытия и нагрузка на видеокарту при каждом кадре предпросмотра. Причём в программе сетка занимает больше места, чем в редакторе: каждая грань хранится со своими вершинами.

Разумный минимум подготовки перед экспортом:

  • удалите всё, что не видно на объекте: внутренности, изнанку, скрытые детали, вспомогательные объекты, вторые копии;
  • уберите мелочь, которой не будет видно в предпросмотре: болты, профили, фактуру, фаски в один миллиметр;
  • уменьшите число сегментов у скруглений и труб — гладкость дорого стоит;
  • оставьте вершины там, где они нужны: по ним работает Привязать к вершинам, и приборы будут точно ложиться на углы и рёбра. Если по ровной стене должна пройти линия светильников, добавьте в модель рёбра по её краям.

Порядок экспорта

  1. Соберите в сцене 3ds max только то, что должно уехать в Light Stream: саму модель и линии под приборы.
  2. Сверните модификаторы, переведите объекты в полигональную сетку, удалите скрытое и лишнее.
  3. Проверьте имена объектов: они должны быть, и они должны быть латиницей.
  4. Проверьте размеры и приведите модель к масштабу «одна единица — один метр».
  5. Экспортируйте выделенное в *.obj.
  6. В настройках экспорта: FacesTriangles или Quads; Normals — включить; Texture coordinates — включить, если есть текстуры; Shapes/Lines — включить, если в сцене есть линии под приборы; Flip YZ-axis — снять; экспорт материалов — включить.
  7. Сохраните модель, файл материалов и текстуры в одну папку и импортируйте оттуда.

Первую строку получившегося файла экспортёр отводит под служебную запись о себе — если будете править файл вручную, не удаляйте её: при импорте первая строка не читается, и вместе с ней потеряется всё, что вы поставите на её место.

Что проверить после импорта

  1. Нажмите Z в окне 3D Просмотр, ничего не выделяя, — камера впишет всю сцену. Создайте рядом куб с размерами 1000 × 1000 × 1000 и сравните: если метровый кубик рядом с фасадом выглядит как метровый кубик, масштаб верен.
  2. Посмотрите список 3D Объекты: на месте ли все детали, читаемые ли у них имена, пришли ли сплайны с линий.
  3. Обойдите модель камерой и поищите дыры на месте сложных граней и тёмные пятна на месте вывернутых нормалей.
  4. Убедитесь, что объекты не белые и не серые, если вы экспортировали материалы.

Всё, что не сошлось, надёжнее исправить в 3ds max и импортировать заново: доводить геометрию средствами Light Stream нельзя, а модель, исправленную в редакторе, вы сможете использовать и в других проектах.

Что ещё пригодится