Сообщений
0, на страницах:
1добавить сообщениеСоздание деревьев произвольной формы в Blender
Введение:
Эта статья описывает процесс создания деревьев заданной формы в программе 3D моделирования Blender с помощью скрипта Gen3. Автор скрипта – Сергей Прохорчук (stager13). Статья рассчитана на пользователей со знанием основ программы Blender. Так как я не знаком с другими скриптами, то не уверен, что с ними этот метод также можно применять, но думаю, что такое возможно. (в конце концов модель дерева – есть модель дерева...). Также я не уверен, что нет другого, более изящного решения такой задачи (ну может быть с новым Peach Tree Generator?), но это способ, который был придуман мною.
Однако, если вы - настоящий гуру Блендера, или для вас в тут «многа букофф», то для вас я составил «краткий алгоритм», вкратце описывающий основные последовательные шаги.
Краткий алгоритм:
| Tree Mesh (Mat 1) > Suzanne Mesh (Mat 2) > Boolean (Divide) > Delete Mat 2 |
Если вы полностью не поняли эту схему, не стесняйтесь прочитать дальше руководство, там будет больше деталей. ;)
Создание дерева:
Я не буду пояснять принципов создания деревьев скриптом Gen3. Если вы не знакомы с ним, то я очень рекомендую ознакомиться с уроком по работе с Gen3 на сайте BlenderNewbies.com (автор - Kernon Dillon), где описывается практически всё, что вам необходимо знать о создании деревьев с помощью скрипта.
При создании дерева, которому вы собираетесь задавать форму, важно знать, что чем более густую крону вы сделаете вашему растению (я имею в виду ветки, прутики, листья), тем лучше будет результат. Чем сложнее ваша будущая форма дерева, тем это более существенно. Я использовал для этой статьи в качестве шаблона форму Сюзанны – меш Monkey из базового набора форм Blender. Я полагаю его достаточно сложным и требующим очень плотной и детальной кроны дерева.
К сожалению, это ещё и означает, что вам потребуется довольно мощный компьютер для просчёта сложных форм, так как некоторые процессы могут занимать ощутимое количество времени. Но если ваш компьютер не очень мощный – используйте для шаблона простые формы (напр. сферу), а крону
дерева генерируйте не слишком плотную. И между прочим, если вы хотите сделать дерево с кубической кроной, то есть способ ещё более простой, он описан там же в уроке от Kernon Dillon, а я делал по этому способу пирамидальное дерево.
Вернемся к нашему дереву. На
Рис.1 показаны настройки скрипта, которые я использовал для генерации дерева.
Сгенерированное с такими настройками дерево показано на
Рис. 2. Я постарался сделать дерево с округлой кроной, которая позволила бы поместить в нее Сюзанну. У нас, как видно, получилась модель с веселым числом фейсов более чем 500000.
Немного обработаем наше дерево перед следующим шагом. В одной части экрана откроем панель
Outliner и переименуем условные названия деталей дерева в осмысленные: например «Stvol», «Vetki», «Prutya», «Listva» или подобным образом. (см.
Рис.3).
Следующее, что необходимо сделать – в Object Mode поочередно выбрать каждый элемент дерева, смягчить его (
Set Smooth), и, перейдя в режим
Edit Mode(Tab) выбрать все вершины и удалить дубликаты (
W > Remove doubles). Теперь дерево выглядит лучше и в нём осталось «всего» около 400000 фейсов. Ну и напоследок не забудьте назначить каждой из частей дерева материал (неважно какого типа) я, например назначил всем частям один и тот же белый материал.
Меш шаблона
В режиме объекта добавляем форму, необходимую нам для шаблона, из готовых форм или моделируем ее. Я взял стандартный меш Monkey.
Мешу шаблона также назначаем материал, причем здесь лучше назначить какой нибудь другой цвет, чтобы меш шаблона хорошо контрастировал с прочими материалами дерева. Я выбрал веселый темно-розовый цвет. (если вы тоже выбираете весёленький розовый цвет, то не забудьте дереву назначить веселенький бирюзовый ;) -
наверное шутка (прим. перев.)) См.
Рис.4.
Также опытным путем я пришел к выводу, что следует сделать потолще тонкие выступающие части Сюзанны (уши и рот), иначе могут случаться ошибки. Просто выберем и сместим несколько вершин, чтобы уши и рот стали толще. (
Рис.5)
Теперь выбираем Сюзанну и помещаем её в крону дерева.(лучше делать это переключившись на каркасный вид, чтобы что-то увидеть). Модель Сюзанны масштабируем и перемещаем так, чтобы она сидела в середине кроны по центру, не приближаясь к краям кроны. Добиваемся этого с фронтального и бокового вида одновременно. (
Рис 6; 7)
Займемся обрезкой лишних элементов дерева. Чтобы сделать это, выбираем элементы, например листву, и переходя в
Edit Mode способом выбора рамкой (Box select –
B) приблизительно выбираем вершины вокруг шаблона Сюзанны и удаляем их. (
Рис.8, Рис.9).
Слишком близко к Сюзанне резать не стоит, чтобы не оттяпать лишнего. Опять же повторяем эти процедуры для фронтального и бокового видов.
В результате мы получим дерево с кубической формой кроны. (
Рис.10) Это техника «подстрижки» деревьев из урока от, Kernon Dillon, на который я ссылался ранее. Если у вас супермощный компьютер, то вы можете такой подрезки и не делать, если нет – то повторить подрезку также для веток, прутиков и т. д.
Придаём дереву форму
Итак, подготовка закончена – начнем придавать форму нашему дереву. Прячем все элементы сцены в скрытый слой, оставляя только Сюзанну и листву. Выберем оба меша в режиме Объекта и применяем булеву операцию пересечения (
W > Boolean > Intersect).
У нас генерируется новый меш, границей которого будут границы пересечения двух выбранных. Этот процесс занимает много времени и зависит от мощности компьютера (На моём рабочем Мас РРС 1.5GHz, 1Gb RAM на это ушло около получаса). Можете пойти попить кофейку.
Полученный меш листвы в форме Сюзанны будет иметь название либо «Suzanne 001», либо «Listva 001», в зависимости от того, какой элемент вы выбрали последним (лично я сначала выбирал Сюзанну, а потом листву – всё-таки получаемый меш – часть дерева), а так вообще порядок выбора не имеет значения. Снова скрываем все остальные меши, чтобы оставить только созданный. Он выглядит, как голова Сюзанны с дырками в ней и листвой внутри (
Рис.11)
Так как нам не нужна розовая оболочка для нашего дерева, удалим ее. Для этого мы и назначали 2 разных материала ранее. Выбираем новый меш-объект, переходим в
Edit Mode и в панели редактирования (
F9) смотрим на закладку
Link and Materials. (
Рис.12)
Тут мы выбираем наш веселенький розовый материальчик (он у нас читается как «2 Mat 2»). Теперь нажимаем кнопку
Select(Выбрать), расположенную ниже и у нас выбираются все вершины с назначенным розовым материалом (
Рис.13), принадлежащие оболочке.
Смело удаляем их (
Х или
Del > Erase Vertices). Теперь у нас остались только листья, которые находились внутри Сюзанны.(
Рис.14)
Перед тем, как проделать те же операции с прутьями и ветками, необходимо доработать получившийся меш. Дело в том, что после комплексного удаления вершин меша, у нас обязательно остались вершины, не соединённые фейсами. Их необходимо удалить. Для этого оставаясь в режиме
Edit Mode переключаемся в режим выбора фейсов (
Face Select Mode –
Ctrl tab 3). Теперь рамкой (
В) обводим весь меш целиком (НЕ нажимайте Select All (A)!), для выбора всех полноценных фейсов. Переключаемся в режим выбора вершин (
Vertex Select Mode –
Ctrl Tab 1) и увидим выбранными все вершины принадлежащие фейсам. Теперь в меню
Select > Inverse – инвертируем выбор. Мы видим теперь выбранными все ненужные вершины. Удаляем их.
Мы закончили с приданием листьям формы Сюзанны, называем наш меш, например «Suzanne Listva»и прячем в скрытый слой. Теперь делаем видимыми исходные меши прутьев и Сюзанны и повторяем всё то, что только что проделали с листьями: Выбирае прутья и Сюзанну, делаем булеву операцию пересечения (
W), которая теперь должна вычисляться побыстрее, удаляем ненужные вершины (
Рис.15).
Затем проделываем всё то же для веток. (
Рис.16)
Теперь все элементы дерева имеют нужную форму. Присвоим им окончательные материалы листьев, веток и прутьев, какие вам угодно и отрендерим, чтобы посмотреть на результат. (
Рис.17)
Улучшение результата
Как мы видим результат есть, но он не совсем хорош. Даже после того, как мы поработали с ушами и мордочкой Сюзанны, утолстив их, всё же в этих частях маловато заполнение кроной дерева. Это означает, что нужно было генерировать более массивное дерево (я не имею в виду его величину, а подразумеваю большее количество веток, листьев и т. д., ну то есть более густую крону.) Как вариант, чтобы не переделывать заново – в режиме редактирования дублировать элементы и заполнить ими разреженные участки. Потом удалить лишнее и результат должен быть неплох. Я, как раз пошёл таким путём и, по-моему, всё выглядит значительно лучше (
Рис.18).
Я, кстати, использовал то же самое дерево для «обложки» этой статьи. И как вы можете видеть на таком расстоянии от камеры довольно тяжело рассмотреть какие-либо неточности. Также и вы продумывайте, как стоит детализировать деревья, в зависимости от их положения на финальном изображении. В некоторых случаях не стоит вообще возиться с улучшением.
Это всё, что я хотел сказать. Надеюсь вам понравилась моя статья. Если у вас есть вопросы или рекомендации по поводу данной статьи, не стесняйтесь – обсудим на blenderartists.org. Также дайте мне знать, если знаете другой более лёгкий способ. И не забудьте показать мне ваш результат.
Выражаю благодарность Сергею Прохорчуку за его великолепный скрипт и Кернону Диллону ( Kernon Dillon) за чудесный урок о нём.
Удачного Блендинга.
Автор: MasterDomino
Перевод: cyberdime
Дополнительные материалы:
Оригинал урока (анлг): скачать здесь
Урок в pdf версии (рус): скачать здесь (500 Kb)
Скрипт Gen-3: скачать здесь
Сообщений
0, на страницах:
1добавить сообщение