Speed Tree.
Технология Speed Tree интегрирована в UE3, поэтому я решил разместить обзоры с 3DTotal на этом сайте. В конце статьи я выложил ссылку на архивы, это сборка всего того чем пользуюсь сам, кейген к плагинам прилагается. Также очень рекомендую посетить сайт разработчика, чтобы поближе ознакомиться с этой уникальной технологией. Скриншоты из игр с использованием SpeedTree смотрите в нашей Галереи.
- Обзор сделан по демонстрационной версии SpeedTree.
- Разработчик – IDV
- Поставщик – Digimation
- Материал подготовил: Игорь Сиваков
- Дата: 22.07.2002
- Дополнительную информацию, примеры анимаций и изображений сцен можно найти на сайте разработчика. Стоимость коммерческой версии пакета SpeedTree составляет $395.
Введение
Все что нужно для создания хорошего дерева и сцены с помощью SpeedTree – это оригинал создаваемого дерева (или его reference-изображение), текстуры для ствола и листьев и пара часов свободного времени. В общем, SpeedTree – вполне "рабочая" программа, быстрая, простая и удобная, к тому же не имеющая аналогов для работы с 3d studio max.
Разработка полноценного реалистичного ландшафта земного типа – задача с одной стороны сложная, с другой – узкоспециализированная. В силу такой специфики ни одна из программ трехмерного моделирования общего назначения, вроде Maya, Softimage, 3d studio max или LightWave не имеют в своем арсенале полноценных инструментов для ее решения, моделирование реалистичных ландшафтов в этих программах, хотя и возможно, является длительным и сложным процессом.
С другой стороны, существуют, и довольно давно, программные пакеты, основной целью которых является создание только ландшафтов. Одни из них более обладают более широкими возможностям, например Animatec WorldBuilder, и позволяют создавать рельеф и все необходимые составляющие - растительность, водоемы, атмосферу и эффекты, небо и прочее. Другие, такие как Terragen Generator, обладают меньшими возможностями, но зато работают с отменным артистизмом.
К сожалению, основной недостаток таких программ в их узкой специализации, за пределами которой остается все то ценное, что есть в программах общего назначения – продвинутый рендеринг, анимация и пр. Идеальным решением стало бы объединение сильных сторон обоих подходов. И такое решение существует давно – это пара программ: специализированное для решения какой-либо задачи приложение, плюс встраиваемый модуль, посредством которого происходит его общение с программой общего назначения.
К сожалению, далеко не все разработчики следуют по этому пути. И в области разработки ландшафтов ситуация особенно грустна. Ни Worlbuilder, ни Vue d’Esprit или MojoWorld не совместимы ни с каким другим приложением (не считая, конечно, функций импорта-экспорта).
Предметом данного обзора является программа, в полной мере реализующая "правильный" подход. Знакомьтесь, SpeedTree – двухкомпонентный программный инструмент для наполнения трехмерных ландшафтных сцен растительностью – деревьями и кустарником – в среде 3d studio max 4. Другими словами, SpeedTree состоит из двух частей: программы для моделирования деревьев SpeedTree CAD, работающей независимо, и плагина 3d studio max – SpeedTreeMax, ответственного за размещение и анимацию в сцене как отдельных деревьев, так и их групп.
Отличительной особенностью программы является довольно приличная реалистичность создаваемых деревьев – с одной стороны, и небольшое количество используемых в модели полигонов – с другой (от 2 до 70 тысяч полигонов в одной модели).
Поэтому, SpeedTree великолепно работает как приложение для создания "массовки" среднего и дальнего планов трехмерной сцены.
SpeedTreeMax
Основное назначение плагина SpeedTreeMax - создание композиции сцены, т. е. размещения объектов - деревьев или их групп, ее анимации и рендеринга. С его помощью нельзя редактировать само дерево, хотя и можно, работая над сценой в 3d studio max, вызвать для этого SpedTree CAD в интерактивном режиме.
Базовая процедура построения композиции выглядит следующим образом. В командной панели max’а Create выбираем Geometry, затем закладку IDV Software и на ней – кнопку SpeedTree.
Щелкаем в нужном месте сцены на предварительно созданной поверхности (объект типа EditableMesh) и получаем абстрактное дерево (generic tree). Сохраняя его выделенным, переходим в командную панель Modify и щелкаем на кнопке "Import ".spt" file" – в раскрывшемся окне выбираем файл с индивидуальными характеристиками дерева. В принципе, все.
Все средства управления SpeedTreeMAX распределены по трем панелям:
Create > Geometry >IDV Software
На закладке Modify находятся основные средства работы с композицией
Вкладка для работы с тенями у стандартных источников света.
Появился новый тип тени SpeedShadow и закладка с его параметрами.
Кстати говоря, этот набор можно расширить – для чего необходимо проделать следующий трюк. Загружаем сцену, идущую в поставке с демо-версией, но содержащую дерево, отсутствующее в библиотеке. Выделяем дерево и с помощью кнопки интерактивного редактирования вызываем SpeedTree CAD. В открывшемся окне редактора – наше дерево со всеми параметрами, но без текстур.
Таким образом можно изучить методы создания таких объектов, как трава или ель. Интересно, что 3d studio max воспринимает spt-файл с параметрами дерева как текстурную карту, хотя по сути это скорее файл конкретных параметров для абстрактного процедурного объекта- дерева.
Попытка выполнить экспорт в полигональный объект (в том числе, сохранить сцену в формате .3ds) не работает – дерево не экспортируется в принципе. Так что возможность что-либо вручную подправить или добавить напрочь отсутствует. По крайней мере, в текущей версии. На сайте IDV имеется информация о скором выходе новой версии SpeedTree CAD, имеющей возможность экспорта объектов в различные 3d форматы.
Для доводки композиции представлены следующие средства: перемещение дерева по сцене, масштабирование, назначение у стандартных источников света теней типа SpeedShadow. Последняя возможность, как заявляют разработчики, должна серьезно улучшить вид дерева при рендеринге, поскольку корректно просчитывает тени, но работает только со встроенным рендером max.
Те же тени можно получить при использовании метода трассировки лучей, но время рендеринга при этом значительно увеличится. В последнем случае, потребуется делать по две копии дерева – одна освещается, но не отбрасывает тень, вторая не освещается, но отбрасывает тень (операции включения/исключения выполняются в параметрах источника света кнопкой Exclude/Include). На закладке billboarding параметров дерева для одной из копий дерева нужно отключить автонацеливание листьев на камеру и указать нацеливание на источник света. Время рендера методом трассировки лучей увеличивается в разы по отношению к методу с использованием SpeedShadow.
Такой тяжеловесный способ приходится использовать из-за особенностей работы программы – для того чтобы листья корректно рендерились, необходимо, чтобы плоскость полигонов, на которых лежат листья, была параллельна плоскости камеры (источника света - для теней) или перспективному виду.
Рендер дерева без теней. В сцене один источник света.
Стандартные тени – shadow map. Изображение получается слишком темным, потеряно множество деталей.
Время рендера около 2,5 минут на Pentium-3 600 МГгц, 640 Мб оперативной памяти.
Вместо стандартных теней используются тени плагина SpeedTreeMAX – SpeedShadows.
Время рендера около 2,5 минут.
В сцене одно дерево с листьями, выровненными по плоскости камеры. Рендер выполнен с использованием трассировки лучей, время- около 19 минут. Как хорошо видно на изображении, тень от листьев на земле почти отсутствует. Для правильного их отображения потребуется еще одно дерево с листьями, выровненными по плоскости источника света.
Группы создаются на основе одного предварительно созданного в сцене дерева и сплайнов – замкнутых, описывающих границу области заполнеия деревьями, или разомкнутых, тогда деревья размещаются вдоль линии. С помощью кнопки "Terrain" можно учесть рельеф выбранной поверхности. Плотность размещения деревьев внутри заданной области регулируется параметрами "Density" (Плотность) и "Collide", запрещающей размещение более одного дерева внутри области заданного радиуса. Можно задавать вариацию вида деревьев внутри группы. Для этого предназначены параметры "seed" и "randomize" на закладке "Rollout" , определяющие случайные вариации дерева.
Задавая различные их значения и нажимая кнопку "compute" - "вычислить", можно быстро получать все новые и новые модификации. После создания леса, он воспринимается программой как единое целое, т.е. выделение отдельного дерева в группе невозможно. На закладке "Forest" также можно посмотреть общее число деревьев в созданной группе.
Дальний план леса, созданного на основе трех деревьев.
Тот же лес. Средний план.
Все тот же лес, теперь – крупным планом.
А теперь немного чисел. Сцену, состоящая из 500 тыс. полигонов и более, вряд ли можно назвать интерактивной, редактирование такой сцены затруднено из-за возникающих пауз между действиями пользователя и откликом системы.
Количество полигонов, приходящихся на одну модель дерева SpeedTree, составляет около 2 тыс. для модели низкой степени детализации. Таким образом, можно предположить, что в сцене можно иметь до 250 деревьев, прежде чем компьютер начнет впадать в ступор. Однако, к счастью, в случае с SpeedTreeMax дело обстоит не совсем так. Плагин имеет возможность управлять степенью детализации отображения деревьев в видовом окне сцены. Выставив отображение по минимуму (вместо деревьев будут видны только торчащие палки, подразумевающие стволы) в сцену теоретически можно поместить сколько угодно деревьев без потери интерактивности.
А так выглядит тот же лес в видовом окне при минимальных установках отображения деталей леса в SpeedTreeMAX.
Данная возможность позволяет вместо трехмерной модели дерева использовать нанесенное на SpeedPlane его растровое изображение с альфа-каналом контура, выполняющего при рендере функцию карты прозрачности.
Преимущество использования SpeedPlane перед встроенными возможностями 3d studio max в том, что он может работать со SpeedShadows для правильного расчета теней – таким образом, отпадает необходимость в рендеринге с использованием трассировки лучей (Raytrace), что значительно экономит время.
Требования к компьютеру при работе с SpeedTreeMax в общем, невысоки, но зависят от количества деревьев в сцене и более критичны по отношению к объему и скорости памяти, чем к производительности процессора.
При рендере стандартными средствами max сцены из приблизительно 110 деревьев, потребовалось около 1,5 Гб физической памяти, при этом процессор в течении большей части времени (около 10 минут на Pentium 4-1,4 Ггц) расчетов был задействован меньше, чем на половину своей мощности.
Несколько слов о качестве рендера. Если кратко – для анимации и архитектурных визуализаций (SpeedTree работает и с VIZ) оно приемлемо. Качество рендера неподвижных сцен могло бы быть и лучше. Я имею в виду, что лиственная крона выглядит излишне плотной, немного плоской и местами замыленной. Думаю, причина кроется как раз в той самой параллельности полигонов листьев плоскости камеры, о чем говорилось чуть выше (по этой же причине иногда рендер сцены показывает необычный артефакт в изображении – листья выстраиваются в некоторую упорядоченную структуру -концентрические дуги, смотрящуюся очень необычно на нормальном дереве). В принципе, можно пробовать с этим бороться, регулируя размер и количество листьев, а также, используя для листьев качественные текстуры высокого разрешения. И все же, удивительно, но факт – предварительный просмотр модели дерева в SpeedTree CAD порой показывает изображение куда более правильное, нежели изображение, просчитываемое относительно более навороченным рендером в max’е. Остается надеяться, что в последующих релизах ситуация будет каким-либо образом исправлена.
Вывод – SpeedTreeMAX обладает полным набором инструментов для создания композиции в среде 3d studio max. Работать с ним легко, просто и удобно. Проблем не возникнет, пока вы работаете с встроенным рендером max, в случае использования рендера стороннего производителя, придется повозиться. А иметь полноценные деревья в max при столь малых затратах усилий – дорогого стоит.
Скачать: SpeedTreeCad_Lite, Плагины SpeedTreeMAX+Keygen, Билиотека текстур и моделей деревьев.