Моделирование деревьев с помощью скрипта L-system: Tree maker


Автор: Сергей Хрипунов aka vintro
Email: vintro@blender3d.ru

Введение

С помощью скрипта L-system: Tree maker от Armagan вы сможете генерировать различные виды деревьев, корректируя всего лишь несколько параметров.

Дерево создано в L-system: Tree  maker
Дерево создано в L-system: Tree maker

Установка

L-system в интернете:

Кроме Blender'а ( естественно ;) ) на машине должен быть установлен Python версии не ниже 2. Официальный сайт языка высокого уровня Python - http://www.python.org/. Дистрибутив и документация распространяется совершенно бесплатно.

Для запуска L-system подведите указатель мыши в окно редактирования скрипта и нажмите сочетание клавиш [ Alt ]+[ P ].

Довольно большое количество скриптов и плагинов используют библиотеки Python, не входящие в дистрибутив Blender'а. Рекомендую установить дистрибутив Python от ActiveStatehttp://www.activestate.com/.
Вообще Python — один из самых легко читаемых объектно-ориентированных языков высокого уровня. Если в дальнейшем вы планируете создавать собственные скрипты для Blender'а, изучение этого удивительного языка станет не лишним.
Скриншот L-system: Tree  maker
Скриншот L-system: Tree maker

Параметры раздела "Branch" (ветви):

Branch pattern: используйте выпадающее меню для выбора шаблона ветвей. Этот шаблон рекурсивно повторяется для каждого ответвления. Имеется два основных шаблона: "split N" и "arm N". Основные различия в том, что при "split N" скрипт выводя основные ветви в дальнейшем сводит их на нет, а при "arm N" основные ветви продолжают расти с вместе с ветвями более низкого уровня.

resolutionV: определяет число сегментов в меше ветви. Следует учесть, что от этого параметра косвенно зависят параметры "Shorten", "ThinDwn", "Twist" и "Force".

repeat: параметр определяет число повторений выбранного шаблона.

spin/curve: определяет параметр вращения ветвей

subSlope: наклон текущих ветвей относительно родительских.

subOrient: ориентация ветвей. Зависит от выбранного шаблона.

subLen: длина под-ветвей относительно текущего сегмента.

subThickness: толщина под-ветвей относительно текущего сегмента.

Параметры раздела "Stem" (стержневой ствол):

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

Параметры раздела "Leaf" (лист):

На последних двух секциях ветвей расположены листья. Их расположение и вид контролируются следующими параметрами:

Leaf pattern: выпадающее меню содержит шаблоны расположения листьев.

resolutionV: параметр пока ни на что не влияет.

repeat: число листьев на один сегмент ветви.

lengthMul: (Length mutiplier) длина листа относительно значения по умолчанию.

extraSpin, extraCurve: дополнительное вращение для ветвей с листьями.

leafSlope: наклон листа относительно ветви.

subOrient: ориентация листа. Эффект зависит от выбранного шаблона.

leafObj: задает тип листа — от "a" до "o". Набор листов по умолчанию расположен в слое 3.

Параметры раздела "Force" (силовое вмешательство в алгоритм генерации) :

useThickness: используйте этот параметр, если иначе у вас не получается повлиять на толщину ветвей.

Bearing, elevation, magnitude: параметры контролируют направление ветвей. Зависят от параметра "resolutionV".

Параметры раздела "Prune" (сокращение):

PruneFirst: сократить под-ветви, созданные на первых N итерациях.

Prune: вероятность случайного сокращения ветвей.

Параметры раздела "General" (основные):

Scale: масштаб всего дерева (исключая листья).

Radius: толщина ствола и ветвей.

Shorten: параметр определяет насколько каждый последующий сегмент ветви короче предыдущего. Зависит от параметра "resolutionV".

ThinDwn: (Thin Down) насколько толщина каждого последующего сегмента меньше предыдущего. Зависит от параметра "resolutionV".

reDir: (reDirect) случайное изменение направления ветвей.

twist: скручивание случайным образом каждой ветви. Зависит от параметра "resolutionV".

resolutionU: число вершин колец ветвей.

LOD: (Level Of Detail) уменьшает "resolutionU" пропорционально уменьшению толщины.

iterations: число итераций (повторений) при генерации дерева.

Ну вот кажется и все!
При подготовке описания была использована документация официального сайта L-system.
Удачного блендинга!