Blender 2.74. Оптимизация модели blender
Blender 3D – уменьшение полигонов модификатором «Decimate»
Бывают ситуации, когда необходимо уменьшить количество полигонов у высокополигональной модели с сохранением развертки и хорошей полигональной сеткой. Особенно это актуально в случаях 3D моделей отсканированных для 3D принтеров, в которых порой несколько миллионов полигонов и сетка достаточно кривая, не предназначенная для редактирования полигональным моделированием.
В этом уроке рассмотрим, как можно решить данную задачу в бесплатном 3D редакторе Blender стандартным плагином «Decimate» («Десятикратное уменьшение»).
Для работы понадобится стандартный 3D редактор Blender и модель, которой необходимо уменьшить количество полигонов.
1. Подготовка сцены
Помещаем модель в сцену. В данном случае это высокополигональная 3D модель головы Сюзанны, состоящей из 31 488 полигонов. На модели присутствует развертка и наложена текстура.
Теперь добавим модификатор «Decimate»: «Properties» => «Modifiers» => «Add Modifier» => «Generate» => «Decimate».
После этого откроются параметры модификатора, в которых будут три опции:
- «Collapse» (Разрушение) – это процентное уменьшение полигонов;
- «Un-Subdivide» (обратное подразделение) – это уменьшение полигонов через сокращение итераций сглаживания;
- «Planar» (Плоскостное) – это уменьшение полигонов через установление параметров углов.
2. Процентное уменьшение полигонов
Первая опция «Collapse» (Разрушение) позволяет уменьшить количество полигонов, задав их в процентах в шкале «Ratio» (Соотношение).
По умолчанию значение «Ratio» задано 1, то есть равно 100%. Следовательно, чтобы уменьшить количество полигонов на 90%, в шкале «Ratio» нужно выставить значение 0,1, если на 99%, то равное 0,01. Внизу напротив надписи «Face» автоматически будет указано количество полигонов в случае применения модификатора.
До определенного значения процентного соотношения развертка на модели будет сохраняться. Это во многом зависит от ровности полигональной сетки. В данном случае развертка сохранятся при сокращении полигонов в два раза, то есть на 50%. При уменьшении полигонов на 90% происходит уже искажение развертки.
Как видим, данный способ подойдет в тех случаях, когда необходимо уменьшить количество полигонов примерно наполовину. При значительном уменьшении полигонов достаточно плохо сохраняется развертка, а полученную полигональную сетку достаточно трудно редактировать.
Так же данным способом есть возможность уменьшить количество полигонов только на определенной части развертки. Для этого необходимо на выбранную часть равертки назначить группу вершин, а затем выбрать её в модификаторе «Decimate» в разделе «Collapse» через «Vertex group name».
Ниже можно установить галочку напротив надписи «Triangulate» (Триангулировать), то есть после применения модификатора полигональная сетка будет разбита на треугольники. А активация галочкой «Symmetry» (Симметрия) позволяет уменьшить полигоны симметрично по выбранной оси.
3. Уменьшение полигонов через обратное подразделение поверхности
В различных 3D редакторах есть модификатор «подразделения поверхности», который увеличивает количество полигонов и придает ей более сглаженную форму. Например, в Autodesk 3dsmax это модификатор «Turbo Smooth», а в Blender это модификатор «Subdivision Surface».
Так вот, функция «Un-Subdivide» (обратное подразделение) в модификаторе «Decimate» выполняет обратное действие, то есть уменьшает количество полигонов на заданное число итераций. В данном случае применено четыре итерации.
Как видим, текстура на модели «поплыла», но зато геометрия получилась достаточно ровная. Что позволяет данной модели сделать развертку, а затем «запечь» текстуры с первоначального варианта. Функция «Un-Subdivide» в модификаторе «Decimate», это своего рода быстрая ретопология с достаточно приличной геометрией в результате.
3. Уменьшение полигонов угловым пределом
Третья функция данного модификатора «Planar» позволяет уменьшить количество полигонов через «Angle Limit» (Угловой предел).
Внизу можно выбрать параметры, которые нужно сохранить при уменьшении числа полигонов. В крайнем правом углу можно выбрать «UVs», то есть уменьшить число полигонов с сохранением границ развертки. Галочкой можно активировать «All Boundaries», то есть все границы.
В данном способе ровность полигональной сетки необходимо регулировать параметром значения угла. Как видим, развертка в данном случае остается ровной.
Таким образом, если необходимо быстро уменьшить количество полигонов модели и при этом получить хорошую геометрию и развертку, то оптимальным решением будет использование функции «Un-Subdivide» (Антиподразделение). Так как полигоны в этом случае будут четырехугольными, что позволит произвести модели развертку. Затем останется только сделать запекание текстур.
На нашем ресурсе вы можете почитать другие уроки по бесплатному редактору Blender 3D:
Перепечатка и использования данного материала без прямой обратной ссылки категорически запрещена!
уроки Blender 3D3d-modeli.net
Оптимизация модели для 3D печати на примере ПО Blender / Блог компании 3Dtool / Хабр
Добрый день!Cегодня речь пойдет не о какой-либо модели 3D принтера, и не о процессе 3D печати. Мы хотели бы рассказать о том, как сделать процесс подготовки модели перед 3D печатью эффективнее. Все мы знаем, что большое рабочее поле это хорошо. Но что делать, когда мы начинаем пробовать создавать управляющие программы для громадной детали и программа уходит в вечное ожидание на этапе рассечения слоёв или экспорта кода в файл. Были случаи, когда программа готовилась более суток. Чтобы понять что происходит, нужно немного вникнуть в алгоритм процесса, который происходит внутри «Черного ящика» слайсера. Немного, потому что достаточно знать, что самое сложное и затратное дело, в процессе подготовки программы, это рассечение модели по слоям и формирование по этим сечениям траекторий.
Вся сложность в качестве. В качестве модели. В качестве печатной детали. В оптимальности качества. В желаемом качестве.
Иногда это очень растяжимое понятие… и так далее. Но у нас не минутка философии. Перейдем к конкретике. Примером из жизни.
В результате 3д-сканирования, неаккуратного, незаконного и неэкономного моделирования, различных преобразований и конвертирования, возникают случаи, когда сетка модели становится пропорционально плотной, с большим количеством лишних полигонов. Это значительно увеличивает «вес» stl-файла. Документ начинает занимать много памяти и увеличивает время формирования кода управляющей программы, приводит к зависанию слайсера и переходу его в низ списка процессов операционной системы. В таких случаях, модель необходимо оптимизировать, т. е. уменьшать плотность сетки без потери качества геометрии и качества деталей.
Амуниция
Программное обеспечение для подготовки управляющей программы – тяжелый, сложный, неудобный, но на наш взгляд жутко эффективный, Slic3r.Программное обеспечение для оптимизации – абсолютно бесплатный, с открытым кодом Blender, поддерживается почти всеми операционными системами (https:// www.blender.org/download/)
К делу
Установите и запустите Blender. Для импорта модели зайдите File –> Import –> stl, выберите необходимую модель.Для оптимизации модели воспользуемся модификатором Decimate. Этот модификатор позволяет уменьшить количество полигонов в сетке модели с минимальными изменениями геометрии.
Переключитесь в режим Object mode (1), в панели Editing (2) выберите вкладку Modifiers (3), добавьте Add Modifier –> Decimate (4)
Опции
Ratio. Коэффициент от 0,0 до 1,0. Соотношение детали до и после оптимизации. 0,0 (0%) — все грани удалены. 1,0 (100%) — все грани остались без изменения. По мере того, как коэффициент изменяется от 1 до 0, количество полигонов в сетке уменьшается.Качество
Для того, чтобы оценить уровень детализации, до которого модель будет упрощаться без потери качества (визуально печатная деталь соответствует математической 3D — модели). Если совсем вдаваться в подробности, то необходимо учитывать соотношение физического размера печатаемой модели, диаметра сопла и высоты слоя. Ниже, количественно, показано к чему приводят такие процедуры оптимизации.Как не надо делать
Теперь зайдем с другой стороны. Слишком низкий коэффициент уменьшает качество детализации: Ratio 0.05 – 0.03. Для модели небольшого размера (20-30 мм) подойдет Ratio 0.05-0.03, т. к. высота слоя и диаметр сопла физически не позволят напечатать необходимую детализацию, которая сохраняется при более высоких коэффициентах. А мы все помним, что диаметр сопла 0.3мм, а на выходе пластиковая нить еще чуть больше. А это значит что все острые грани будут иметь радиус минимум 0.15мм.Ratio: 0,015. Слишком низкий коэффициент
В общем вы поняли. Хотения и надежды. Искренне верим, что этот материал будет вам полезен, вы начнете/продолжите эффективно использовать возможности своего 3D принтера.
Эффективные 3D принтеры для бизнеса и производства Hercules (всегда в наличии в нашей компании 3Dtool) — 3dtool.ru/category/3d-printery/filter/topmanufactorer-is-imprintahercules
Видео обзор 3D принтера Hercules Strong 17 на нашем Youtube канале.
habr.com
Blender 2.74
Blender Foundation и сообщество разработчиков с гордостью представили новую версию Blender 2.74.
Видеообзор
Cycles получил массу оптимизаций и новый атрибут нода Geometry “Pointness”. Появилась возможность отображения Ambient Occlusion (AO) и Depth of Field (глубины резкости) непосредственно в окне 3D-вида. Добавлен новый режим для Outliner. Два новых модификатора для редактирования нормалей и передачи данных между мешами. Огромное количество улучшений и оптимизаций частиц волос. Улучшены инструменты редактирования карандаша, работы с анимацией и многое другое.
Содержание
Cycles
BVH
- Пересечения лучей/треугольников теперь “водонепроницаемые”. Ожидается, что это позволит уменьшить количество сообщений об ошибках, а также может снизить уровень шума в некоторых сценах.
- Реализована оптимизация структуры QBVH для CPU с поддержкой SSE2 и выше. GPU рендеринг (не SSE) и 32-битные процессоры по-прежнему используют BVH.
Оптимизации
- Оптимизация черного фона.
- Оптимизация нода Math без связи на одном из узлов.
- Уменьшена задержка между изменениями дерева нодов и рендерингом в окне 3D-вида.
- Откат к сортировке плиток “снизу вверх” при рендеринге из командной строки.
- Оптимизация использования памяти при создании атрибутов меша.
- Уменьшение используемого объема памяти при обновлении фонового освещения.
- Оптимизация использования памяти во время построения BVH, освобождая оперативную память, используемую промежуточными векторами BVH ранее.
Ноды
- Добавлен атрибут, указывающий насколько “угловатым” является объект. Называется “Pointiness” и является выходным значением нода Geometry.
- Добавлена поддержка текстурных координат из другого объекта.
- Нод Image texture теперь поддерживает “сферические” и “цилиндрические” методы проекции изображения.
- Кубический тип интерполяции теперь доступен на CPU (ранее был только OSL).
Прочее
- В качестве отсечения дальности видимости теперь используется плоскость, а не сфера.
- Добавлены опции поля обзора для панорамной равнопромежуточной камеры.
- Используется более короткий тайм-аут обновления для предварительного рендеринга, что дает быструю обратную связь от материала.
Совместимость
В старых версиях Blender была ошибка нода Mapping, из-за чего он давал совершенно иной результат, нежели Blender Internal и GLSL. Причиной была перевернутая сортировка Эйлера. Этот недочет устранен, но если вы будете открывать новые файлы в старых версиях Blender, то получите неверный результат.
Пользовательский интерфейс
Пост-обработка в окне 3D-вида
На данный момент существует два эффекта пост-обработки, которые можно применить непосредственно в окне 3D-вида. В будущем планируется увеличить их количество и, возможно, обобщить систему, но пока имеем лишь два параметра. Находятся они оба на панели свойств в меню Shading. Это “Ambient Occlusion” и “Depth Of Field”. Глубина резкости (Depth Of Field) работает только на виде из камеры.
Ограничения- Нынешняя система зависит от полученной информации из буфера глубины сцены. Таким образом, любой объект, который попадет в буфер глубины, будет влиять на итоговый результат.
- Эффект SSAO опирается на нормали поверхности при создании затенения, однако, поскольку существующая система не является системой отложенного шейдинга, то сглаженные участки (smooth) не будут учитываться. Также возможны артефакты на ребрах мешей.
- Multisampling не будет работать, потому как это требует слишком много памяти.
Ambient Occlusion
Опция создает эффект окружающего затенения (AO) в окне 3D-вида. Управлять данным эффектом можно с помощью следующих параметров:
StrengthДанный параметр регулирует силу данного эффекта.DistanceРегулирует расстояние, в пределах которого проявляется эффект.AttenuationРегулирует как сильно эффект ослабевает с расстоянием.SamplesВсеми любимые семплы. Чем выше, тем качественнее эффект и больше “тормозит”.ColorЦвет эффекта.
Depth Of Field
Опция имитирует глубину резкости в окне 3D-вида. Контролируется параметрами активной камеры:
Viewport F-stopЧем ниже данное значение, тем больше размытия.DistanceУстанавливает расстояние, на котором фокусируется линза объектива. Можно устанавливать с помощью пипетки (E), кликнув по любому месту в окне 3D-вида.FocusТоже самое, что опция выше, только использует центр выбранного объекта. При этом параметр Distance становится недоступным.Focal LengthЧем больше фокусное расстояние, тем больше размытия.SizeЧем больше размер сенсора, тем меньше размытия.
Прочее
- Можно использовать пипетку (E) для установки фокусного расстояния.
- 3D-курсор теперь скрыт в режиме Texture Paint за ненадобностью.
- Добавлена новая опция для настройки внешнего вида границ камеры.
Outliner
Orphaned Datablocks ModeДобавлен новый режим для структурирования «бесхозных» блоков данных. Это такие блоки, которые:
- Имеют 0 пользователей.
- Имеют лишь “поддельных” (fake user) пользователей.
При перезапуске программы данные, у которых нет пользователей безвозвратно удаляются. Таким образом, было бы неплохо просмотреть их все и, в случае необходимости, сохранить определенную их часть.
Также есть возможность удалять “поддельных” пользователей, в случае, если они больше не нужны или вы совершили ошибку.
Управление блоками данныхВсего доступно три колонки для управления данными:
- В первой колонке зеленой галочкой можно отметить те данные, которые должны быть сохранены, а крестиком те, которые – нет.
- Вторая колонка отображает количество пользователей.
- Третья колонка показывает, имеет ли блок данных “поддельных” пользователей.
Если у блока лишь один “поддельный” пользователь, то удалив его, вы автоматически укажите не сохранять данные.
Удаление всех неиспользуемых данныхБыла добавлена кнопка Purge All в заголовке окна Outliner при выборе режима Orphaned Datablocks. Она позволяет удалить все неиспользуемые блоки данных без перезапуска программы. Данное действие не может быть отменено.Предостережения:
- В конечном счете, до сих пор нет возможности полностью удалить любые блоки данных из текущего сеанса напрямую, без перезапуска программы. Таким образом, необходимо перезапустить файл, прежде чем продолжить его использование.
- Еще раз напоминаем, что эта опция необратима и Ctrl + Z (история) не поможет.
Прочее
- Теперь вы можете удалить всю иерархию объектов (родитель/потомок) (новая опция контекстного меню “Delete Hierarchy”)
- Сортировка по алфавиту теперь опциональна.
- “Show Active” теперь будет открывать дерево.
- Поддержка перетаскивания объектов для добавления их в группы.
- Возможность изменять статусы модификаторов и ограничителей из контекстного меню (видимый для окна 3D-вида, для рендера, удалить).
- Библиотеки, которые связанные как прямо, так и косвенно, показаны в окне Outliner дважды, чтобы отразить их статус.
Редактор нодов
- Добавлена поддержка отображения текстовых файлов во фреймах (frame).
Мелкие улучшения
- Окно поиска UIList теперь обновляется сразу же, как и другие окна поиска в Blender.
- Файловый браузер (окно FileBrowser) теперь имеет окно поиска.
- Появилась возможность редактировать закладки в окне FileBrowser (менять название и порядок).
- Доступны “Safe areas” (безопасные зоны) для камеры. Вы можете регулировать их по высоте и ширине, а также сохранять собственные настройки.
- Нажатие правой кнопки мыши теперь открывает контекстное меню, если ничего другого не назначено.
- Возвращаясь из временного полноэкранного режима, пользователь попадет в другой полноэкранный режим, если тот до этого использовался, вместо попадания в не полноэкранный режим.
- Улучшен пользовательский интерфейс нодов окружения.
- Оператор Inset Faces теперь доступен на панели инструментов.
- Поддержка Alt + колесико мыши для циклического перемещения по списку.
- Добавлены две новые темы: Flatty Light (на этот раз уже точно!) и RTheme.
Моделирование
Пользовательские нормали
Объекты теперь поддерживают пользовательские нормали, тоесть отличающиеся от заданных автоматически. Для работы с ними был добавлен новый модификатор Normal Edit. Больше информации о нем вы найдете на его странице.Примеры использования пользовательских нормалей на CAD-объектах:Еще пример использования пользовательских нормалей для создания эффекта затенения. Часто используется в играх, так как не требует больших вычислительных ресурсов:
Можете скачать тестовую сцену с данными деревьями (автор Ronan Ducluzeau).Обработка данных
Передача данных меша
Добавлены новые оператор и модификатор, позволяющие передавать данные одного меша другому. Подробную информацию о нем вы найдете на специальной странице.Примечание:
- Передача весов ранее доступная в режиме Weight Paint теперь удалена и работает через новый модификатор.
Тестовая сцена с торусами (автор Ronan Ducluzeau).
Модификаторы
- Модификатор Hook теперь имеет несколько вариантов спада, а также возможность настроить собственную кривую спада. Также появилась опция Uniform Falloff, компенсирующая неравномерное масштабирование для лучшей поддержки крючков и решеток.
Инструменты
- Edge Slide теперь поддерживает UV-острова.
- Vertex Slide теперь поддерживает UV-коррекцию.
- Добавлен новый спад для пропорционального редактирования Inverse-square.
- Fit camera view теперь работает с ортографическими камерами.
- Добавлена новая опция Split Concave Faces (Mesh – Cleanup).
- Добавлена опция Connect Vertex Path, позволяющая соединять вершины в порядке их выделения
- Vertex Connect (J) может соединять несколько вершин одновременно.
- Vertex Connect (J) может присоединять вершины к ребрам.
- Select similar faces в режиме редактирования имеет новую опцию, выделять грани с Flat/Smooth шейдингом.
Частицы
Волосы
Динамика волос
- Исправлена давняя проблема различной длины сегментов волос после обрезки.
- Поддержка столкновений волос с другими объектами (collision).
Обратите внимание на то, что при расчете столкновения волосы ведут себя как меш, и расчеты производятся для всех них целиком, вместо того, чтобы просчитывать взаимодействие между каждой частицей. Сделано это в первую очередь из-за того, что это потребовало бы огромных вычислительных ресурсов. Также для большинства повседневных сценариев и небольших студий результат будет более чем приемлемый.
- Некоторые феномены реального мира волос могут быть симулированы более эффективно с использованием объемной модели, вместо расчета геометрии отдельной частицы. Можно построить сетку, на подобие той, которая используется при симуляции жидкости, и контролировать взаимодействие между ее ячейками. В настоящее время система волос поддерживает две функции основанные на объеме:
- Внутреннее трение: Имитация столкновения волос и трения, путем уменьшения скорости движения близлежащих волос.
- Целевая плотность: Генерация наружной силы для предотвращения разрушения волос.
- Улучшение жесткости изгиба: Используемая ранее система жесткости тканей плохо подходила для прядей волос. Было невозможно создать достаточно жесткие волосы. Благодаря новой системе это стало возможным:
Старая | Новая |
Кроме того, новая система позволяет волосам сохранять форму после деформации, вместо т
blender3d.com.ua