3ds max удалить дубликаты

Обновлено: 07.07.2024

Основу 3D-дизайна составляет работа с объектами: их создание, перемещение-вращение, трансформирование и применение различных дополнительных настроек (толщины стенок, цвета, текстур и так далее). За счёт этого получаются реалистичные модели предметов, рендеры интерьеров и экстерьеров, спецэффекты, анимированные персонажи.

Мы собрали подробный гайд по всем необходимым 3D-дизайнеру действиям над объектами и решению распространенных проблем.

Содержание

Понятие объектов в 3ds Max

Из объектов создается общая сцена в 3ds Max. Большинство из них представляют собой базовые формы, которые используют для создания сложных фигур.

  1. Геометрия (Geometry)
  2. Формы (Shapes)
  3. Камеры (Cameras)
  4. Объемные деформации (Space Warps)
  5. Источники света (Lights)
  6. Системы частиц (Particles)
  7. Вспомогательные объекты (Helpers)
  8. Дополнительные инструменты (Systems)

Как работать с объектами в 3ds Max

Для работы над объектами есть ряд встроенных функций в 3ds Max, начиная от базовых инструментов вроде “Создать”, “Копировать”, “Вставить” и заканчивая сложными настройками материалов.
Кроме этого, можно скачать и установить дополнительные модификаторы, упрощающие процесс моделирования или визуализации.

Рассмотрим основные действия над объектами.

Создание объектов в 3ds Max

  • стандартные (Standard) — несложные объекты в виде базовых геометрических фигур;
  • расширенные (Extended) — усложненная версия многих базовых фигур.
  1. На командной панели (Command Panel) выберите вкладку “Создать” (Create).
  2. В выпадающем списке с группами объектов выберите вид примитивов, который вам нужен (стандартные или расширенные).
  3. В открывшемся свитке выберите нужный объект.
  4. Перейдите в окно проекции “Перспектива” (Perspective). Для удобства разверните его на весь экран — это можно сделать с помощью комбинации горячих клавиш Alt +W.
  5. Левой кнопкой мыши кликните по экрану и, не отпуская её, потяните курсор в сторону — таким образом будет вырисовываться примитив, получится плоская геометрическая фигура.
  6. Чтобы зафиксировать размер и положение полученного объекта, отпустите кнопку мыши.

Процесс добавления параллелепипеда

  1. Для объектов с углами потяните курсор вниз или вверх, чтобы сделать фигуру объемной — так и простого примитива получится 3D-объект.
  2. Для объектов “Чайник” (Teapot) и “Сфера” (Sphere) задавать высоту не нужно — их рисуют в один этап.
  3. Второй этап в процессе добавления объекта “Труб” (Tube) — задать толщину стенок путем того же растягивания курсором. После этого курсор нужно потянуть вверх, чтобы установить высоту.
  4. Для добавления “Конуса” (Cone) основание рисуют дважды: сначала низ фигуры, затем тянут курсор вверх, создавая объект. Можно сузить фигуру до точки на вершине, а можно сформировать усеченный конус.

Так добавляют конус

Если нужно нарисовать квадрат или круг (не прямоугольник или овал), то при растягивании фигуры дополнительно зажмите клавишу Ctrl.

Выделение объекта в 3ds Max

  • в сглаженном режиме отображения (Smooth and Highlights) объект будет заключен с квадратные белые скобки;
  • в режиме “Каркас” (Wireframe) сетка объект станет белой.
  • прямоугольная область выделения (Rectangular Selection Region);
  • круглая (Circular Selection Region);
  • произвольная (Fence Selection Region);
  • лассо (Lasso Selection Region);
  • выделение кистью (Paint Selection Region).

Как повернуть объект на 90о в 3ds Max

Действия над объектом осуществляются с помощью инструментов, расположенных на основной панели.
Для вращения выберите Select and Rotate (“Выбрать и повернуть”), она обозначена круглой стрелкой. Горячая клавиша для этой команды — E.

Вращайте фигуру с помощью курсора по “орбитам”.

Орбиты появятся после выбора команды и выделения объекта

Орбиты появятся после выбора команды и выделения объекта

Как вырезать объект из объекта 3ds Max

  • группировки объектов;
  • сохранения участка пересечения объектов (остальные части объектов удаляются);
  • вычитания одного объекта из другого.
  1. Выделите объект, который нужно оставить, и условно назовите его объектом A. Тот, который нужно удалить, условно обозначим как объект В.
  2. На панели создания объектов выберите “Геометрию” (Geometry), а в выпавшем после этого списке — “Сложные объекты” (Compound Objects)
  3. Выберите команду Boolean.
  4. В открывшемся справа окне настроек выберите “Вычитание” (Subtraction). Если выбрать A-B, то из объекта А (т.е. выделенного) будет вычтен объект В. Можно сделать и наоборот.
  5. В том же окне нажмите кнопку Pick Operand B.

Отверстие в объекте в 3ds Max

Очевидно, что для создания отверстий можно применять вышеупомянутую команду Boolean. Однако это не единственный вариант.

Круглые отверстия можно создать так:

1. ProCutter. Выберите объект, в котором нужно создать отверстия, и дополнительно дорисуйте еще один круглый объект на месте, где это отверстие должно быть (можно несколько). Примените инструмент ProCutter (она находится в свитке Compound, а свиток — на панели меню Create). В списке настроек справа нужно выбрать, какие именно объекты нужно удалить. Нажмите Pick Stock Object.

С помощью цилиндров поменьше обозначили, где будут отверстия

С помощью цилиндров поменьше обозначили, где будут отверстия

2. Loop Regulizer — скрипт, который нужно устанавливать отдельно. Он применяется в работе с Editable Poly с квадратными или прямоугольными полигонами, и, как и инструмент из предыдущего пункта, создаёт только круглые отверстия. На уровне редактирования Polygon выберите все полигоны, которые будут участвовать в создании отверстия. Кликните правой кнопкой мышки по экрану и в появившемся списке выберите Regulize. Таким образом, получается круг. При необходимости можно применять модификатор Chamfer для большего сглаживания. В настройках справа нажмите Bridge — после этого вместо только что сформированного круга получится сквозное отверстие.

3. Вручную. Сформируйте из полигонов форму будущего отверстия. Затем в режиме Vertex выберите точки, из которых оно состоит, и примените модификатор Spherify.

Место на диске и оперативная память, как известно, лишними не бывают, особенно на ноутбуках. Сегодня пойдет речь об удалении лишнего из уже установленного 3ds max. Это не только освободит место на диске, но и может ускорить запуск 3ds max. Да и лишние модули явно не увеличат скорость работы и стабильность программы. Приступим к чистке.

Для начала попробуем воспользоваться специальной утилитой, которая ставится с самим 3ds max. В Windows, в Меню Пуск вбиваем в поиск Uninstall Tool (без кавычек). Найдется программа удаления продуктов Autodesk. Открываем ее:

Выбираем все, что касается Material Library в разделе 3ds max. Она занимает около 2 Гигабайт на жестком диске.

Material Library - стандартная библиотека текстур самого 3ds max - занимает много места на диске, но популярностью она не пользуется. Перед удалением, конечно, можно посмотреть, из чего она состоит. Она лежит в папке: C:\Program Files\Common Files\Autodesk Shared\Materials\Textures\

Теперь выбираем галочки:

Autodesk Revit Interoperability - Занимает около 1 Гигабайта.

Civil View for 3ds max - Занимает около 600 Мегабайт.

Autodesk inventor Server Engine - Занимает около 650 Мегабайт.

Это приложения для обмена данными между 3ds max и другими продуктами Autоdesk. Если пользуетесь программами Revit, Civil View или Autоdesk inventor, то соответствующие галочки лучше оставить. Если нет - смело удаляем.

У вас будут выбраны следующие пункты:

Как видите, удалить можно почти все из списка, не считая самого 3ds max. И, конечно, других нужных вам программ от Autodesk, которые могут быть в этом списке. Теперь внизу окна нажимаем Удалить .

Остальное можно очистить уже средствами Windows. Идем в Установку и удаление программ (можно открыть через Мой компьютер или найти в панели управления).

Теперь находим и удаляем MAXtoA ( Кстати, в старых версиях 3ds max его нет). Это рендер Arnold Render, но вы, скорее всего, работаете в Corona Render или V-Ray, и он вам не нужен. Но если вы им не пользуетесь, он все равно загружается вместе с 3ds max, тормозя старт программы.

Кстати, всегда можно вернуть удаленные компоненты, заново запустив установку 3ds Max вашей версии – при этом сам 3ds Max не будет переустанавливаться, если он уже установлен. Вы сможете выбрать только нужные вам компоненты. Как это делается, видно на изображениях ниже. При переустановке вернется и Autodesk Application Manager, его можно повторно вручную удалить.

Как выглядит процесс в диспетчере задач :

Изображение использования ЦП / ОЗУ 3ds max во время выполнения скрипта :

Сцена .max, которая вызывает ошибку, может быть найдена здесь: большая сцена .max, которая вызывает ошибку

Сценарий работает следующим образом (псевдокод):

Примечание: идентичные ячейки (в этом контексте) определяются как ячейки, имеющие одинаковый множитель, vertcount, edgecount, position.

3 ответа

Я плохо отлаживаю чужой код, поэтому, опять же, быстрый взгляд - я бы определенно избегал цикла for в for duplicate in obj_dups do(delete duplicate) , delete - это сопоставленная функция, и вы можете передать коллекцию в качестве аргумента Это. Таким образом, не будет так много обновлений проводника сцены, и это должно быть намного быстрее. Я также предпочел бы итерацию рекурсии. В общем, вот как я бы это написал:

На первый взгляд, я бы предостерег от использования objs[i].mesh.numFaces , так как он создает новый экземпляр сетки в памяти, и вы не вызываете утилиту dispose, чтобы удалить его - если вы решите пойти по этому пути и сравнить и polycount, и tricount, определенно сначала выполните преобразование и соберите сетки вне цикла (и, предпочтительно, также используйте snapshotAsMes). Кроме того, вы можете использовать getPolygonCount <node> , который дает вам счетчик полигонов узла (если результатом стека является многообъектный) и счетчик вершин.

Я отредактировал свой код, используя предложения Swordslayer; сбор информации о мешах теперь происходит вне цикла, и я использую getpolygonCount, чтобы получить как poly-, так и vertcount.

Сцена, упомянутая в моем исходном вопросе, содержащая стандартные примитивные объекты 4051, больше не вызывает сбоев (и значительно быстрее), однако другая сцена, содержащая импортированные объекты, теперь вызывает «ошибку переполнения стека» внутри 3ds max . Странно то, что эта ошибка возникает только при первом запуске скрипта после запуска 3ds max. При запуске сценария через секунду (или третий и т. Д.) После того, как произошла ошибка переполнения стека, сценарий выполняется без ошибок (для его завершения требуется около 10-20 секунд), и сценарий функционирует так, как должен (как при его удалении). дубликаты объектов). Ошибка переполнения стека возникает каждый раз, когда я запускаю скрипт на исходной сцене ПОСЛЕ только что запущенного 3ds max.

Еще одна странная вещь (для меня) заключается в том, что даже при возникновении ошибки переполнения стека сценарий действительно удаляет нужные объекты (дубликаты объектов) перед выдачей указанной ошибки.

Мой текущий код:

Проблема не связана с количеством объектов / полигонов в сцене; Я запустил сценарий на сцене, содержащей 16204 стандартных примитивных объекта. Эта сцена состоит из 11 418 736 полигонов и 5 780 404 вершин, в то время как сцена с импортированными объектами, вызывающая ошибку переполнения стека, состоит всего из 703 737 полигонов и 769 886 вершин (что значительно ниже).

Ошибка, возникшая при первом сбое:

stack overflow error 1

Ошибка, возникшая при втором сбое:

stack overflow error 2

Произошла ошибка при третьем сбое:

stack overflow error 3

Ошибка, отображаемая в окне прослушивателя, говорит мне об ошибке, возникшей в Macro_SceneExplorer.mcr в строке 1001, эта строка содержит следующий код: sceneexplorermanager.ExplorerIsOpen

Это также говорит мне, что эта строка кода была вызвана из строки 44 моего скрипта 'delete_duplicates.ms', которая содержит следующий код: for duplicate in obj_dups do(delete duplicate)

Ошибка продолжается до тех пор, пока уровень стека не станет равным 386 . остальная часть ошибки выглядит аналогично разделу, показанному ниже (еще раз ошибка продолжается в течение длительного времени, для полной ошибки см. Ранее упомянутый файл .txt) :

Я попытался найти дополнительную информацию об ошибке «3ds Max перестал работать», используя окно просмотра событий:

Будем весьма благодарны за любые предложения о том, что я делаю неправильно / что может быть причиной этих ошибок, спасибо!

Место на диске и оперативная память, как известно, лишними не бывают, особенно на ноутбуках. Сегодня пойдет речь об удалении лишнего из уже установленного 3ds max. Это не только освободит место на диске, но и может ускорить запуск 3ds max. Да и лишние модули явно не увеличат скорость работы и стабильность программы. Приступим к чистке.

Для начала попробуем воспользоваться специальной утилитой, которая ставится с самим 3ds max. В Windows, в Меню Пуск вбиваем в поиск Uninstall Tool (без кавычек). Найдется программа удаления продуктов Autodesk. Открываем ее:


Выбираем все, что касается Material Library в разделе 3ds max. Она занимает около 2 Гигабайт на жестком диске.


Теперь выбираем галочки:

У вас будут выбраны следующие пункты:


Как видите, удалить можно почти все из списка, не считая самого 3ds max. И, конечно, других нужных вам программ от Autodesk, которые могут быть в этом списке. Теперь внизу окна нажимаем Удалить.

Остальное можно очистить уже средствами Windows. Идем в Установку и удаление программ (можно открыть через Мой компьютер или найти в панели управления).

Теперь находим и удаляем MAXtoA ( Кстати, в старых версиях 3ds max его нет). Это рендер Arnold Render, но вы, скорее всего, работаете в Corona Render или V-Ray, и он вам не нужен. Но если вы им не пользуетесь, он все равно загружается вместе с 3ds max, тормозя старт программы.


Кстати, всегда можно вернуть удаленные компоненты, заново запустив установку 3ds Max вашей версии – при этом сам 3ds Max не будет переустанавливаться, если он уже установлен. Вы сможете выбрать только нужные вам компоненты. Как это делается, видно на изображениях ниже. При переустановке вернется и Autodesk Application Manager, его можно повторно вручную удалить.



Хотите научиться работать в 3ds Max + Corona + Photoshop на профессиональном уровне? Мы вам поможем :)

Читайте также: