Guest3d.ru
некоммерческий проект, цель которого объединить профессионалов для обмена опытом и знаниями в области real-time рендеринга
guest3d
2.09: Виртуальная студия: Ландшафты (Landscapes)

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

Виртуальные ландшафты обычно создаются в виде больших решетчатых поверхностей. Высота (значение Y) различных вершин обуславливает холмы и горы.

Карты высот (Height maps)
Большинство коммерческих пакетов 3D моделирования, таких, как 3D Studio Max и Maya позволяют вам создавать ландшафты напрямую или косвенно. Так называемые черно-белые 'карты высот' (‘height map’) могут определять значение Y вершин, составляющих поверхность: черный - самая нижняя точка, белый - самая верхняя.

Пожалуйста, обратитесь к справочной документации вашего рабочего пакета 3D моделирования за дополнительной информацией. Ключевые слова: ‘height map’ (карты высот), ‘displace’ (смещение).

Текстуры (Textures)
После этого к поверхности применяется одна или более текстур. Различные 'текстурные стадии' (‘texture stages’) могут быть смешаны друг с другом с помощью изображений альфа.

Множественные проходы (Multiple passes)
В Разделе 2.4, ‘Свойства поверхностей’, обсуждались основы методов смешивания в Quest3D. Для достижения эффекта, приведенного выше, и возможности его поддержки с помощью старых графических карт, рекомендуется использовать множественные проходы. Под этим подразумевается визуализация поверхности более, чем единожды и смешивание полученных результатов с помощью значения прозрачности (transparency).

Визуализация типичной поверхности ландшафта может включать следующие проходы:
1. Первый слой, например, грязь (UV set 0)
2. Второй слой, например, трава (UV set 0), примешанный по значению отдельной текстуры альфа (alpha texture) (UV set 1).
3. Слой световой карты (light map), использующий операцию умножения ‘multiply’ (UV set 1).

Небесный купол (Sky dome)
Небо в виртуальных открытых средах обычно представляется с помощью купола.

Освещение (Lighting)
Небесный свет может быть сымитирован с помощью сильного направленного освещения (directional light). Вдобавок, значения эмиссии (emissive) всех 3D объектов сцены могут быть увеличены, имитируя radiosity (непрямое освещение). Световые карты и тени реального времени также могут улучшить открытую сцену. Смотрите Раздел 2.5 для дополнительной информации по освещению и теням.

Туман (Fog)
Туман может создавать определенное настроение и глубину. Преимуществом использования тумана является открывающаяся возможность приблизить дальнюю плоскость обрезки камеры (far clipping plane), в результате чего будет повышена частота кадров. Смотрите Раздел 2.6, посвященный камерам, для получения дополнительной информации.

Рисование Природы (Nature Painting)
Многие открытые сцены в избытке изображают деревья и травы. Quest3D представляет продвинутую систему, называемую 'Рисованием Природы' (‘Nature Painting’). Она позволяет вам с легкостью добавлять сотни деревьев и кустарников в сцену. Система Рисования Природы оптимизирована для производительности сцены и использует аппаратные графические средства вашего компьютера для быстрой и эффективной визуализации сцен.

Канал Nature Generator располагается между каналами объекта Surface и 3D ObjectData. Он содержит позицию, ориентацию и масштаб (position, rotation и scale) всех его клонов, а также дополнительную информацию, применяемую ко всем клонам. Коллизирующий объект, по которому выполняется рисование, должен быть привязан к Nature Generator.

Раздел поиска пути ‘Nature / Pathfinding’ предоставляет легкий доступ ко всей своей функциональности.

Внешний вид раздела Природы / Поиска Пути (Nature / Pathfinding)

Настройки Рисования Природы (Nature Painting properties)
С помощью закладки рисования природы ‘Nature Painting’, можно управлять всеми аспектами объектного размещения. Ориентация и масштаб могут быть произвольными. Объекты могут быть размещены хаотично, или в виде групп, используя опцию ‘Area’ (область). Значение ‘Cull distance’ (исчерпывающая дистанция) может быть использовано для прекращения визуализации объектов Nature Paint за пределами заданного расстояния от камеры. Значение ‘Fade distance’ (дистанция затухания), может быть использовано для смешивания клонов с окружением, с целью маскировки жесткого исчерпывания. Перед тем, как объект Nature Paint может быть потушен, режим прозрачности (transparency) должен быть установлен правильно. Правильная настройка, ‘Alpha Value and Texture’ (Значение альфа и текстура), может быть найдена в Объектном Разделе, в закладке поверхностей ‘Surface’.

Опция ‘Face camera’ (лицом к камере), может предоставить удовлетворительные результаты, но использует большое количество энергии обработки. Рекомендуется использовать ее только на простых объектах Nature Paint, таких, как плоскости, отображающие текстуру травы.

Шаблоны (Templates)
Quest3D укомплектован рядом предварительно настроенных ландшафтов, моделями деревьем и травы. Они могут быть использованы напрямую из меню шаблонов Templates.

Урок
Необходимая сцена Quest3D:
..\Tutorials\2.9 – Landscapes\Landscapes.cgr
Необходимые шаблоны:
Objects \ Object Data \ Plants and Trees \ NatureGenerator

Шаг за шагом:

  • Откройте сцену ‘Landscapes.cgr’. Она содержит ландшафт, объект травы, готовый к рисованию природы и модель дерева. Она также содержит 3D купол неба и камеру хождения (walkthrough camera).
  • Перейдите в Объектный Раздел (Object Section).
  • Нажмите на объект ‘Landscape’, чтобы выбрать его.
  • Нажмите на поверхность ‘Dirt Layer’ в списке, чтобы выбрать ее.
  • Перейдите в закладку текстурных стадий ‘Texture Stages’, в правой части экрана.
  • Убедитесь, что выделена стадия ‘Texture Stage 1’.
  • Перейдите в закладку ‘Textures’ в правой части экрана. Обратие внимание, что подсвечена текстура, используемая на данный момент. Дваждй щелкните на текстуру, чтобы вызвать окно ее настроек.
  • Нажмите кнопку загрузки ‘Load’ и перейдите в папку ‘..\Resources\Textures\Landscapes\’. Она содержит ряд текстур местности. Выберите грязный вариант и нажмите ‘Open’ для подтверждения. Обратите внимание, что в окне предварительного просмотра появилось новое изображение. Нажмите ‘OK’ для закрытия окна Texture.
  • Нажмите на поверхность ‘Grass Layer’ в списке, чтобы выбрать ее.
  • Выберите стадию ‘Texture Stage 1’ в закладке ‘Texture Stages’.
  • В закладке ‘Textures’, дважды щелкните на подсвеченной текстуре для вызова окна ее настроек.
  • Нажмите кнопку ‘Load’ и из папки выберите вариант с травой. Нажмите ‘Open’ для подтверждения. Обратите внимание, что новое изображение отображено в окне предварительного просмотра. Нажмите ‘OK’ для закрытия окна Texture.
  • Выберите стадию ‘Texture Stage 2’ в закладке ‘Texture Stages’.
  • В закладке ‘Textures’, дважды щелкните на этой текстуре для открытия окна ее свойств.
  • Нажмите кнопку загрузки альфа ‘Load Alpha’ и из папки выберите текстуру ‘Alpha’. Нажмите ‘Open’ для подтверждения. Нажмите ‘OK’ для закрытия окна Texture.
  • Перейдите в закладку поверхностей ‘Surface’, в левой части экрана.
  • Выберите опцию прозрачности ‘Alpha Texture’ (transparancy). Обратите внимание, что два текстурных слоя ландшафта теперь смешались друг с другом.

  • Перейдите в раздел Природы / Поиска пути (Nature / Pathfinding).
  • Нажмите на объект ‘Grass Nature Generator’, чтобы выбрать его.
  • Нажмите на кнопку режима рисования (‘Paint Mode’).
  • Переместите указатель мыши по ландшафту в обзорном виде Animation 3D View. Обратите внимание, что объект следует за указателем мыши и располагается на правильной высоте находящейся под ним поверхности. Нажмите левую клавишу мыши для размещения клона плоскости травы. Разместите еще несколько плоскостей.
  • Выберите опцию ‘Face camera’ (лицом к камере), а также ‘Limit Y axis’ (ограничить по оси Y). Обратите внимание, как все клоны выровнялись по камере.
  • Установите дистанцию угасания ‘Fade distance’ на 0 и исчерпывающую дистанцию ‘Cull distance’ на 50. Обратите внимание, что чем дальше от камеры располагается клон, тем больше он сливается с окружением. Клоны за пределами 50 единиц не визуализируются совсем.
  • Снова нажмите кнопку режима рисования ‘Paint Mode’ для выхода.
  • Перейдите в Раздел Каналов (Channels Section).
  • Выберите и удалите соединение между каналами ‘3D Object Data’ и ‘Tree Leaves’.
  • Добавьте канал Nature Generator и подключите его к каналу ‘Tree Leaves’. Переименуйте его в ‘Tree Leaves Nature Generator’.
  • Подключите канал ‘3D Object Data’ к каналу ‘Tree Leaves Nature Generator’.
  • Сделайте ярлык канала ‘Collision Object’, присоединенного к каналу ‘Grass Nature Generator’ и подключите его к потомственному входу ‘Collsion Object’ канала ‘Tree Leaves Nature Generator’. Объект ‘Tree’ теперь готов к рисованию.
  • Перейдите в закладку Природы / Поиска пути (Nature / Pathfinding).
  • Нажмите на объект ‘Tree Leaves Nature Generator’, чтобы выбрать его.
  • Зажмите клавишу control и нажмите на объект ‘Tree Trunk Nature Generator’ для добавления его в выделение.
  • Нажмите на кнопку режима рисования ‘Paint Mode’.
  • В меню ‘Paint sizing options’ (опции масштабирования рисования) установите значения ‘randX’, ‘randY’ и ‘randZ’ на 0.5. Разместите несколько деревьев. Обратите внимание, как они варьируются в размерах.
  • Выберите опцию ‘Area’ (область), установите ‘Size’ (размер) на 250 и ‘Density’ (плотность) на 15%. Разместите еще несколько деревьев одинарным нажатием мыши.
  • Снова нажмите кнопку ‘Paint Mode’ для выхода.
  • Перейдите в Раздел Анимации (Animation Section).
  • Убедитесь, что обзорный вид Animation 3D View отображает сцену с помощью камеры проекта Project Camera.
  • Переключитесь в режим Run Mode.
  • Протестируйте сцену, прогулявшись по ландшафту с помощью клавиш со стрелками и мыши.

Законченная сцена:
..\Tutorials\2.9 – Landscapes\Landscapes – Complete.cgr

Если у вас есть материалы, или вы хотите дополнить существующие, если вы хотите писать новости относящиеся к технологиям реалтайм рендеринга, или имеете полезные файлы, вы можете стать резидентом Guest3D.ru. Для этого нужно написать письмо в свободной форме на admin@guest3d.ru, с указанием вашей мотивации. Кроме того, каждый резидент получает возможность создать свою страницу, ссылка на которую будет прикреплена к каждому опубликованному вами материалу.
вход