SpeedTree CAD

Часть вторая

Продолжая обзор программы моделирования трехмерных деревьев при помощи пакета программ SpeedTree, рассмотрим вторую его часть - SpeedTree CAD - собственно, сам редактор для разработки деревьев. Вообще говоря, это не совсем редактор. Скорее, мы имеем дело с генератором. Вам предлагается структурированная группа параметров, после задания числовых значений которых программа производит расчет - генерирует дерево. Никаких полигонов или патчей, никакой ручной работы, если не считать за таковую ввод чисел с клавиатуры. При этом спектр создаваемых объектов довольно широк - это могут быть деревья, кустарники, трава, цветы или кактусы.

Итак, программа предлагает четыре основных группы параметров (и, соответственно, четыре закладки в рабочем интерфейсе программы): "Trunk" - "Ствол", "Branches" - "Ветви", "Leaves" - "Листья" (а также плоды или цветы) и "Global" - "Глобальные параметры".

Для ствола мы можем задавать:

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

Везде, где речь идет об изменении параметра вдоль длины ствола (толщины, гибкости, искривления и гравитации), подразумевается редактирование специальной кривой, определяющей динамику изменения параметра. Сам редактор кривой довольно прост, но его возможностей в большинстве случаев достаточно. Например, он легко позволяет создать профиль ствола бутылочного дерева, но со стволом пальмы придется повозиться. Вкратце его возможности - вставить или удалить точку, переместить точку. Все точки имеют "уши", таская за которые, можно менять кривизну в данной точке, по аналогии с кривыми Безье из Corel Draw или Adobe Illustrator. Серьезное ограничение - отсутствие угловых точек, поэтому невозможно создать резкий излом кривой - только плавный.

Возвращаясь к параметрам ствола: здесь же можно задавать общее количество его сегментов (до 100 максимум) и сегментов сечения ствола. Последнее может иметь только форму окружности. Чем больше количество сегментов у ствола, тем более явно видны результаты действия большинства параметров, точнее и разнообразнее моделинг. Если же ствол состоит только из одного сегмента, его даже искривить не удастся, т.е. при любом значении параметра искривления ствол все равно останется прямым. С другой стороны, увеличение количества сегментов приводит к "утяжелению" модели, особенно при разработке ветвей и особенно ветвей второго и более высоких порядков. Именно здесь нужно учитывать, для какого плана сцены создается модель.

Из оставшихся параметров закладки - текстура и тип ее наложения. К сожалению, наверное, самое слабое место программы. Для ствола и всех ветвей разрешено использовать только одну текстуру. Приемлемо для тополя или липы, но плохо для сосны. Кроме того, никаких изысков вроде bump map (карта рельефа) для коры. Плоское растровое изображение - и ничего больше. Имеющаяся возможность положить эту карту одним куском или уложить несколько раз мозаикой сути не меняет.

Из остальных параметров ствола нужно упомянуть задание генерации ветвей первого порядка - т.е. ветвей, растущих непосредственно от ствола. Ветви второго порядка - отростки от ветвей первого порядка и т.д. В принципе, программа не ограничивает количество таких порядков, но это самый верный способ быстро сделать модель дерева неподъемной. Всего представлено три параметра - нижняя и верхняя граница области роста ветвей и частота расположения ветвей внутри заданной области.

Параметры создания ветвей находятся на следующей закладке и во многом сходны с параметрами ствола. Но имеются некоторые отличия. Во-первых, все параметры носят групповой, а не индивидуальный характер. Это значит, что, задавая числовые значения для параметров, вы определяете их сразу для всех ветвей одного порядка. Во-вторых, все параметры разбиты на две подгруппы - параметры самих ветвей (искривление, радиус, гибкость, воздействие гравитации) и изменение вдоль длины ствола радиуса ветвей, их длины, угла роста относительно ствола, гибкости и восприимчивости к гравитации. Например, заданием изменения длины ветвей можно сделать ветви, растущие в нижней части ствола, длиннее, чем ветви, растущие у его верхушки. В этой же панели можно изменять, добавлять или убирать число уровней древовидной структуры и определять частоту и место генерации либо ветвей следующего уровня, либо листьев.

Для создания лиственной кроны применяется хорошо известный всем механизм. А именно - в качестве геометрии листа используется прямоугольник, на который накладывается фотография листа или группы листьев с контурным альфа-каналом в качестве карты прозрачности.

Полигоны для нанесения текстур листьев

SpeedTreee CAD позволяет использовать несколько карт для листьев и даже предусматривает специальную возможность создания плодов и цветов с помощью того же механизма наложения карт. Использование нескольких карт позволяет разнообразить лиственную крону по форме и цвету. Программа предоставляет средства управления размером листа или цветка, расстоянием его расположения от ветви, и при необходимости - расчетом столкновения (collision detection) со стволом или ветвями.

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

Закладка глобальных параметров предназначена для определения высоты ствола, значения многих параметров программы задаются в процентах от этой величины. Здесь же включаются (или отключаются) случайные изменения модели дерева при расчетах. На начальных этапах разработки для удобства его рекомендуется отключать, а после завершения разработки модели можно использовать для быстрого получения случайных вариаций созданного дерева (величина изменений модели зависит от заданных значений вариаций ее параметров). Кроме того, здесь представлена статистика модели - общее количество полигонов дерева и количество полигонов ветвей и листьев, нигде более не показываемая, в том числе и в сцене 3d studio max.

Несколько слов об интерфейсе. Он прост и достаточно удобен. Все функции программы находятся на виду, а то, что скрыто, доступно по правой кнопке мыши. В основном окне программы по умолчанию отображается разрабатываемая модель дерева в OpenGL - режиме с полной детализацией и всеми текстурными картами.

Модель дерева в окне предварительного просмотра SpeedTree CAD

Как уже говорилось ранее, модель дерева в этом окне часто выглядит даже лучше, чем после финального рендера в max. Вид можно масштабировать, включить вращение дерева, источника света или посмотреть взаимодействие с ветром. Предусмотрены даже специальные "игровые" режимы скроллинга сцены. Все крутится достаточно шустро, без "тормозов", при условии, что не включено сглаживание (antialiasing) сцены. Отображение анимации в окне предварительного просмотра заслуживает особой похвалы - все изменения в настройках анимации отображаются немедленно, что называется, "на лету": движется ствол, каждый листок и ветка, при этом поддерживается отображение текстур и изменение освещения.

Теперь о недостатках - их немного. Пожалуй, стоит немного доработать алгоритм генерации ветвей, слишком уж он прямолинеен. В частности, отсутствует возможность задавать угловое распределение ветвей по окружности ствола и листьев - по окружности ветвей. Равномерное распределение по углам, имеющее место в текущей версии редактора, затрудняет разработку таких типов деревьев, как, например, ели. Ну и текстуры - для ствола и ветвей их стоит разделить, плюс возможность накладывать карты рельефа текстуры.

Данный обзор сделан по демонстрационной версии пакета. Поставляемое вместе с ней описание возможностей программы вполне можно назвать "спартанским": всего лишь обзор основных параметров да пара простеньких примеров. А зря. Только заглянув на сайт разработчика, я, например, узнал, что SpeedTree вполне по силам создавать такие неочевидные вещи, как разветвление ствола или, например, траву. А в руководстве пользователя об этом ни намека. Возможно, в коммерческой версии дела обстоят по-другому. Хотя, судя по тому, что демо-версию можно превратить в полноценную введением кода авторизации - вряд ли. Так что руководство пользователя тоже не мешает дополнить.

Вообще, на мой взгляд, программа имеет очень неплохой потенциал стать редактором не только для деревьев среднего и дальнего планов, но и для разработки реалистичных высокодетализированных моделей. Почти все необходимое для этого у нее уже есть, добавить нужно не так уж и много. Прежде всего - работа с корневой системой. Сделать корни у ствола в текущей версии программы невозможно. Вернее, одно из двух - либо корни, либо ветви. Очень не помешает добавление стыков ветвей вообще и ветвей со стволом, в особенности. Полное отсутствие стыков в данной версии редактора приводит к тому, что на отрендеренном изображении ближнего плана отчетливо видно, что ветви элементарно торчат из ствола, а не растут из него. Далее - неплохо бы добавить всякие наросты на стволе, дупла, сухие и обломанные сучья - все те мелочи, которые и придают дереву законченный "жизнеподобный вид". Вообще не помешало бы предусмотреть возможность хотя бы минимальной "ручной" работы в редакторе. Ну и, наконец, текстуры. Необходимо дополнить встроенные возможности SpeedTree CAD, а еще лучше - предусмотреть передачу работы с текстурами в 3d studio max.

Подводя итог всему сказанному, можно утверждать, что все, что нужно для создания хорошего дерева с помощью SpeedTree CAD, - это подробное изображение оригинала создаваемого дерева, текстуры для ствола и листьев и пара часов свободного времени. Считает программа довольно быстро, сам процесс немного напоминает игру и неутомителен, хотя понимание влияния отдельных параметров и потребует некоторого времени на изучение. В общем, SpeedTree CAD - вполне "рабочая" программа, быстрая, простая и удобная, к тому же не имеющая аналогов для работы с 3d studio max.

Игорь СИВАКОВ,
igsiv@tut.by

Версия для печатиВерсия для печати

Номер: 

05 за 2003 год

Рубрика: 

Графика
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!