Planetary Terrain
Настраиваемые Процедурные Планеты для Unity.
Planetary Terrain позволяет быстро создавать собственные процедурные планеты прямо в Редакторе Unity. Используйте комбинацию процедурных функций шумов и и рисования ландшафта, чтобы создать именно те планеты, который нужен вашему проекту, от крошечных до огромных миров.
Особенности:
- Процедурно сгенерированные планеты с динамическим уровнем детализации.
- Рисование ландшафта: рисовать объекты прямо на поверхности планеты!
- Мощный редактор, основанный на нодах, для контроля процедурной генерации.
- Генерация в реальном времени для минимального размера приложения.
- Легко сохранять планеты в меши и префабы.
- Полный исходный код.
- Поддержка как Unity Free, так и Pro!
- Префабы атмосферы и воды.
Начало
Последовательность выполняемых действий:
Чтобы создать планету, нужно выполнить несколько шагов:
- Создайте или выберите модуль Terrain. Модули Terrain определяют процедурный алгоритм, который уточняет ландшафт планеты.
- Установите параметры генерации меша. Требуемый уровень детализации и ограниченный polygon/draw call? Следует ли использовать динамический LOD? На эти вопросы лучше всего ответить, попробовав различные настройки в Инспектор Planet.
- Определите текстуры поверхности и цвета. Они находятся в скрипте SurfaceColor, прикрепленном к игровому объекту планеты по умолчанию. Вы можете полностью заменить шейдер по умолчанию.
- Нарисуйте высоту. Настройки рисования и кисти находятся в Инспектор Planet во вкладке Paint. Кисти высоты изменяют высоту местности, но сохраняют процедурные детали.
- Разместите предметы. Существует скрипт под названием PlacementHelper, который можно добавить на игровой объект планеты. Этот скрипт содержит базовые функции для рисования объектов на поверхности и автоматического размещения объектов во время генерации. Может быть несколько PlacementHelper-скриптов одновременно.
- Создайте сборку. Чтобы генерация во время выполнения работала, файлы модуля Terrain должны находиться внутри папки Resources. Для минимального размера приложения очистите поверхности на планете и включите «Generate on start».
- Сохраните меши и префабы. Кнопка экспорта находится в Инспектор Planet. Он создаст префаб, содержащий все иерархии игровых объектов планеты, и сохранит меши и материалы в файлы.
Создание планеты
- Чтобы создать новую планету, перейдите в GameObject → Create Other → PlanetaryTerrain → Planet в меню редактора Unity. Это добавит новый пустой объект Planet на сцену.
- Установите «Terrain Module» в окне Инспектора. Готовые модули можно найти в папке «PlanetaryTerrain / Resources / Modules /». В качестве альтернативы вы можете создать новый модуль, нажав кнопку «Edit».
- Установите параметр «Radius» в Инспекторе, чтобы он соответствовал желаемому масштабу.
- Нажмите «Generate Now».
- См. Главу «Настройки планеты» для объяснения других настроек.
Создание модуля Terrain
- Откройте Module Editor в меню редактора Unity: Window → Planet Module Editor ИЛИ в Инспектор Planet, нажав кнопку «Edit» рядом с файлом модуля.
- Нажмите «New» в верхнем левом углу окна.
- Это вызывает график по умолчанию, который очень прост, только с одним узлом FBM и выходным нодом.
- Нажмите «Parameters» в узле FBM, чтобы изменить настройки.
- Используйте «New Generator», «New Operator» и «New Macro», чтобы добавить ноды.
- Подключите ноды, щелкнув на маленькие разъемы на их боковой стороне. Входы расположены слева, а выходы - справа.
- Подключите последний нод к Output ноду.
- Сохраните график с помощью кнопки «Save» в верхнем левом углу.
- Теперь вы можете загрузить график в Инспектор Planet, как указано выше в разделе «Creating a Planet»!
Редактирование поверхности планеты (рисование)
- Убедитесь, что на планете включены коллайдеры (в Инспектор Planet на вкладке «Generate» в разделе «Colliders» нажмите «Show», а затем отметьте «Level 0: Generate colliders»).
- Выберите Paint в Инспекторе Planet, теперь вы должны увидеть круг кисти, когда мышь наводится на планету на Сцене. Левый клик на планете применит выбранную кисть.
- Измените настройки кисти и разрешение в Инспекторе.
- Планета сохранит изменения, даже если поверхности будут удалены, изменения будут применены к любым поверхностям, сгенерированным позже. Чтобы очистить изменения, нажмите «Clear all».
Сохранение Мешей Planet
- Нажмите кнопку «Save to Assets» в Инспектор Planet.
- Выберите папку и имя файла для сохранения ассета.
- Скрипт создаст префаб всей планеты и сохранит каждую отдельный меш в папке.
Настройки планеты
Пояснения к настройкам Инспектора Planet:Generate
Terrain Module:
- Terrain Module - это файл, содержащий инструкции для генерации поверхности планеты.
- ПРИМЕЧАНИЕ. Для генерации, во время выполнения, файл должен находиться в папке «Resources», чтобы его можно было включить в сборку.
- Frequency scale - это множитель, который влияет на все генераторы в файле модуля. Это переопределение позволяет вам легко настроить масштаб объекта terrain без изменений в файле модуля.
Настройки Меша:
- Radius - устанавливает масштаб планет в единицах.
- Height variation - определяет масштаб элементов местности по отношению к радиусу.
- Mesh resolution - это размер одного участка поверхности планеты. Например, 32 означает 32x32 вершины. Рекомендуется от 16 до 64 при использовании LOD.
- Maximum - составляет 254x254 = 64516 вершин (предел юнитов составляет 65000 для одного меша).
- Subdivisions - означает, сколько раз 6 оригинальных патчей были разделены в начале. Это формирует минимальную сложность для модели до LOD.
- Например, значение деления 1 означает, что в базовой модели 6 полных поверхностей (до LOD). Значение 2 означает, что каждая из 6 поверхностей разделена на 4 меньшие поверхности, в результате чего общее количество составляет 24.
- Generate on start - определяет, должна ли Планета генерироваться в функции запуска.
- Randomize seeds - определяет, будут ли случайные seeds перетасованы при создании планеты. Доступно только в том случае, если включена функция «Generate on start».
- Generate now - генерирует планету в редакторе с текущими настройками.
- Clear - уничтожает любые существующие в настоящее время поверхности планеты.
- Для каждого уровня LOD (установленного на вкладке LOD) есть две опции:
- Generate colliders - определяет, должны ли к поверхностям добавлены меш коллайдеры.
- ВНИМАНИЕ: Генерация большого количества коллайдеров снижает производительность.
- Disable when subdividing - отключает коллайдеры на этом уровне, когда генерируется более высокий уровень.
Export
Сохраняет ассет, содержащий планету, материал и меши в пользовательскую папку.
LOD
- Use LOD - включает / отключает динамический уровень детализации системы.
- LOD target - это преобразование, которое используется для расчета расстояний при определении необходимости загрузки нового уровня LOD.
- LOD levels - определяют, насколько глубокой будет иерархия подразделения и, следовательно, насколько детализированной будет поверхность на максимальном уровне детализации.
- Level loading distances - это расстояния в единицах, когда произойдет subdivision(подразделение) на каждый уровень.
Performance
- LOD update interval - это время в секундах между проверками обновления, когда система LOD проверяет, следует ли загружать или выгружать какие-либо поверхности.
- Simultaneous subdivisions - определяет, сколько поверхностей можно подразделить одновременно. Большое число означает, что много деталей может быть получено быстро, но за счет производительности (кадров в секунду).
- Use angle culling - определяет, будут ли средства визуализации поверхности отключены, если они находятся за пределами угла отбраковки.
- Renderer culling angle - это минимальный угол между целью LOD и ближайшей точкой поверхности (относительно центра планет), когда поверхность не будет визуализирована. Это помогает отключить рендеры, которые находятся в усеченной камере, но находятся за горизонтом планеты.
Комментариев нет:
Отправить комментарий
Примечание. Отправлять комментарии могут только участники этого блога.