Создание простого воксельного объекта
Материал из CryWiki Russia
Содержание |
Как создать простой воксельный объект
Краткий обзор
Это руководство опишет вам процесс создания нависающего утеса или пещеры, используя воксельную технологию.
Что такое «воксельная технология»?
Воксельная технология позволяет вам создавать сложные трёх-размерные органические сетки в редакторе. Все это выполняется в редакторе с помощью воксельного объекта или VO (Voxel Object).
У каждого воксельного объекта (VO) есть внутренняя трёхмерная сетка (обычно элементы размером 32x32x32). Каждый элемент содержит информацию такую, как «если единица полна или пуста, то какой тип поверхности используется и каков основной цвет». Это множество используется как точка входа генератора сетки.
Во время редактирования проектировщик изменяет множество вокселей, и каждое изменение вызывает регенерацию сетки, таким образом, проектировщик получает непосредственную визуальную обратную связь. VO может использоваться и в наружных и во внутренних ситуациях.
Пример 1: утес с выступом
VO может использоваться вместе с вашей картой высот, для улучшения внешнего вида вашего ландшафта. Возможно смоделировать весь ландшафт, просто используя VO, но результат не намного более эффективен относительно использования памяти и скорости рендеринга. Скорее лучше всего смоделировать большую часть ландшафта с помощью карты высот, и затем использовать VO, чтобы добавить хорошие приправы к нему.
Настройка воксельной области
Создаем утес, как в вышеупомянутом уровне. Скажем, у нас уже есть холм, который похож на следующее изображение:
Чтобы создать бесшовную интеграцию между вашим VO и вашей картой высот, вы должны выровнять VO по отношению к сектору сетки карты высот на положения X и Y. Самый простой способ это сделать — активировать Snap to grid прежде, чем поместить VO. Размер сетки должен быть установлен в значении 64 метра, что является размером сектора ландшафта.
Также полезно включить визуальный показ сетки секторов ландшафта, введя e_terrain_bboxes 1 в консоль. Это заставит синие ограничивающие прямоугольники, изображающие сектора ландшафта, появиться в окне перспективы. Теперь, перейдите в RollupBar и выберите Misc, а затем VoxelObject, и поместите новый VO в свой уровень.
Первоначально, ваш VO будет пуст, и вы увидите только пустой красный хелпер:
Соединение с ландшафтом
Теперь, мы должны сделать так, чтобы поверхность ландшафта рендерил VO, а не движок. Выберите VO и активируйте флажок Link To Terrain в свитке параметров VoxelObject. Визуально, никаких отличий, за исключением мигания вашего VO.
Техническая информация: параметр Link To Terrain не копирует данные карты высот в воксельный массив. Он просто позволяет использовать карту высот во время генерации сеток VO. Таким образом, вы еще можете использовать редактор карты высот и рисование слоёв в вокселизированных областях. Копирование данных карты высот в VO возможно, и мы расскажем об этом в следующем примере.
Изменения вокселя
В RollupBar, зайдите в Terrain->Voxel Painter, потом в Brush Settings и выберите Create. Теперь, начните добавлять нависающую геометрию к главному краю утеса следующими шагами:
Щелкните, чтобы создать новую геометрию.
Изменяйте размеры геометрии, передвигая ползунок Radius.
Используйте функции «Align Plane» для управления геометрией, которую вы создаете. Сначала щелкните на кнопку Setup position, перемещайте и вращайте плоскость так, как вам угодно, затем щелкните по кнопке «Align to plane». Теперь нарисуйте свой воксель на плоскости.
Используйте Brush Setting->Type->Blur чтобы удалить острые края.
Пример 2: пещера
Давайте мы сделаем пещеру на том же самом холме:
Во-первых, поместите VO в желаемую область, как вы делали ранее. Так как мы хотим уйти под поверхность ландшафта, мы должны сказать физическому движку, что мы хотим сделать здесь отверстие.
В RollupBar, зайдите в Terrain, и выберите Holes и сделайте отверстие в той области, где вы хотите сделать вход в свою пещеру. Пожалуйста, заметьте, что это изменяет вашу карту высот, а не VO.
А вот отличие от предыдущего примера. Параметр LinkToTerrain не даст нам создать отверстие под ландшафтом, он позволяет только добавлять новые функции на вершину. Вместо того, чтобы использовать LinkToTerrain, мы будем копировать данные карты высот. Этим путем мы получим полный контроль над этой областью, используя инструмент Voxel Painter.
Выберите VO и нажмите кнопку Copy Terrain into Voxel в свойствах VO. Отверстие в карте высот, которое мы сделали ранее, будет не видимо — VO находится сверху оригинального сектора ландшафта.
Теперь мы можем начать делать пещеру. В RollupBar откройте Terrain и затем Voxel Painter, выберите тип Subtract. Сделайте пещеру, удерживая левую кнопку мышь, углубляйте область, где должно быть отверстие. И вновь используйте функцию «Align to plane», она здесь очень полезна.
Изменение материала воксель
В Brush Settings, выберите тип Material из выпадающего списка Type, затем выберите один из материалов в поле «Surface Types». Теперь вы можете подрисовать область вокселя, щелкнув левой кнопкой мыши.
Таким же образом, материал утеса используются для обычной покраски ландшафта, материалы для подкраски вокселя, должны иметь 3 подматериала, по одному на каждую ось (XYZ).
Мы, в качестве основы, будем использовать следующий материал:
Откройте Material Editor и выберите материал materials/voxel/rock_mine.
Создайте новый слой в окне Terrain Layers Editor.
Щеклните по кнопке «Edit Surface Types».
Создайте новый тип.
Перейдите в Material Editor и выберите материал.
Закройте Material Editor и нажмите кнопку Pick Selected.
Теперь вы можете выбрать новый материал вокселя в списке «Surface Types».
Результат
Как вы видете, после некоторой практики, можно сделать огромные результаты, дополняя существующий ландшафт вокселем, создавая отверстия и пещеры, или создать одинокий воксельный уровень.