3ds max удалить дубликаты
Основу 3D-дизайна составляет работа с объектами: их создание, перемещение-вращение, трансформирование и применение различных дополнительных настроек (толщины стенок, цвета, текстур и так далее). За счёт этого получаются реалистичные модели предметов, рендеры интерьеров и экстерьеров, спецэффекты, анимированные персонажи.
Мы собрали подробный гайд по всем необходимым 3D-дизайнеру действиям над объектами и решению распространенных проблем.
Содержание
Понятие объектов в 3ds Max
Из объектов создается общая сцена в 3ds Max. Большинство из них представляют собой базовые формы, которые используют для создания сложных фигур.
- Геометрия (Geometry)
- Формы (Shapes)
- Камеры (Cameras)
- Объемные деформации (Space Warps)
- Источники света (Lights)
- Системы частиц (Particles)
- Вспомогательные объекты (Helpers)
- Дополнительные инструменты (Systems)
Как работать с объектами в 3ds Max
Для работы над объектами есть ряд встроенных функций в 3ds Max, начиная от базовых инструментов вроде “Создать”, “Копировать”, “Вставить” и заканчивая сложными настройками материалов.
Кроме этого, можно скачать и установить дополнительные модификаторы, упрощающие процесс моделирования или визуализации.
Рассмотрим основные действия над объектами.
Создание объектов в 3ds Max
- стандартные (Standard) — несложные объекты в виде базовых геометрических фигур;
- расширенные (Extended) — усложненная версия многих базовых фигур.
- На командной панели (Command Panel) выберите вкладку “Создать” (Create).
- В выпадающем списке с группами объектов выберите вид примитивов, который вам нужен (стандартные или расширенные).
- В открывшемся свитке выберите нужный объект.
- Перейдите в окно проекции “Перспектива” (Perspective). Для удобства разверните его на весь экран — это можно сделать с помощью комбинации горячих клавиш Alt +W.
- Левой кнопкой мыши кликните по экрану и, не отпуская её, потяните курсор в сторону — таким образом будет вырисовываться примитив, получится плоская геометрическая фигура.
- Чтобы зафиксировать размер и положение полученного объекта, отпустите кнопку мыши.
- Для объектов с углами потяните курсор вниз или вверх, чтобы сделать фигуру объемной — так и простого примитива получится 3D-объект.
- Для объектов “Чайник” (Teapot) и “Сфера” (Sphere) задавать высоту не нужно — их рисуют в один этап.
- Второй этап в процессе добавления объекта “Труб” (Tube) — задать толщину стенок путем того же растягивания курсором. После этого курсор нужно потянуть вверх, чтобы установить высоту.
- Для добавления “Конуса” (Cone) основание рисуют дважды: сначала низ фигуры, затем тянут курсор вверх, создавая объект. Можно сузить фигуру до точки на вершине, а можно сформировать усеченный конус.
Выделение объекта в 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
- группировки объектов;
- сохранения участка пересечения объектов (остальные части объектов удаляются);
- вычитания одного объекта из другого.
- Выделите объект, который нужно оставить, и условно назовите его объектом A. Тот, который нужно удалить, условно обозначим как объект В.
- На панели создания объектов выберите “Геометрию” (Geometry), а в выпавшем после этого списке — “Сложные объекты” (Compound Objects)
- Выберите команду Boolean.
- В открывшемся справа окне настроек выберите “Вычитание” (Subtraction). Если выбрать A-B, то из объекта А (т.е. выделенного) будет вычтен объект В. Можно сделать и наоборот.
- В том же окне нажмите кнопку 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 вершин (что значительно ниже).
Ошибка, возникшая при первом сбое:
Ошибка, возникшая при втором сбое:
Произошла ошибка при третьем сбое:
Ошибка, отображаемая в окне прослушивателя, говорит мне об ошибке, возникшей в 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 на профессиональном уровне? Мы вам поможем :)
Читайте также: