Портал Готика Готика II Готика 3 Аркания: Готика 4 Модификации Файлы Форумы РПГ Альманах Дух Готики

 
 
 

Seite 2 von 2 « Erste 12
Ergebnis 21 bis 32 von 32
  1. Homepage besuchen Beitrge anzeigen #21 Zitieren
    Moderator Avatar von odin68
    Registriert seit
    Aug 2008
    Beitrge
    1.844
     
    odin68 ist offline

    Автор: Саша Хенрикс

    Описание:

    Привет всем,
    Предлагаю вам в продолжение туториал "Маппинг древней колонны" ("Mapping einer antiken Sule").
    Снова видео-туториал с подложенным текстом. На видео показан процесс назначения координат текстуры на объекте. К сожалению, я слишком быстро работаю для такого видео, так что для Вас,
    вероятно, будет целесообразно ставить видео на паузу, чтобы прочесть текст. Альтернативно вы могли бы в различных видеоплеерах (например, Media Player Classic или др.), уменьшить скорость воспроизведения.

    Итак, приятного просмотра и удачи!
    С приветом,
    Саша

    СКАЧАТЬ (39,68 Mb)

    Все тексты на английском на скриншотах:



    Ветка обсуждения, в которой на несколько вопросов в связи с этим туториалом ответили Саша Хенрикс и Оркзе на английском языке:
    http://forum.worldofplayers.de/forum...d.php?t=303800 (немецкая ветка форума)

    [Bild: odin_md_akcr.jpg]
    ASUS LGA-1150 Z97-K, Intel Core i7-4770 3.4 GHz, EVGA GTX 980 Ti Hybrid ( 6.0 Gb), 16Gb DDR3, SSD OSZ Vertex 460A (240 Gb) + SSD Samsung SM951 M.2 (256 Gb), Dell Ultrasharp U2515H (2560 x 1440) + BenQ E2400HD (1920x1080)
    Gendert von odin68 (27.06.2011 um 10:47 Uhr)

  2. Homepage besuchen Beitrge anzeigen #22 Zitieren
    Moderator Avatar von odin68
    Registriert seit
    Aug 2008
    Beitrge
    1.844
     
    odin68 ist offline
    Gothic II. Делаем хижину с Сашей Хенриксом

    [Bild: makingof_pic.jpg]

    Первосточник - www.piranha-bytes.com
    Перевод статьи - www.worldofrisen.de

    Перевод - Looker


    'Как сделать хижину для Готики II' от Саши

    [Bild: sascha.jpg]
    Привет, с недавнего времени члены нашего многочисленного фан-сообщества стали задавать все больше и больше технических вопросов о разработке Готики II - они хотят знать то, что происходит за кулисами. Поэтому во время создания объекта я написал статью типа 'разработка-в-процессе'.

    Наслаждайтесь!


    Моя задача

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

    [Bild: spacer_place_small_01.jpg]

    (вот это место, пока только обозначенное)


    многие нужные для этой сцены объекты уже были созданы во время разработки. сундуки, шкуры, огонь, деревянные лавки..., я и палатки моделировал, но сюда они не подойдут.

    Я думаю, что подходящая палатка нужна для того, чтобы подчеркнуть характер сцены лагеря. В этой палатке Вы найдете сундуки и шкуры.


    Сначала нарисуем, а потом смоделируем

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

    [Bild: paper_01.jpg]

    (первый набросок упомянутой палатки)

    Полигон за полигоном - трехмерная модель

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

    Деревянные опоры немного погружены в землю, чтобы учесть возможные неровности.

    [Bild: max_01.jpg]

    (я добавил модель человека, чтобы показать относительный размер),

    в это же самое время я покрываю 'деревянные' части подходящей текстурой.

    [Bild: photoshop_barktex_01.jpg]

    (здесь уменьшена - на самом деле она 512x128)

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

    [Bild: photoshop_rope__03.jpg]

    (обрезанная текстура веревки)


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

    [Bild: max_ropes_attached_03.jpg]

    (скелет хижины)


    Я уже создал много полигонов, так что я помню об этом, моделируя материал палатки. я не смогу смоделировать естественно-выглядящие складки, которые я набросал в эскизе. вместо этого, я "смоделирую" эти складки с помощью текстуры, но сначала я должен сделать поверхность.

    [Bild: max_hull_04.jpg]

    (как и в эскизе, покрытие расширяется ближе к земле)

    Сначала я сделаю покрытие снаружи. Вход будет спереди.

    [Bild: max_hull_finished_05.jpg]

    (законченная поверхность покрытия)


    Текстурирование стен палатки

    Теперь я создам соответствующую текстуру покрытия с помощью фотошопа, а затем наложу ее на поверхность.

    [Bild: photoshop_tenttex_02.jpg]

    (текстура, немного сжатая к низу)


    А вот момент в текстурирования покрытия. Со складками нужно быть быть внимательным. Если вы сделаете что-то не так, складки тут же перестанут выглядеть естественно.

    [Bild: max_hull_mapped_06.jpg]

    (вот на что похожи затекстурированные стены палатки)


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

    [Bild: max_alpha_block_08.jpg]

    (четыре невидимых барьера, посмотрите на красные стрелки)

    Окей, теперь положим несколько полигонов над входом и добавим текстуру бахромы (с альфа-каналом... для тех, кто понимает о чем я ), чтобы все это выглядело более народно. теперь палатка окончена. моделирование заняло у меня около получаса. на создание текстур ушло 2-3 часа (поверхность палатки была реальной проблемой!)... и палатка даже не похожа на то, что я изначально хотел. я должен обратить больше внимания на поведению текстуры после ее наложения на поверхность. мне кажется, тогда она сможет произвести лучшее впечатление. ну ладно. и так вроде нормально. есть еще и другие текстуры, ожидающие того, чтобы их создали ;-).

    [Bild: max_final_09.jpg]

    (итак, сделали)

    час спустя...


    итак, после того, как я закончил наполнять локацию объектами (то есть установил освещение, разместил мелкие объекты, посадил дерево ), вот окончательный результат:

    [Bild: game_place_big_01.jpg]

    (1. с точки зрения игрока)

    [Bild: game_place_big_02.jpg]

    (2. внутри)

    [Bild: game_place_big_03.jpg]

    (3. камера свысока)

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

    Надеюсь, вы получили удовольствие от моего отчета 'разработка-в-процессе'. Боюсь, что на этом я закончу, потому что это заняло много времени. но Kai загрузит вас многими другими материалами.

    увидимся,

    Саша Хенрикс (на портрете )
    Piranha Bytes
    2D-, 3D графика

    [Bild: odin_md_akcr.jpg]
    ASUS LGA-1150 Z97-K, Intel Core i7-4770 3.4 GHz, EVGA GTX 980 Ti Hybrid ( 6.0 Gb), 16Gb DDR3, SSD OSZ Vertex 460A (240 Gb) + SSD Samsung SM951 M.2 (256 Gb), Dell Ultrasharp U2515H (2560 x 1440) + BenQ E2400HD (1920x1080)

  3. Homepage besuchen Beitrge anzeigen #23 Zitieren
    Moderator Avatar von odin68
    Registriert seit
    Aug 2008
    Beitrge
    1.844
     
    odin68 ist offline

    Автор: Саша Хенрикс

    Туториал "Моделирование и маппинг древней колонны" ("Modeling and peltmapping of an ancient column")
    был опубликован на area.autodesk.com 2007-11-10

    Видео-туториал "Моделирование древней колонны" - СКАЧАТЬ (39,2 Mb)
    Видео про маппинг древней колонны вы можете скачать выше на этой же странице.


    1.
    starting from a box you will learn how to model an ancient column

    [Bild: nop5Jy5V2pi3s6rZAun3vlcsnap_00005.png]


    2.
    Learn how to use chamfer, Insert and extrude

    [Bild: VIaGymY3NLLuyQV1vCvlcsnap_00006.png]


    3.
    Learn how to use the cut tool

    [Bild: boUqdAvlcsnap_00007.png]


    4.
    finish modeling

    [Bild: vlcsnap_00008.png]

    Все тексты на английском на 49 скриншотах. Часть 1-я:


    [Bild: odin_md_akcr.jpg]
    ASUS LGA-1150 Z97-K, Intel Core i7-4770 3.4 GHz, EVGA GTX 980 Ti Hybrid ( 6.0 Gb), 16Gb DDR3, SSD OSZ Vertex 460A (240 Gb) + SSD Samsung SM951 M.2 (256 Gb), Dell Ultrasharp U2515H (2560 x 1440) + BenQ E2400HD (1920x1080)

  4. Homepage besuchen Beitrge anzeigen #24 Zitieren
    Moderator Avatar von odin68
    Registriert seit
    Aug 2008
    Beitrge
    1.844
     
    odin68 ist offline

    [Bild: odin_md_akcr.jpg]
    ASUS LGA-1150 Z97-K, Intel Core i7-4770 3.4 GHz, EVGA GTX 980 Ti Hybrid ( 6.0 Gb), 16Gb DDR3, SSD OSZ Vertex 460A (240 Gb) + SSD Samsung SM951 M.2 (256 Gb), Dell Ultrasharp U2515H (2560 x 1440) + BenQ E2400HD (1920x1080)

  5. Homepage besuchen Beitrge anzeigen #25 Zitieren
    Moderator Avatar von odin68
    Registriert seit
    Aug 2008
    Beitrge
    1.844
     
    odin68 ist offline
    Создание Normalmap в Фотошопе с плагином от Nvidia

    Источник - saschahenrichs.de
    Перевод odin68

    Программное обеспечение: Photoshop, Nvidia Plug (Nvidia.com -> Developerzone - Photoshop Plugin)
    Цель: Создание карты нормалей (normalmap) посредством diffuse texture




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

    Но не бойся, мой друг... есть все-таки еще некоторые устаревшие, бородатые живые окаменелости, которые пережили времена, когда еще не было в разработке никакого Crazy Bump'а, а был доступен всего лишь единственный маленький плагин, появившийся от тех, кто нуждался в этих специальных текстурах, обрабатываемых их графическими технологиями... Плагин для Фотошопа от Nvidia (Nvidia Photoshop Plugin)....

    Я был там, я видел это... и это - то, что я должен сказать:



    Карту нормалей в Фотошопе не сделаешь, используя плагин от Nvidia за один только раз на diffuse texture, придется применить фильтр пару раз на различных уровнях размывания diffuse map.
    Начиная с мелкодетализированной текстуры, Вы копируете исходную текстуру и размываете (blur) ее, чтобы преобразовать резкие контрасты в градиенты, чтобы получить более крупные детали.
    Плагин Nvidia приучен конвертировать резкие контрасты без градиентов в "deep"-структуры.
    Чем больше Вы размоете свою исходную текстуру, тем выше Вы устанавливаете "масштаб" ("scale"-значение) в Nvidia Plugin

    Итак, начнем:

    [Bild: nvidia_fig0.jpg]

    Это - наша исходная текстура


    [Bild: nvidia_fig1.jpg]
    fig1


    [Bild: nvidia_fig2.jpg]
    fig2
    ("y" нормали было инвертировано, потому что движок нашей игры нуждается в этом, не делайте этого у себя дома)


    [Bild: nvidia_fig3.jpg]
    fig3


    [Bild: nvidia_fig4.jpg]
    fig4



    Часть 1 технического процесса:

    - создайте дубликат своей diffuse texture с помощью кнопки на вкладке "История" - "Создает новый документ на основе текущего состояния" (create new document from history"). (fig1)
    - примените фильтр nividia к одному из дубликатов для того, чтобы получить детализированную текстуру normalmap. Установки: Scale=4, Alternate Conversion=Max (RGB) (fig2) ("y" нормали было инвертировано, потому что движок нашей игры нуждается в этом),
    - отложите normalmap для последующей компоновки. (Tex1)
    - возьмите другую копию и обесцветьте (Ctrl+Shift+U)
    - примените фильтр Размытие по Гауссу (Gaussian Blur) с маленьким радиусом (2-3 pix) (fig3)
    - создайте дубликат своей diffuse texture с помощью кнопки на вкладке "История" - "Создает новый документ на основе текущего состояния".
    - примените фильтр nividia, установив "Масштаб" ("scale") в 15
    - отложите normalmap также в сторону для последующей компоновки. (Tex2)
    - возьмите другую копию

    - примените фильтр Размытие по Гауссу с увеличенным радиусом (4-5 pix)
    - продублируйте полученный документ с помощью кнопки на вкладке "История" - "Создает новый документ на основе текущего состояния".
    - примените фильтр nividia, установив "Масштаб" в 25

    - примените фильтр Размытие по Гауссу с маленьким радиусом (1-1,5 pix) к Вашей normalmap, чтобы уменьшить эффект муара, который появился при использовании Размытия по Гауссу с увеличенным радиусом. (fig4)
    - отложите normalmap также в сторону для последующей компоновки. (Tex3)
    - возьмите другую копию обесцвеченной текстуры
    - примените фильтр Размытие по Гауссу с увеличенным радиусом (6-7 pix)
    - примените фильтр nividia, установив "Масштаб" в 30-35
    - примените фильтр Размытие по Гауссу с маленьким радиусом (1-1,5 pix) к Вашей normalmap, чтобы уменьшить эффект муара, который появился при использовании Размытия по Гауссу с увеличенным радиусом. (fig4)
    - Эта normalmap - основа для нашей финальной normalmap. Она определяет самую крупную текстуру. (Tex4)


    Теперь мы готовимся скомпоновать 4 normalmap различных уровней при использовании режима смешивания "Наложение" ("Overlay"). Один за другим на normalmap-основе.
    Но после каждого отдельного "Overlay"-смешивания, Вы должны применить в фильтре nvidia еще раз alternate-conversion с параметром: normalize only, чтобы уменьшить ошибки в цвете normlmap, которые появляются после каждого "Overlay"-смешивания.





    Часть 2 технческого процесса:

    - Скопируйте все содержимое из [Tex3] (ctrl+a, ctrl+c) как слой в [Tex4] (ctrl+v)
    - используйте режим смешивания "Наложение" или Мягкий свет" (Soft light") (для более мягкого смешивания) на новом слое (fig5)
    - объедините с фоном
    - используйте в фильтре nvidia alternate-conversion - режим: normalize only (fig6)

    - Скопируйте все содержимое из [Tex2] (ctrl+a, ctrl+c) как слой в [Tex4] (ctrl+v)
    - используйте режим смешивания "Наложение" или Мягкий свет" (Soft light") (для более мягкого смешивания) на новом слое (fig5)
    - объедините с фоном
    - используйте в фильтре nvidia alternate-conversion - режим: normalize only (fig6)

    - Скопируйте все содержимое из [Tex1] как слой в [Tex4]
    - используйте режим смешивания "Наложение" или Мягкий свет" (Soft light") (для более мягкого смешивания) на новом слое
    - объедините с фоном
    - используйте в фильтре nvidia alternate-conversion - режим: normalize only



    Если текстура должна быть tilable (затайленная, бесшовная), Вы теперь должны осмотреть свои швы. И, вероятно, исправить их.
    Используйте фильтр "Сдвиг" (Offset) чтобы привести их в порядок. Выставите точно половину размера Вашего документа в области горизонтальные пикселы и вертикальные пикселы.
    Теперь воспользуйтесь инструментом Размытия или скопируйте инструментом Штамп, чтобы уменьшить Ваши швы. После этого используйте опять фильтр Сдвиг. И затем также снова используйте в Nvidia Plugin - режим: normalize only для цветокорреции.


    Теперь Ваша карта нормалей (normalmap) готова.



    Я надеюсь, что это было полезно для Вас! cya

    sascha

    [Bild: odin_md_akcr.jpg]
    ASUS LGA-1150 Z97-K, Intel Core i7-4770 3.4 GHz, EVGA GTX 980 Ti Hybrid ( 6.0 Gb), 16Gb DDR3, SSD OSZ Vertex 460A (240 Gb) + SSD Samsung SM951 M.2 (256 Gb), Dell Ultrasharp U2515H (2560 x 1440) + BenQ E2400HD (1920x1080)

  6. Homepage besuchen Beitrge anzeigen #26 Zitieren
    Moderator Avatar von odin68
    Registriert seit
    Aug 2008
    Beitrge
    1.844
     
    odin68 ist offline
    Моделирование 3D папоротника

    Источник - saschahenrichs.blogspot.com

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

    Туториал на немецком языке содержит больше букаф и, возможно, я таки добью его перевод. Начинается он так:

    "Привет, и добро пожаловать в продолжение туториала по моделированию 3D папоротника. В предшествующем туториале мы могли научиться создавать текстуру из фото-образца, которую можно использовать в 3D ядре. Теперь мы пойдем на шаг дальше и создадим трехмерную геометрию, чтобы "натянуть" на нее нашу текстуру. Нам потребуется для этого 3D программное обеспечение. В Piranha-Bytes преимущественно используется 3dsmax, поэтому я буду объяснять процесс посредством этого ПО. (Указание: На сайте Autodesk имеется загрузка для этого ПО, которое всегда можно использовать 30 дней бесплатно и в полном объеме. Альтернативно имеется также т.н. GMax по сети) Необходимый ресурс: Папоротниковая текстура, либо производенная по предыдущему туториалу, либо взятая отсюда - http://www.saschahenrichs.de/priv/Nat_Veg_Ferns_01_Diffuse_01_small.rar"


    [Bild: odin_md_akcr.jpg]
    ASUS LGA-1150 Z97-K, Intel Core i7-4770 3.4 GHz, EVGA GTX 980 Ti Hybrid ( 6.0 Gb), 16Gb DDR3, SSD OSZ Vertex 460A (240 Gb) + SSD Samsung SM951 M.2 (256 Gb), Dell Ultrasharp U2515H (2560 x 1440) + BenQ E2400HD (1920x1080)

  7. Homepage besuchen Beitrge anzeigen #27 Zitieren
    Moderator Avatar von odin68
    Registriert seit
    Aug 2008
    Beitrge
    1.844
     
    odin68 ist offline
    Дублирую печальную новость:


    World of Risen:

    Zitat Zitat von World of Risen Beitrag anzeigen
    Саша Хенрикс (Sascha Henrichs), график 3D из Piranha Bytes (который участвовал при разработке всех игр серии Gothic и Risen), сообщил о своем уходе из комады на своей странице в социальной сети Google+ .

    [Bild: 671.png]

    15 октября станет последним днем его работы в PB.

    Мы желаем Саше дальнейших творческих успехов в его будущих проектах [Bild: s_065.gif]

    Домашняя страница
    Обновление от 16.10.2011:

    Саша Хенрикс (Sascha Henrichs) остается работать в Piranha Bytes как фрилансер. Об этом он сообщил у нас на форуме. Официально Саша ушел из команды т.к. просто хотел иметь больше свободы действий. Но на этом его участие в проектах ПБ не заканчивается.

    [Bild: odin_md_akcr.jpg]
    ASUS LGA-1150 Z97-K, Intel Core i7-4770 3.4 GHz, EVGA GTX 980 Ti Hybrid ( 6.0 Gb), 16Gb DDR3, SSD OSZ Vertex 460A (240 Gb) + SSD Samsung SM951 M.2 (256 Gb), Dell Ultrasharp U2515H (2560 x 1440) + BenQ E2400HD (1920x1080)
    Gendert von odin68 (23.12.2015 um 00:26 Uhr)

  8. Homepage besuchen Beitrge anzeigen #28 Zitieren
    Moderator Avatar von odin68
    Registriert seit
    Aug 2008
    Beitrge
    1.844
     
    odin68 ist offline

    Дизайн открытого игрового мира, Making Games, 2012


    [Bild: odin_md_akcr.jpg]
    ASUS LGA-1150 Z97-K, Intel Core i7-4770 3.4 GHz, EVGA GTX 980 Ti Hybrid ( 6.0 Gb), 16Gb DDR3, SSD OSZ Vertex 460A (240 Gb) + SSD Samsung SM951 M.2 (256 Gb), Dell Ultrasharp U2515H (2560 x 1440) + BenQ E2400HD (1920x1080)
    Gendert von odin68 (23.12.2015 um 00:35 Uhr)

  9. Homepage besuchen Beitrge anzeigen #29 Zitieren
    Moderator Avatar von odin68
    Registriert seit
    Aug 2008
    Beitrge
    1.844
     
    odin68 ist offline
    У Саши Хенрикса есть персональная страничка с портфолио:

    SASCHA HENRICHS
    3D Environment Artist

    Duisburg, Germany
    [Bild: 951bb3e0ce75cdd5e26f5fc916f15397.jpg]

    SOME BEARDED AXES
    done in lectures..very old stuff...so old, there wasn't even PBR




    На Vimeo можно посмотреть видеоролик с вращающейся моделью (или скачать). Ролик сопровожден комментарием от автора:
    "An example of old metal surfaces, sculpted and painted in Mudbox. specular made with photoshop.
    You see that the main effect comes through the specular map. just take your diffuse and darken the red rusty areas so that they wont display any specular effects.
    I plan to create a short tutorial on this."


    [Video]

    [Bild: odin_md_akcr.jpg]
    ASUS LGA-1150 Z97-K, Intel Core i7-4770 3.4 GHz, EVGA GTX 980 Ti Hybrid ( 6.0 Gb), 16Gb DDR3, SSD OSZ Vertex 460A (240 Gb) + SSD Samsung SM951 M.2 (256 Gb), Dell Ultrasharp U2515H (2560 x 1440) + BenQ E2400HD (1920x1080)

  10. Homepage besuchen Beitrge anzeigen #30 Zitieren
    Moderator Avatar von odin68
    Registriert seit
    Aug 2008
    Beitrge
    1.844
     
    odin68 ist offline
    RISEN 3 LAVA PROTOTYPE (2012)

    Responsible for art direction, scene layout and dressing, rock modeling, texturing and lavashader creation, weathermood and speedtrees

    [Bild: sascha_henrichs_genome_2012_01_30_21_3.jpg]

    Hexagonal Column by Paul Springfield

    [Bild: sascha_henrichs_genome_2012_01_30_21_4.jpg]

    Ruins by Thiemo Vetter

    [Bild: sascha_henrichs_genome_2012_01_30_21_5.jpg]

    [Bild: odin_md_akcr.jpg]
    ASUS LGA-1150 Z97-K, Intel Core i7-4770 3.4 GHz, EVGA GTX 980 Ti Hybrid ( 6.0 Gb), 16Gb DDR3, SSD OSZ Vertex 460A (240 Gb) + SSD Samsung SM951 M.2 (256 Gb), Dell Ultrasharp U2515H (2560 x 1440) + BenQ E2400HD (1920x1080)

  11. Homepage besuchen Beitrge anzeigen #31 Zitieren
    Moderator Avatar von odin68
    Registriert seit
    Aug 2008
    Beitrge
    1.844
     
    odin68 ist offline
    RISEN 3 FINAL GAME (2014)

    If not mentioned in any other way in the caption, I was responsible in these shots for mainly everything. art direction, scene layout and dressing, rock modeling and texturing, landscape layout and texturing, speedtree creation, weather moods and creation of the other assets.
    However our level department back in the day was ultra awesome and everybody had every scene at his hands at some point of development. So chances are, that some stuff minor stuff wasn't placed by me. But for this gallery i chose the scenes that I mainly created.
    Here are all the names of these fine people:
    Paul Springfeld
    Andreas Menkhoff
    Thiemo Vetter
    Victor Karp
    as also intern Mathis Widrat


    [Bild: v94S6ZHEKcsWDpE01.jpg]
    please read the description of this project on the right!
    In this shot I didnt model the bridges but changed them to be ultra long. the outsourced asset was only a few meters long.


    [Bild: 1302.jpg]
    i believe i didn't make the branch in the foreground.


    Spoiler:(zum lesen bitte Text markieren)
    [Bild: r4dlkX1rQo7TlvvR7Wh03.jpg]


    [Bild: lI1mA09t04.jpg]
    i didnt model the bridges but changed them to be ultra long. the outsourced asset was only a few meters long.


    [Bild: FuzQpsTw7HhptDJ05.jpg]


    [Bild: ezhDMVxBFN6ROT7kUO06.jpg]
    the ship is made by Paul Springfeld


    [Bild: qVa07.jpg]
    the ship is made by Paul Springfeld


    [Bild: devDS08.jpg]


    [Bild: RINMQVVYF6QE5Gbg009.jpg]


    [Bild: 2AK9mxUPsF6f8ZEf10.jpg]
    not my well!


    [Bild: 7N91ntBajhD3ePACOw11.jpg]


    [Bild: YaTG12.jpg]


    [Bild: r9IvAY1Fm13.jpg]


    [Bild: Vtd86K7fWHqyt14.jpg]


    [Bild: CWuGOxJiAA0hnz15.jpg]
    towers and ruins by Mathis Widrat


    [Bild: zGmas5Zz4uWeF6GOMh516.jpg]


    [Bild: I1GWpzvWTL8f8KUAD17.jpg]


    [Bild: NLlDc2vDMvNuVp18.jpg]


    [Bild: SPbXyoxcfk0Rty19.jpg]


    [Bild: 6AWlRnJ7G20.jpg]
    the lava stone with the small streams is from Paul Springfeld


    [Bild: X389JWdnLDn9l21.jpg]


    [Bild: B422.jpg]


    [Bild: ajK9pQgSd5M23.jpg]


    [Bild: 3lH2JCQSYzYB6PX24.jpg]
    the small tower was outsourced


    [Bild: rKtwe25.jpg]
    not my crane. this asset was outsourced


    [Bild: cCy56YW0pK326.jpg]
    however, this tower IS mine hah ;D


    [Bild: xabuid027.jpg]


    [Bild: q28.jpg]
    not my floor planks


    [Bild: xN29.jpg]


    [Bild: H30.jpg]
    Bridge floors were outsourced


    [Bild: paWjUTrBUBxdw12vR331.jpg]


    [Bild: qVigyG8q32.jpg]
    Bridge floors and tower were outsourced, idk anymore about the torches

    [Bild: odin_md_akcr.jpg]
    ASUS LGA-1150 Z97-K, Intel Core i7-4770 3.4 GHz, EVGA GTX 980 Ti Hybrid ( 6.0 Gb), 16Gb DDR3, SSD OSZ Vertex 460A (240 Gb) + SSD Samsung SM951 M.2 (256 Gb), Dell Ultrasharp U2515H (2560 x 1440) + BenQ E2400HD (1920x1080)

  12. Homepage besuchen Beitrge anzeigen #32 Zitieren
    Moderator Avatar von odin68
    Registriert seit
    Aug 2008
    Beitrge
    1.844
     
    odin68 ist offline
    SpeedTree в игровой индустрии, DigitalProduction 6/12

    ЧАСТЬ 1

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

    [Bild: DP_SpeedTree_Page_02.jpg]



    ЧАСТЬ 2



    ИСТОЧНИК
    СКАЧАТЬ файл *.pdf

    Оригинальный текст:
    Spoiler:(zum lesen bitte Text markieren)
    SpeedTree in der Spieleproduktion

    Die Erstellung von Vegetationen kann ein kritisches Element in der Produktion eines Games darstellen. Und in der Regel ist schon am Anfang eines Projektes klar, welchen Stellenwert die Vegetation in dem Spiel einnehmen wird. In vielen kleineren Spielen, 2D-Produktionen oder Sci-Fi-Titeln sind die Vegetation Assets rar gest und schnelldurchproduziert. Entwickelt man aber ein technisch vielschichtiges Produkt beispielsweise mit einem Open-World-Szenario, hat man schnell einen erweiterten Feature-Bedarf, den man abdecken mchte.
    von Sascha Henrichs
    Warum brauchen wir SpeedTree?
    Nehmen wir an, wir haben ein realistisches Naturszenario in einer mit Schrittgeschwindigkeit begehbaren 3D-Welt in einer First-Person-Ansicht. Zielplattform ist die Xbox360. Hierfr wollen wir eine ppige Anzahl von verschiedenen Vegetation Assets produzieren. Einige Bsche und ein paar Bume verschiedener Art, jeweils in verschiedenen Gren und Formen, diverse Wurzeln und Hngepflanzen, Bodenbewuchs und zudem einige Hero-Bume, die speziell fr Schlsselszenen produziert werden.
    Die Assets mssen alle sehr detailliert sein, da man sie in der First-Person-Ansicht betrachtet. Gleichzeitig mssen sie performant dargestellt werden, also auch ein Level of Detail-System (LOD) untersttzen, und ressourcenschonende Dateigren und -anzahlen haben. Zustzlich soll sich die Vegetation noch im Wind wiegen. Diese Flle an Attributen, die die Vegetationslsung nun bearbeiten soll, lsst auf Anhieb einen immensen Arbeits- und Pflegeaufwand erkennen. Somit muss man sich auch gut berlegen, wie man diese Aufgabe plant und schlielich lst.
    Frher wurden diese Assets ausnahmslos von Hand modelliert und mit eigenen Texturen versehen. So wird fast jeder 3DGrafiker schon einmal einen Baum in seiner 3D-Software von Hand modelliert haben. Es ist ein sehr aufwendiger Prozess, und wenn man spter noch Vernderungen an den Bumen vornehmen muss, so sind diese ebenfalls sehr zeitaufwendig. Also allein die Herstellung der Modelle wre ein groes Unterfangen und fr jede Grafikabteilung eine langwierige und demotivierende Arbeit.
    Gleichzeitig msste man die unterschiedlichen LOD-Stufen jederzeit nachpflegen und ein entsprechendes System fr die Darstellung eben jener in die Engine integrieren. Man msste ein Programmmodul programmieren welches den Wind erstellt, und eventuell sieht die Planung auch Interaktion mit der Vegetation vor, womit dann in der Regel auch ein Skelettsystem fr die Bume programmiert werden muss.
    Allein bei der Planung und dem Prototyping eines solchen Systems mit so vielen Komponenten, gehen Wochen ins Land. Kurz gesagt, wird ein Programmierer als Vollzeitkraft fr diese Arbeit eine sehr lange Zeit abgestellt sein. Gleichzeitig wird dieses System in der Anfangszeit nur so vor Programmfehlern strotzen, so dass die Datenersteller zu Alphaund Beta-Testern werden und kaum ungehindert Daten erstellen knnen.
    Sptestens jetzt muss man sich fragen, ob die Ressourcen und das Budget fr eine solche Inhouse-Lsung mit eigener Engine-Implementation zur Verfgung stehen oder ob man auf eine Middleware zurckgreifen sollte. Also auf ein fertig programmiertes Engine-Modul, welches sich eben nur um diese Aufgaben kmmert.
    Eine sehr beliebte Middleware in diesem Zusammenhang ist natrlich SpeedTree von der Firma IDV (Interactive Data Visualization, Inc). In vielen aktuellen Spieletiteln wird SpeedTree auch mittlerweile eingesetzt, um all der oben genannten Probleme mit einem Schlag Herr zu werden: Battlefield 3, Batman: Arkham Asylum, Witcher 2 oder zum Beispiel unser neuestes Spiel Risen 2, um nur einige zu nennen.

    Das SpeedTree-Paket

    Im Folgenden mchte ich nun die Arbeit mit SpeedTree erlutern und einen typischen Workflow vorstellen. Doch zunchst eine kurze Einleitung, was SpeedTree berhaupt ist. SpeedTree gibt es in verschiedenen Produktversionen: SpeedTree Studio, SpeedTree Cinema und SpeedTree for Games. Studio ist die gnstigste Variante mit derzeit etwa 900 Dollar. Diese Version kommt zum Beispiel ohne die Baumbibliothek, LOD-Mechanismus und der Floating License aus, womit man den Modeler auf beliebig vielen Rechnern installieren kann.
    Die Version SpeedTree Cinema, hat die Bibliothek und zum Beispiel auch Floating Licences und kostet derzeit circa 5.000 Dollar. Hierbei sei kurz darauf hingewiesen, dass James Cameron SpeedTree als Vegetationslsung fr seinen Film Avatar ausgesucht hat, noch bevor es SpeedTree Cinema gab. Infolge der Entwicklung des Films wurde SpeedTree dann letztlich auf diesen Produktbereich angepasst und vertrieben.
    Mittlerweile bietet sogar die Gnomon School of Visual Effects in Hollywood eine eigene Schulung fr SpeedTree an, was noch einmal den Stellenwert unterstreicht, den SpeedTree derzeit auch im Film-Business geniet.
    Das letzte und in der Regel teuerste Produkt ist SpeedTree for Games. Es hat alle oben genannten Features und noch einige mehr. Um einen Preis dafr zu erfahren, muss man sich mit IDV in Verbindung setzten, dann werden die Konditionen verhandelt. In der Regel bezieht sich der zu zahlende Betrag auf die Entwicklung von genau einem Spieletitel und kann in der Hhe variieren. Hat man letztlich eine Version kuflich erworben, bekommt man einen Zugang zu einem Download-Bereich auf den Servern von IDV und kann sich sein Produkt herunterladen.

    SpeedTree for Games

    Das Produkt SpeedTree for Games wird mit einem prozeduralen Tree Modeler, einer umfassenden Baumsammlung, dem SpeedTree Compiler und dem SDK (Software Development Kit) ausgeliefert. Fr den 3D-Artist ist die Installation des Modelers mit circa 250 MB relativ schlank, die Baumbibliothek ist der weitaus grere Brocken mit etwa 2,5 GB. Das SDK bentigt nur der Programmierer und es muss bei den Grafikern nicht installiert werden.
    Die Aktivierung einer sogenannten Floating Licence fr den Modeler muss fr jeden Rechner, auf dem das Produkt installiert wird, neu erfolgen. Die Anzahl ist hier unbegrenzt. Die Lizenzanfrage erfolgt online im SpeedTree Modeler mittels einer Host ID, die versandt wird. Und der bentigte Lizenzcode wird derzeit noch persnlich durch einen IDV-Mitarbeiter erstellt und via E-Mail verschickt.Bis zur letztendlichen Freischaltung einer Version knnen also einige Stunden vergehen. Mchte man schnell loslegen, sollte man dies unter Bercksichtigung der Zeitverschiebung bedenken. Man kann diesen Vorgang etwas beschleunigen, wenn man die Host-ID (wird beim Start eines unlizensierten SpeedTree Modelers immer wieder in einem Pop-up dargestellt) selbst noch einmal via E-Mail an seinen Sachbearbeiter verschickt.
    Die Aufgaben der verschiedenen Programmteile sind soweit selbsterklrend. In dem Modeler modelliert man die Bume auf Basis einer prozeduralen Technik, und die Baumsammlung bietet zur Vereinfachung der Baumerstellung schon einen riesigen Fundus an voreingestellten (i.d.R. botanisch korrekten) Bumen und Texturen.
    Der SpeedTree Compiler ist interessant zu erwhnen. Die in dem Modeler erstellte Vegetation wird mit dem Compiler in ein fr die Engine optimiertes Format umgeschrieben, und die verwendeten Einzeltexturen werden in Atlas Sheets umarrangiert, damit nicht etliche von Einzeltexturen im Spiel abgerufen werden mssen. Dies spart sogenannte Draw Calls. Die Texturkoordinaten der Bume werden in diesem Prozess auch automatisch auf die neuen Atlanten angepasst.
    Des Weiteren schreibt der SpeedTree Compiler auch Billboards fr die Vegetation heraus, damit sehr weit entfernte Bume im Spiel nur noch als niedrig-polygonale Planes gerendert werden. Zu guter Letzt haben die Programmierer im Team auch noch zu tun, indem sie den SpeedTree-Programmcode in die Spiele-Engine integrieren, und zwar mit dem SDK. Mithilfe dieser Programmteile wird ein SpeedTree korrekt im Spiel angezeigt und vom SpeedTree-Wind bewegt.
    Der Wind selbst wird auch im SpeedTree Editor erstellt und in jedem SpeedTree File gespeichert. In den einzelnen Baumkomponenten werden verschiedene Attribute abgelegt, die angeben, wie die jeweilige Komponente auf Wind reagiert. Ein Farn beispielsweise ist sehr biegsam im Gegensatz zu einem abgebrannten dicken Gest. All dies stellt man individuell ein, und mithilfe des SDK knnen diese Daten ausgelesen und interpretiert werden.

    Der SpeedTree Modeler

    Es soll nicht unerwhnt bleiben, dass die Entwicklung von SpeedTree nun seit vielen Jahren vorangetrieben wird. IDV hat sich in dieser Zeit durchaus bemht, die Feature-Requests der Kunden in ihr Produkt einflieen zu lassen. So ist es heute zum Beispiel aufgrund der hohen Nachfrage mglich, die Bume als Mesh-Geometrie mitsamt Texturen zu exportieren als auch eigene Meshes ganz einfach im OBJ-Format in SpeedTree zu importieren. Installiert man sich heute also eine aktuelle Version des Modelers, hat man es mit einer durchaus ausgereiften und fast bugfreien Software zu tun.

    Die Programmoberflche

    Schauen wir uns erst einmal das Layout der Programmoberflche an, welche grob in vier Teile unterteilt ist. Von links nach rechts haben wir zuerst das Properties-Feld. Hier werden alle Einstellungen, wie zum Beispiel Astlnge und -dicke aber beispielsweise auch das UV-Mapping eines Astes festgelegt. Auch Einstellungen fr den Wind knnen hier vorgenommen und abgespeichert werden. Danach kommt der Viewport, welcher oben noch ein paar Icons besitzt, mit denen man Baumteile schnell ein- oder ausblenden kann. Dort oben kann man auch zustzliche Darstellungen, wie zum Beispiel Collision-Geometrie sichtbar machen.
    Rechts oben ist der Asset-Bereich. Hier werden Texturen oder Custom Meshes eingeladen. Denn man kann in SpeedTree auch eigene Geometrie einladen und diese entweder als Baumgeometrie verwenden oder einen Baum um eingeladene Meshes herumwachsen lassen. Schlielich ist unten rechts noch eine schematische Ansicht unserer Node-Hierarchie, auf die ich kurz eingehen mchte.

    Die Nodes

    Denn bevor wir nun den ersten Ast erstellen, sei zunchst erwhnt, dass ein SpeedTree-Baum ein hierarchisch aufgebautes Konstrukt ist, welches mithilfe von Generatoren zusammengesteckt wird. Ich werde diese Generatoren der Einfachheit halber im Folgenden mit Nodes oder Objektknoten bezeichnen.
    Im Grunde gibt es in SpeedTree nur zwei Hauptkategorien von Objektknoten. Zum einen gibt es die Branch Nodes und zum anderen die Leaf Nodes. Aus diesen zwei Objektarten lsst sich jeder Baum herstellen. Wobei der Branch Node hauptschlich zum Erstellen von Stmmen, sten, Zweigen, Lianen oder Palmblttern benutzt wird, und der Leaf Node zum Erstellen von kleinerem Blattwerk. Diese beiden Objektarten haben unterschiedliche Einstellungsmglichkeiten im Properties-Bereich.

    Tree Modeling

    Um nun auf das Modeling einzugehen, wollen wir den Vorgang nicht anhand eines fertigen Baumes aus der Library besprechen, sondern selbst einen Baum von Grund auf neu erstellen. Auf der vorangegangenen Seite sehen wir das Endergebnis, welches wir besprechen wollen. Zunchst erstellt man sich ein neues und leeres Dokument unter dem Menpunkt File->New.
    Ein Node, der Hauptknoten, wird dann automatisch im Node-Fenster erstellt und im Viewport wird ein weier Ring am Boden dargestellt. Der Hauptknoten ist weder ein Branch Node noch Leaf Node, er ist ein spezieller Node, ohne den kein Baum auskommt. Er ist stets Ankerpunkt fr darauf folgende Nodes. Gleichzeitig kann dieser Node auch keine Geometrie erstellen. Dafr braucht man immer einen der oben beschriebenen Objekt-Nodes.
    Dieser Ring stellt zunchst einmal nur den Radius dar, in dem der erste Ast potenziell erzeugt werden kann beziehungsweise der erste Geometrie-Node stattfinden kann. Man kann diesen Radius stets im Properties-Fenster verndern als auch diverse andere Settings, wie zum Beispiel einen Multiplizierer auf die Gesamtgre des Baumes und diverse Darstellungsoptionen. Auch das LODing kann hier innerhalb des SpeedTree Modelers angeschaltet werden, damit man die verschiedenen LOD-Stufen vorab auf Funktionalitt und Aussehen testen kann. Im Node-Fenster, rechts unten, fhrt man nun zum Beispiel einen Rechtsklick auf den Haupt-Node aus und kann mit Add template to selected->Trunks->Standard RT einen Baumstamm, in dem vom Haupt-Shader-Knoten vorgegebenen Radius erzeugen.
    RT steht fr Real Time und ist letztlich nur ein Indiz fr eine polygonreduzierte Voreinstellung fr dieses Template. Die Nodes werden hier als Templates bezeichnet, da diese nach wie vor alle noch dieselben Branch Nodes sind, diese aber je nach Nutzungsart, mit unterschiedlichen Werten befllt sind. In den Properties dieses ersten Objekt-Nodes stehen nun etliche Parameter zur Verfgung, mit denen man die Geometrie des Baumstammes definieren kann.
    Die Flle an Einstellungsmglichkeiten ist immens und kann hier nur angerissen werden. Man hat zunchst einmal Zugriff darauf, wo der Baumstamm innerhalb des Radius vom Haupt-Shader-Knoten erstellt wird ob mittig oder eher am Rand. Dies macht in dem Fall vor allen Dingen Sinn, wenn man mehrere Baumstmme oder ste direkt zu Anfang erstellen mchte. Beispielsweise fr einen Busch, denn man kann hier auerdem die Anzahl der erstellten Stmme vorgeben. Und da ein Busch in der Regel aus einigen kleineren Bumen besteht, bietet es sich an, hier direkt beim ersten Geometrie-Node mehrere kleine Baumstmme in einigem Abstand zueinander zu generieren.
    Etwas weiter unten kommen die Sektionen Spine und Branch, in denen die Form des Astes vorgegeben wird: Lnge, Dicke, Grad der Verformung, Astbruch, Astteilung, Anzahl und Ausprgung von Wurzelanstzen et cetera. All diese Werte werden in weiteren, spter addierten Geometrie-Nodes ebenfalls genutzt, um die ste an dem Baumstamm zu generieren. Nur die Werte, mit denen die Parameter dann gefllt werden, sind jeweils andere.

    Polycounts

    Eine weitere wichtige Sektion sind die Segments. In dieser Sektion gibt man die Polygonauflsung des jeweiligen Objektes an. Gerade bei der Spieleproduktion kommt es erheblich auf den Polycount der verwendeten Assets an. Die Polygonanzahl folgt im Idealfall dem Motto: Stets so wenig wie mglich, doch so viel wie ntig. Manchmal auch weniger als ntig. Polygoncounts sind heutzutage nach wie vor nebst Fllrate, Draw Calls und Ressourcenverbrauch kritische Elemente in der Spieleproduktion.
    Je nachdem wie es das Leveldesign erlaubt, kann man mehr oder weniger Polygone fr ein einzelnes Asset verwenden. Und hat man eine offene Welt zu bestcken, so kann man nicht immer auf Sichtschutz hoffen, der zum Beispiel einen groen Teil des Spielgebietes ausblenden kann. Stattdessen geht man in dem Fall besser vorsichtig vor und hlt die Polycounts der einzelnen Assets mglichst gering.
    In unserem aktuellen Titel Risen 2 haben groe Bume einen Polycount von 2.000 bis 6.000 Triangles je nach Form und Art des Baumes. Bsche haben zwischen 300 bis 1.000 Triangles. Die Geometrie-LOD-Stufen (wir haben immer nur eine, die noch relevante Geometrie-Features besitzt, bis nach dieser dann die Billboard-LOD-Stufe folgt) haben bei uns nur noch ungefhr ein Viertel bis ein Fnftel des ursprnglichen Polygoncounts.

    ste und Zweige

    Um nun unseren Baumstamm mit einigen sten auszustatten, fgen wir an den Trunk Node mit der rechten Maustaste ein Branches->Standard RT Template an, wodurch zwei weitere Nodes in der Hierarchie erzeugt werden, die sich sofort mit dem Baumstamm-Node verbinden. Im Viewport sieht man entsprechend die neue Geometrie der ste, welche sich in den oberen zwei Dritteln des Baumstammes erzeugt hat.
    Das Branches-Standart RT-Template, besteht aus zwei Ebenen von Branch Nodes, die nacheinander geschaltet sind. Man sieht hier, dass Templates auch aus ganzen Node-Konstrukten bestehen knnen. Es ist auch jederzeit mglich, selbst erzeugte Node-Verschachtelungen als eigene Templates abzuspeichern. Dafr muss man nur mittels Auswahl-Rechteck im Node Editor oder durch Strg-Linksklick mehrere Nodes auswhlen und dann mit Rechtsklick Save selected as template ausfhren.
    Schauen wir uns nun den Polycount im OnScreenDisplay (OSD) des Viewports an, so sehen wir einen kombinierten Polycount von allen sten plus Stamm von circa 7.500 Polygonen. Damit bewegt man sich also schon ber dem Limit von dem, was wir in unseren Spielen maximal an Geometrieaufwand fr einen groen Baum einsetzen. Da uns hier aber noch Bltter fehlen, und je nachdem vielleicht auch noch extra Wurzelgeometrie, wrden wir das Limit schnell bersteigen.
    Folglich msste man jetzt schon damit beginnen, die Segmente der einzelnen Nodes zu optimieren. Speziell bei sehr groen Bumen kann dies bald zu einem knstlerischen Problem werden, da man stets zwischen guter Optik und niedrigem Polycount abwgen muss. ste mit wenigen Segmenten sehen schnell sehr eckig aus. Um die ste zu optimieren, hat man aber verschiedene effektive Mglichkeiten. Zum einen kann man schon zur Hlfte der Baumlnge anfangen, die Radialsegmente der ste auf nur vier oder gar drei Seiten zu reduzieren. Dies fllt am letztendlich texturierten Baum kaum auf und spart sehr viel Geometrie.
    Man kann sogar mittels des Kurven-Editors, welcher sich im unteren Bereich des Properties-Fensters befindet, angeben, dass die ste direkt am Baumstammbergang noch eine hohe Segmentauflsung aufweisen, dann aber schnell die Segmentreihen im Verlauf des Astes auf ein Minimum reduziert werden.
    Des Weiteren fllt auf, dass die meisten Polygone in unserem Standard-RT-Template von dem Level-2-Node erzeugt werden. Also von den sten, die ihrerseits schon an der ers-ten Lage ste erzeugt werden. Dies liegt zum einen an der groen Anzahl der Level-2-ste und zum anderen an deren hoher Geometrieauflsung.
    Man kann nun versuchen, die Polygondichte dieses Nodes mittels der Segmente und Reduktion der Anzahl der ste zu verringern, wird aber feststellen, dass die Optik bald unter den Optimierungen leidet. Die ste werden zu kantig und mit einer reduzierten Anzahl dieser ste verliert der Baum auch an Dichte. Um also eine hohe Dichte von kleinem Gest zu erlangen, ohne die Polygonanzahl zu strapazieren, kann man sogenannte Fronds
    einsetzen.

    Von Fronds und Materialien

    Fronds sind im Prinzip nichts anderes als vernderte Branch Nodes, welche nur noch mit zweiseitigen Polygon Planes dargestellt werden. Auf diesen Planes werden letztendlich Ast-Texturen mit Alpha Kanal dargestellt. Um unseren Level-2-Branch-Node entsprechend umzustellen, stellt man den sogenannten Geometry Type auf den Wert Frond und die Bifurcation Chance stellt man auf 0. Mit der Bifurcation kann man Astgabeln an sten erstellen. Wird jedoch eine 2D-Plane auf diese Weise geteilt, werden die Texturteile der Asttextur nicht mehr aufeinanderpassen. Daher sollte bei Fronds auf diese Funktion verzichtet werden. Auf der Fronds-Textur sind in der Regel mehrere Astunterteilungen dargestellt, damit man den Eindruck von dichtem Gest erhlt. Der Vorteil von Fronds gegenber echten 3D-sten ist natrlich, dass sie Polygone betreffend wesentlich effizienter sind.
    Ein 3D-Ast mit Volumen besitzt mindestens drei Seitenflchen pro Lngensegment, um nur einen einzelnen Astbereich darzustellen, wohingegen ein Frond nichts anderes als eine doppelseitige Polygon Plane ist. Verwendung finden die Fronds hauptschlich bei kleineren Zweigen und dnnem Gest. Dies fllt kaum auf, ja ist sogar in diesem Bereich optisch ansprechender als tatschliche 3D-ste, da diese sehr niedrig-polygonal ausfallen mssten, und dementsprechend kantig ausshen. Mchte man nun wie in dem Beispielbild sowohl die Baumstmme als auch die Ast-Polygone mit Materialien versehen, so wenden wir uns der Asset-Verwaltung zu, welche sich oben rechts direkt ber dem Nodes-Bereich befindet. Es kann hier mithilfe von Reitern, auch bekannt als Tabs, zwischen verschiedenen Asset-Bereichen gewhlt werden. Im Bereich Materials kann man nun sehr einfach neue Materialien anlegen, indem man einen oben dargestellten Shortcut anklickt.
    Der Shortcut ist mit einem kleinen Icon visualisiert, welches ein Pluszeichen darstellt. Hier wird man nun direkt in ein Explorer-Fenster verlinkt, in dem man eine Diffuse Textur auswhlen kann. Hat man sich fr eine entschieden, so wird automatisch ein Material mit dem Namen der Diffuse Textur angelegt. Zudem sucht SpeedTree auch automatisch nach Texturen mit dem Suffix *_Normal.* und *_Spec* und trgt diese, sofern welche gefunden werden, automatisch in die entsprechenden Material-Slots ein.
    Hat man nun die beiden bentigten Materialien erstellt, mchte man diese den einzelnen Baumteilen zuordnen. Dieser Vorgang wird in den jeweiligen Properties der einzelnen Tree Nodes vorgenommen. Ein Klick auf den Trunk Node im Nodes-Bereich ffnet dessen Eigenschaften im Properties-Bereich. Dort findet man das Materials-Rollout, in dem man letztlich das Material zuweisen kann. Das war also nun das Grundgerst, in der nchsten DP werden wir uns dann mit den Blttern, Mesh-Importen, LOD und dem Compiler beschftigen sowie den Problemen von SpeedTree, zum Beispiel bei Kollisionen.

    Teil 2

    SpeedTree in der Spieleproduktion


    In der letzten Ausgabe der DP haben wir die allgemeine Funktionalitt von SpeedTree erlutert und zudem angefangen einen Baum zu modellieren. In dem zweiten Teil des Workshops gehen wir nun auf die Erstellung der Bltter ein und wollen die Astform noch etwas detailreicher gestalten. Zudem gibt es noch einen Einblick in die verschiedenen zustzlichen Systeme von SpeedTree, wie zum Beispiel das Level of Detail-System, die Wind-Einstellungen oder die Kollisionsgenerierung.
    von Sascha Henrichs
    Hierfr wollen wir verschiedene Vegetations-Assets produzieren. Diese mssen performant dargestellt werden, also auch ein Level of Detail-System untersttzen, und ressourcenschonende Dateigren und -anzahlen haben. Zustzlich soll sich die Vegetation noch im Wind wiegen. Nachdem wir also unser Grundgerst in Form eines Baumstammes und den sten erstellt haben, fehlt uns ein entscheidender Bestandteil eines Baumes, nmlich die Baumkrone mit den Blttern.

    Blattwerk

    Wie schon erwhnt werden Bltter in SpeedTree mit speziellen Nodes erstellt. Fgt man mit der rechten Maustaste auf unseren Level-2-Branch-Node nun einen St andardRT-Leaf Node ein, dann sieht der Node-Bereich folgendermaen aus: An den Zahlen, die zwischen den einzelnen Nodes dargestellt sind, erkennt man wie viele der einzelnen Meshelemente an dem jeweiligen Root erzeugt wurden. So kann man zwischen dem Tree- und dem Trunknode erkennen, dass nur ein Mesh-element als Baumstamm erzeugt wurde. Diese Zahlen sind also keine Polygoncounts, sondern nur Indikatoren fr die Anzahl der erzeugten Meshinstanzen oder Elemente. Und wie man sieht, wurden sehr viele Blattinstanzen erzeugt.

    Geometrie und Meshimporte

    Die Bltter, werden zunchst als sogenannte Cards besser bekannt als Billboards dargestellt. Also letztlich einseitige Polygonquads, die sich der Kamera nach ausrichten. Der groe Vorteil dieser Darstellungs-technik, ist, dass man mit relativ wenig Polygonaufwand ein sehr dichtes Blattwerk rendern kann.
    Der groe Nachteil ist aber eine hohe Fillrate, die durch die berlagerung von etlichen Texturalpha-Bereichen zustandekommt. Fr Echtzeitdarstellungen ist dies ein kritischer Punkt. Etliche Pixel mssen hier wieder und wieder auf Durchsichtigkeit getestet werden. Ein weiterer Nachteil ist, dass man es oft gut erkennt, wenn sich die Bltter zur Kamera ausrichten.
    Insbesondere wird dies zum Problem, wenn man unter einem Baum herluft und sich die Planes in einer ruckartigen Bewegung einmal um 180 Grad drehen, um wieder korrekt zur Kamera ausgerichtet zu sein, ohne sich zu berschlagen. Um diese Effekte zu verhindern, sind wir in unseren Spielen dazu bergegangen, komplexere Mesh geometrie fr unsere Blattmeshes zu verwenden, die sich nicht zur Kamera ausrichtet.
    SpeedTree selbst wird mit einigen Beispielen fr solche Meshes ausgeliefert. Diese reichen von einfachen Polygonkreuzen bis hin zu clever arrangierten Polygonkonstrukten. Um ein solches Mesh einzuladen, klicken wir im Meshbereich des Assetbrowsers auf das kleine Pluszeichen und navigieren zum Samples/Meshes-Ordner der SpeedTree Root. An dieser Stelle knnen verschiedene Formate eingeladen werden, auch FBX- oder OBJ-Formate. UVMaps, die man fr eigens erstellte Meshes angelegt und mit exportiert hat, werden ebenfalls ausgelesen und benutzt.
    SpeedTree hat ein eigenes STM-Format, das man mit den mitgelieferten 3ds-Max- Scripten selbst exportieren kann. Dieses Format kann vernderte Poygonnormalen exportieren, wie sie fr bestimmte Beleuchtungsarten fr Bltter im Niedrigpolygonbereich von Vorteil sind. Fr Maya gibt es diese Scripte nicht. Whlen wir also das Mesh Tri-Foil.stm und weisen es in den Leaves Properties zu.
    Danach whlen wir eine passende Blatt-Textur aus und weisen diese ebenfalls zu. Das Ergebnis lsst allerdings nach wie vor zu wnschen brig. Die Bltter sind zu einheitlich verteilt, der Stamm ist unnatrlich gerade und viele der Level 1 Branches haben vielleicht noch nicht die gewnschte Ausrichtung, was man beim Rotieren des Baumes schnell erkennt. Doch genau hier wird es letztlich kreativ und spaig.

    Von Formen ...

    SpeedTree bietet eine Menge Parameter mit denen man die Form, Ausrichtung und Anzahl der ste und Bltter beeinflussen kann. Im Folgenden werde ich die Namen der Parameter und deren Funktion erwhnen, die ich fr unser Beispiel verndere. Die Notation der tatschlichen Zahlenwerte wre an der Stelle nur verwirrend.
    Dem SpeedTree-Neuling sei nahegelegt, unbedingt selbst an den Werten zu drehen und zu experimentieren, um ein Gefhl fr die Parameter zu bekommen. Hat man erstmal das System verinnerlicht und fr jeden Parameter ein Bild von seiner Funktion vor Augen, ist es ein Leichtes zu erkennen, warum sich die Geo metrie so verhlt, wie sie es tut.
    Wenden wir uns also wieder unserem Baum zu, fllt auf, dass dieser organischer wirken und interessantere Silhouetten werfen sollte. Zudem mchte die Baumkrone voller und natrlicher wirken. Das alles unter dem Gesichtspunkt, Polygoneffizienz zu wahren. Zunchst wollen wir aber unsere Bltter ausblenden und uns nur den sten zuwenden.
    Schauen wir uns im Netz um, finden wir eine Menge Beispiele an spannenden Baumsilhouetten. Analysieren wir diese, fllt uns auf, dass wir unseren Baumstamm zunchst unregelmiger entwerfen mssen, um das Gesamtshape interessanter zu gestalten.
    Unten sehen wir nun unseren Baum, nachdem wir ihn mit den prozeduralen Modellierungswerkzeugen bearbeitet haben. Im Folgenden gehe ich auf die wichtigsten Schritte ein, die dafr ntig waren.
    Der Wert Disturbance den wir zunchst ndern, findet sich im Spine Rollout der Baumstamm-Properties. Dadurch wird der Baumstamm an einigen Punkten in zufllige Richtungen gebogen. Haben wir dies getan, mchten wir in den Stamm noch eine Astgabelung integrieren. Die Bifurcation ist ein eigenes Rollout. Stellen wir hier die Bifurcation Chance auf den Wert 1, gehen wir sicher, dass eine Gabelung in jedem Fall stattfindet.
    Das Spot-Property kann die Gabelung entlang der Stammlnge verschieben. Um diesen zweiten Ast, der durch die Astgabelung entstand, nun auf einer gewissen Hhe abzubrechen, stellen wir das Property Break Chance im Spine-Rollout auf 1. Im Biforcation- Bereich geben wir an, welcher Ast an welcher Stelle abgebrochen werden soll. Alle Stellen, an denen ein Ast nicht nur zu einem Vertex am Endpunkt zusammenluft, nennt man Caps. Diese knnen zum einen durch Astbruch entstehen oder durch eine Ast dicke, die am Astende noch nicht auf 0 zurckgefahren wurde. Wie es zum Beispiel an dem anderen Ende unseres Hauptastes der Fall ist.
    Um nun an diesen Caps schne abgesplitterte Abbruchstellen zu bekommen, brauchen wir noch ein paar mehr Polygonsegmente in den Cap-Bereichen, die wir im Segments- Rollout und dort unter Cap einstellen knnen. Ein entsprechendes Cap-Material erstellen wir uns auf dieselbe Weise wie die anderen, und weisen dieses den Cap-Bereichen zu.
    Die Wurzelanstze, die man im unteren Bereich des Stammes erkennen kann, werden in SpeedTree Flares genannt. Diese finden wir im Branch-Rollout unter eben jener Bezeichnung. Haben wir all diese Vernderungen vorgenommen, sieht unser Baumstamm schon interessanter aus. Dennoch fehlt den Level 1-Branches noch dieselbe Behandlung. Zudem wollen wir auch die Anzahl unserer generierten ste verringern und tragen im Generation-Rollout einen geringeren Wert ein. Hat man dies alles erledigt, macht es bei den sten noch Sinn, diese per Hand an passende Stellen zu schieben.
    Man hat in SpeedTree jederzeit die Mglichkeit, nicht nur einen Node in seiner Gesamtheit zu bearbeiten, sondern man hat Zugriff auf jede von ihm erzeugte Meshinstanz, indem man Allow Node Editing anschaltet.
    Dies erreichen wir mit dem Shortcut TAB oder mit einem kleinen Icon oberhalb des Viewport-Bereiches. Ist dieses aktiviert, knnen wir einzelne ste im Viewport anwhlen, drehen, verschieben oder auch in der Gre verndern.
    Man hat nun auch die Mglichkeit, auf jede prozedurale Eigenschaft einer Meshinstanz einen Offset-Wert entweder hinzu- oder abzurechnen. Man kann also einzelne ste gezielt in ihren Einstellungen zum Node abweichen lassen. So ist es zum Beispiel mglich einen Ast ganz besonders dnn im Gegensatz zu den anderen erscheinen zu lassen.

    ... Blttern ...

    Hat man nun die ste und Fronds entsprechend arrangiert und die Bltter wieder sichtbar geschaltet, so sehen wir eine unnatrlich Verteilung der Bltter und eventuell auch eine suboptimale Sillhouette. Es ist also notwendig, auch hier noch einige Vernderungen vorzunehmen. Unten sehen wir nun den Vergleich von der unvernderten Version zu einer bearbeiteten Version. Im Folgenden gehen wir kurz auf die vorgenommenen nderungen ein.
    Einige ste wurden gedreht und skaliert. Zudem gibt es auch noch einen zustzlichen Frond Node, der an den Baumstamm angefgt wurde. Dieser erzeugt noch weitere drei Fronds mit Zweigtexturen an dem Baumstamm, denen wir jedoch keinen Blattwuchs mitgeben. Das lockert das Gesamtbild etwas auf, indem die sonst verdeckten Zweige hier in den Vordergrund treten. Die Blattinstanzen selbst wurden in ihrer Anzahl reduziert. Dafr haben wir zunchst den Style in den Generation-Properties von Relative auf Absolut gestellt. Dadurch ist gewhrleistet, dass wir eine exakte Anzahl von generierten Blttern in der Frequency angeben knnen, welche sich ebenfalls in den Generation-Properties findet. Steht der Style auf relative, so wrde das Programm anhand der eingestellten Frequenz und der Astlnge, an der die Bltter erstellt werden, selbst berechnen wie viele Bltter erzeugt werden sollen.
    Zudem schalten wir Orientation und Steps aus. Mit der Orientation knnen wir Bltter in immer gleichen Abstnden zueinander plazieren und in den Steps kann man sagen, dass an den Erstellungspunkten gleich mehrere Instanzen nebeneinander erstellt werden sollen. Dies ist beispielsweise fr Stengelpflanzen jeglicher Art von Bedeutung, die an ihren Trieben jeweils zwei oder mehr Bltter an derselben Stelle austreiben. Fr unseren Baum ist dies allerdings kontraproduktiv, da die Meshinstanzen so nah beieinander liegen, dass diese unntige Polygone erzeugen. Fr die letzte Vernderung an den Blttern, widmen wir uns den Placement-Properties.
    Einige Bltter, oder besser Leafmeshes haben nach unserer Reduzierung der Blattdichte keine Verbindung mehr zu den Fronds, stehen also frei im Raum. Mithilfe der Werte Maximum und Minimum in den Placement-Properties knnen wir die Entfernung der Blattmeshes zu den Zweigen angeben. Stehen danach immer noch Blattmeshes im Raum, knnen wir diese explizit anwhlen, verschieben oder lschen.
    Haben wir dies getan, sind alle relevanten nderungen vorgenommen und unser Baum ist fertig modelliert. Es gibt allerdings noch fortgeschrittenere Mglichkeiten, Formen in SpeedTree zu beeinflussen. Auch diese wollen noch kurz besprochen werden.

    ... und Forces

    Eine sehr interessante Mglichkeit, Geometrien in SpeedTree zu verformen, bieten die sogenannten Forces, also Krfte, die man in die Szene einfgen kann und die entsprechend ihrer Art den Baum formen knnen.
    Es gibt zum Beispiel die Magnet-Force, die eine vorhandene Geometrie zu ihrem Mittelpunkt ziehen kann. Es gibt Directions, die den ganzen Baum oder einzelne ste wie bei einer Trauerweide direktional wegdrcken knnen. Dann gibt es auch eine Twist-Force, die den Ast in Spiralen wachsen lassen kann. Neben weiteren solcher prozeduralen Forces gibt es aber auch noch die Mesh-Force. Hier kann eine eigene eingeladene Geometrie als Kraft wirken. Man kann diese Geometrie beliebig in der Szene plazieren und skalieren.
    Whlt man sie an, kann man in ihren Eigenschaften angeben, wie dieses Mesh auf unseren Baum wirken soll. Eine sehr interessante Verwendung finden solche Mesh-Forces in der Benutzung als Kollisionsgeometrie fr unseren Baum. In diesem Fall wrden die ste von der Oberflche unserer Force angezogen, knnten diese aber gleichzeitig auch nicht durchdringen.
    Gibt man diesen Mesh-Forces dann auch noch ein Material, so werden diese auch im SpeedTree Modeller korrekt dargestellt. In Computerspielen setzt man diese Mglichkeit nicht allzu oft ein, da man diese speziell verformten Bume oft nur einmal an einer ganz bestimmten Stelle plazieren kann. Zum Beispiel wenn das Wurzelwerk eines Baumes um eine einzigartige Architektur herum wchst.
    Dennoch lohnt es sich unbedingt fr ausgewhle Spielbereiche, Arbeit und Ressourcen zu investieren, um erinnerungswrdige Bilder zu erschaffen.

    Ein Baum wie gemalt

    In einigen Fllen reichen all die prozeduralen Modellierungsmglichkeiten aber nicht aus. Dann mchte man vielleicht auf die komfortable Mglichkeit zurckgreifen, ste mit der Maus oder dem Wacom Tablet zu malen. Auch dies ist in SpeedTree mglich.
    Wir mssen nur die Space-Taste drcken und mit linker Maustaste einen Ast im Screenspace aufziehen. Ist es der erste Ast eines Baumes, muss man dies in dem Treenode-Radius tun, also in dem kleinen Kreis am Boden. Ansonsten kann man keinen Ast generieren. Letztlich malen wir nun einen Spline auf dem automatisch eine Ast-Geometrie erstellt wird.
    Dadurch, dass nun komplette knstlerische Freiheit gegeben ist, knnen wir mit diesem Feature auch Bume erstellen, die einem konkreten Konzept folgen. SpeedTree liefert einige Beispiele mit. Etwa die Beach Palm.

    Es ist nicht alles Gold, was glnzt

    So schn sich auch das Arbeiten mit dem SpeedTree Modeler gestaltet, es gibt einige Punkte, die einem das Leben schwer machen knnen.

    Die Kollision

    In der Regel sollte eine Spielfigur mit ihrer Umgebung kollidieren. SpeedTree ist auch in der Lage, die Bume mit speziellen Kollisionsobjekten auszustatten. Zur Auswahl stehen Sphren und Kapseln.
    Diese knnen in der verwendeten Spieleengine durch einfache Radius und Positionsberechnungen vom Physiksystem abgebildet werden. Es sind also keine Ressourcen- und performancebelastenden Physik Meshes notwendig. Der in SpeedTree integrierte Collision Generator bietet die Mglichkeit, diese Kapseln und Sphren automatisch am Baum zu generieren. Dafr suchen wir zunchst das Icon im oberen Viewport-Bereich, welches
    drei rosa Blle beinhaltet. Dort klicken wir auf den Rollout-Pfeil und fhren den Befehl Generate Collision Primitives aus. Nach einigen Detail-Einstellungen, die man hier vornehmen kann, liefert dieser Mechanismus allerdings ungengende Ergebnisse.
    Wir sehen, dass die Kapsel vom Baumstamm viel zu gro ist. Zudem sind etliche kleinere Kapseln erzeugt worden, die sich fast gnzlich berlagern. Es lsst sich zusammenfassen, dass die automatische Erzeugung der Kapseln in der Regel nicht zu gebrauchen ist. Und man kann diese Kapseln zwar von Hand setzen, aber letztlich vermisst man hier Snapping-Mechanismen oder ein zgig zu bedienendes Movement-System. Denn das derzeitige System, sieht zwar Keyboard Shortcuts fr das Movement, die Skalierung und die Rotation vor, allerdings sind diese gem des englischen Textur Layouts auf Z,X,C gemappt. Was zur Folge hat, dass man sich beim Drcken der Z-Taste regelmig vertippt, da diese im deutschen Layout in der Mitte des Keyboards sitzt. Bisher habe ich auch keine Mglichkeit gefunden, das Tastatur-Layout zu verndern. So wird das Erzeugen von Kollisionen fr SpeedTrees zur Gedultsprobe. Hat man in seinem Spiel einen Fundus von 100 oder mehr Bumen, sollte man so diszipliniert sein und direkt bei Erstellung eines jeden Baumes die Kollision mitliefern. Diese nachtrglich hinzuzufgen ist eine zermrbende Aufgabe.

    Die LOD-Stufen

    hnlich verhlt es sich mit den LOD-Stufen. Diese zu erstellen ist oftmals aufwendig, da auch diese Einstellung zunchst prozedural, also basierend auf Zahlenwerten, Wahrscheinlichkeiten und Kurven erfolgt.
    Mchte man das LODing im SpeedTree Modeller sehen und einstellen, so whlt man zunchst den Treenode aus und stellt diesen im LOD Preview Style auf Use near and far. Dann kann man sich Live im Viewport anschauen, wie der LODing-Mechanismus auf unseren Baum wirkt. Zoomt man aus dem Bild heraus, wird auf Basis der Entfernungswerte das Erscheinungsbild und die Auflsung unseres Baumes gendert. Ist man hier angekommen, kann man nun jeden einzelnen Node des Baumes einstellen. Dabei bietet das System einige Tcken. Gerade bei Computerspielen ist man darauf angewiesen, niedrigere LOD-Stufen schon bei geringen Entfernungen zur Spielerkamera einzublenden. Allerdings sind die Templates und die Bume der Library oftmals so eingestellt, dass signifikante Teile der Fronds und Bltter bei Entfernung kleiner skaliert werden, bis sie verschwinden, und einige wenige Bltter davon, grer skaliert werden, um die entstehenden Lcken wieder zu fllen. Das hat unter Umstnden bei geringen Kameradistanzen den Effekt, dass einige Blattgruppen scheinbar wachsen, wenn man sich auf sie zu bewegt.
    Diese Effekte kann man zwar mit entsprechender Einstellung unterbinden. Aber da man seinen Baum fast immer aus fertigen Bumen oder SpeedTree Templates zusammenbaut, muss man dies auch tatschlich fr jeden Baum neu einstellen. Hauptschlich sind es die Werte Branch Volume und Frond Size bei sten, bei den Zweigen der Wert Size Scale und deren Kurven. Es bietet sich also letztlich an, eigene Templates zu erstellen, die auf die speziellen Bedrfnisse angepasst sind.

    Die Einheiten

    Die SpeedTree-Bume der mitgelieferten Library sind alle grob in Feet-Einheiten modelliert. Ansonsten bietet das Programm keine verstndlich angegebenen Einheiten an. In 3ds Max knnen wir einfach das gesamte Programm auf die gewnschten Einheiten umstellen. Dies fehlt in SpeedTree. Teils, weil man es oft mit generischen Einheiten zu tun hat, teils, weil das gesamte interne Konzept von SpeedTree nun mal auf Feet und Inches basiert. Stattdessen gibt es eine Anzahl von Tools, die es dem Benutzer ermglichen, Einheiten zu konvertieren. Angefangen von Scripten fr 3ds Max, ber FBX-Konversionen im Export-Dialog bis hin zu internen SpeedTree Modelertools, die Einheiten konvertieren knnen.
    Wer einmal mit der Konvertierung von Einheiten zu tun gehabt hat, wird wissen, dass dies schnell zu allgemeiner Verwirrung fhrt. Man muss einfach viel Gedankenarbeit leisten, um einen berblick darber zu behalten, was man berhaupt tut. Dies ist leider alles andere als eingngig und intuitiv. Und man wnscht sich sehr schnell eine Einstellung in den Prferenzen, die das gesamte Programm auf die gewnschte Einheit umstellt. Insbesondere wird es schwierig, wenn man Kollisionsgeometrie (fr eine Meshforce) in den Modeller einladen mchte. Dabei ist es natrlich gewnscht, dass die tatschlichen Ausmae des Objektes gewahrt bleiben.
    Stattdessen passiert es aber stndig, dass Meshes zu gro oder viel zu klein im Modeller ankommen. Je nachdem, welches Format und welche Einstellungen man beim Export der Geometrie verwendet hat. Ich selbst habe nach einigem Ausprobieren herausgefunden, dass in 3ds Max exportierte Meshes im FBXFormat korrekt exportiert werden knnen, wenn man im FBX Save-Dialog, scene units converted to: -> Inches einstellt.

    Der Wind

    Lange Zeit war der Wind in SpeedTree tatschlich ein Sorgenkind. Und eigentlich sei er nur an dieser Stelle erwhnt, weil die Neuerung, die die Windeinstellung fr einen Baum vereinfacht, wirklich erst seit kurzer Zeit in das Programm implementiert ist.
    hnlich wie bei den LODStufen musste man jeden Node einzeln und von Hand einstellen, wie er auf einen Wind zu reagieren hat. Zustzlich gab es dann eine Winddatei, in der die Daten fr diesen Wind verankert waren. All die Einstellungsmglichkeiten aufzuzhlen, wrde hier den Rahmen sprengen. Es sei an der Stelle nur erwhnt, dass es seit kurzer Zeit einen sehr intuitiv zu bedienenden Wind Wizard gibt. Jeder Baum in SpeedTree 6.2 hat nun eigene Windparameter und reagiert nicht mehr auf eine global wirkende Winddatei. Diese Parameter werden in einigen wenigen Mausklicks mit dem Windwizard sehr brauchbar eingestellt und man muss nunmehr nur noch Kleinigkeiten an den Windeinstellungen verndern. Man gibt an, um welche Art von Baum es sich handelt, ob Palme, Laubbaum oder Busch, und welche Art von Blttern vorliegt. Kleine Bltter, so wie die der Birke, oder groe Bltter, wie etwa die des Ahorn. Sind die entsprechenden Vertexshader, die die Bewegungen am Baum dann abbilden, in die Spieleengine integriert, werden alle Windeinstellungen letztlich auch in der Engine angezeigt.

    Der Compiler

    Ein fertiger SpeedTree-Baum besteht in der Regel aus einer Baum-Datei und einigen Texturen. Die gesamte SpeeTree-Vegetation eines fertigen Spiels umfasst aber oft viele verschiedene Bumgeometrien und etliche Texturen.
    Nun ist es fr einen Realtime Renderer (eine Spieleengine ist ja nichts anderes) gnstiger, einige wenige und dafr groe Texturen aufzurufen als hunderte von kleinen Texturen. Und genau dies ist eine der Hauptaufgaben des SpeedTree Compilers.
    Hier werden die verschiedenen Texturen mehrerer Bume auf wenige groe Texturatlanten zusammengelegt und die UV-Koordinaten der Bume im Compileprozess automatisch auf diese neuen Texturpositionen umgemappt. Zustzlich werden alle prozeduralen Baummeshes in einfache Vertexpositionen umgewandelt, die direkt von der Engine ausgelesen werden knnen.
    Diese kompilierten SpeedTrees sind im Nachhinein nicht mehr vom Modeller einzu lesen und auch nicht mehr zu verndern. Sind nachtrgliche nderungen an SpeedTrees gewnscht, muss die Rohdatei verndert und neu gespeichert und der ganze Compileprozess nochmals durchgefhrt werden.

    Die letzte LOD-Stufe

    Doch nicht nur die Meshes werden speichersparend abgespeichert und die Texturen zusammengefasst. Es werden zustzlich auch alle Billboards der Bume gerendert und gleichzeitig auf Atlanten verteilt.
    Billboards sind nichts anderes als die letzte LOD-Stufe, die von einem Baum in der Engine gerendert wird. Sie besteht in der Regel aus einer Polygonplane, also zwei Triangles, die in der Engine zur Kamera ausgerichtet werden. Optional kann man auch eine horizontale Plane zustzlich rendern lassen, falls man in einem Spiel auch von oben auf die Bume herabblicken kann. Man kann einstellen, wie viele Ansichten man pro Baum berechnen lassen mchte. Die Billboards whlen sich dann je nach Kamerawinkel das nchst passende Bild aus dem Atlas aus. Bei einheitlich geformten Bumen macht es oft keinen Sinn, mehr als zwei oder drei Ansichten fr die Billboards rendern zu lassen. In dem Bildbeispiel sieht man, dass die Fichte von allen Seiten fast gleich aussieht. Bei sehr gebogenen Bumen aber ist es notwendig, mehrere Ansichten zu haben, denn man kann nie wissen, von welcher Seite sich der Spieler dem Baum nhert. Hat man bei der Palme nur eine nach rechts gebogene Ansicht fr das Billboard, aber man nhert sich dem Baum von der anderen Seite, so erscheint der Baum beim bergang zur komplexen Geometrie pltzlich nach links gebogen. Daher bruchte ein solcher Baum auch noch eine Billboard-Ansicht mit der nach links gebogenen Palme.
    Ein weiteres Feature des Billboard Compilers, ist, dass er direkt beim Erstellen der Bilder entsprechend zugeschnittene Polygonplanes erzeugt. Denn es kann sein, dass eine reine rechteckige Form fr sehr ausladende Baumformen, zu viel leeren Platz auf einem Billboard generiert. Dieser Platz wird mit einer Alpha-Maskierung gefllt und muss in der Engine stets auf Sichtbarkeit berprft werden. Im Falle eines Waldes mssten sogar mehrere Flchen hintereinander auf Sichtbarkeit berprft werden, was letztlich die Fllrate belastet.
    Die Fllrate ist die Anzahl der Texel (in der Engine dargestellte Texturpixel), die eine Grafikkarte in einer Sekunde berechnen kann. bersteigt eine Szene diese Anzahl von Texeln dadurch, dass ein und derselbe Bildschirmbereich immer wieder auf Sichtbarkeit getestet werden soll (wie es bei vielen Alpha Planes hintereinander der Fall ist), so bricht die Performance ein. Die Entwickler von SpeedTree wissen dies, und haben im Billboardgenerator die Mglichkeit gegeben, dass ungenutzte Texturbereiche durch die Billboardgeometrie abgeschnitten werden. Denn da wo keine Alphatextur auf einer Geometrie liegt, muss auch nicht auf Sichtbarkeit getestet werden. Dies wiederrum entlastet die Fllrate.

    Die Baumbibliothek

    Abschlieend sei wollen wir noch ein paar Worte ber die umfassende Baumbibliothek verlieren. Es werden in dieser Library etliche SpeedTrees in verschiedenen Kategorien angeboten.

    Die Hauptkategorien sind
    1. Broadleaves (Laubbume)
    2. Conifers (Nadelbume)
    3. Palms_&_Cacti (Palmen und Kakteen)
    4. Shrubs_&_Flowers (Bsche und Blumen)

    Zudem gibt es noch Spezial-Kategorien wie
    5. M arine
    6. H and Drawn
    7. M iscellaneous_&_Fantasy

    Insgesamt gibt es circa 180 Bume in der Library. Von den Spezialkategorien abgesehen sind diese Bume mglichst botanisch korrekt umgesetzt. Zu einem Baum gehren immer alle Texturen, alle zustzlichen Meshes, wenn welche verwendet wurden, und natrlich die Baumdatei (*.spm) selbst. Zustzlich kann es sein, dass ein Baum in verschiedenen Polygon auflsungen und in verschiedenen Formen vorliegt. So kann ein Baum in einer Frhlingsvariante, einer Herbst- und einer Wintervariante vorliegen.
    Es sei anzumerken, dass man in der Regel keinen der Bume aus der Bibliothek eins zu eins in seinem Spiel einbauen mchte. Man muss immer noch Polygoncounts tweaken oder LOD-Stufen anpassen, Shapes interessanter gestalten oder Kollisionsobjekte anpassen. Aber als Anfangspunkt kann so ein Baum immer dienen.
    Natrlich ist es mehr als hilfreich, die oft sehr guten Texturen mitgeliefert zu bekommen. Die kann man jederzeit auch fr eigene Baumkreationen einsetzen und es erspart eine Menge Zeit, diese nicht selbst erstellen zu mssen. Es gibt zwar immer mal eine Textur, die man selbst gemacht hat und die man statt einer mitgelieferten lieber benutzen mchte, aber in der Regel bleibt man aus Zeitmangel bei den Texturen der Baumbibliothek hngen. Vorausgesetzt, dass Artstyle des Spieles lsst dies zu.

    Fazit

    Seit vielen Jahren arbeite ich nun schon mit SpeedTree. So um das Jahr 2004 war das Produkt bei weitem noch nicht so ausgereift. Viele Features, Bugfixes sowie ein Facelift sind mit den Jahren hinzugekommen, aber dennoch hat sich an der grundstzlichen Art der Erstellung der Bume kaum etwas gendert. Das ist der Grund, warum SpeedTree bis heute so erfolgreich ist. Denn die Geschwindigkeit, mit der dem prozeduralen Modeler gute Ergebnisse abgerungen werden knnen, ist immens. Ist das Produkt einmal fehlerfrei in die Engine integriert, ist es auch auf Seiten der Programmierung in der Regel vollkommen wartungsfrei. Die Bume werden durch den Compiling-Prozess optimiert und korrekt eingestellte LODs wirken sich nochmals positiv auf die Spielperformance auf.
    Doch Vorsicht! Problematisch kann es werden, wenn man es sich auf Datenseite zu einfach macht. Denn es ist durchaus noch Arbeit, einen Baum komplett zu produzieren. Der Baum selbst, das LODing und die Kollision wollen fr jedes Gewchs korrekt eingestellt sein. Gro ist die Versuchung, einen mhseligen und vom Workflow her noch nicht optimal eingestellten Arbeitsschritt etwa die Kollisions- oder LOD-Erstellung vor sich herzuschieben und erst spter zu bearbeiten. So kann sich unbemerkt ein Haufen Arbeit ansammeln, der in keiner Planung auftaucht. Dieses Problem ist allerdings hausgemacht und schmlert den Wert von SpeedTree nicht. Wenn IDV noch ein funktionierendes metrisches Einheitensystem einbaut, dann gibt es nur noch wenige Bereiche, die weiter zu verbessern wren.
    Wer also nach einer Lsung fr den Vegetationsbedarf in seinem Spiel sucht, kommt heutzutage kaum noch an SpeedTree vorbei. Im brigen: SpeedTree ist seit langer Zeit integraler Bestandteil des kostenlosen Unreal
    Development Kits (UDK) von Epic. Der Modeler und der Compiler werden stets mit installiert und stehen dann in einer nicht ganz aktuellen Version in vollem Umfang zur Verfgung. Wer also SpeedTree for Games in einer Spieleengine testen will, kann hier den kompletten Workflow kennenlernen. In diesem Sinne viel Spa beim Pflanzen!

    Sascha Henrichs ist seit 1998 Environmen-Grafiker bei Piranha Bytes in Essen und hat an allen PB Games mitgewirkt. Er unterrichtet zudem seit 2007 als freier Dozent hauptschlich an der Games Academy. Arbeiten und Tutorials sind zu finden unter www.saschahenrichs.blogspot.com.

    [Bild: odin_md_akcr.jpg]
    ASUS LGA-1150 Z97-K, Intel Core i7-4770 3.4 GHz, EVGA GTX 980 Ti Hybrid ( 6.0 Gb), 16Gb DDR3, SSD OSZ Vertex 460A (240 Gb) + SSD Samsung SM951 M.2 (256 Gb), Dell Ultrasharp U2515H (2560 x 1440) + BenQ E2400HD (1920x1080)

Seite 2 von 2 « Erste 12

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhnge hochladen: Nein
  • Beitrge bearbeiten: Nein
Impressum | Наши Баннеры | Приват
World of Gothic by World of Gothic Team
Gothic, Gothic 2 & Gothic 3 are by Piranha Bytes & Egmont Interactive & JoWooD Productions AG, all rights reserved worldwide