Разработчик на Unity опубликовал подробное руководство по динамическому процедурному размещению объектов

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

Художник сдержал обещание, поделившись подробной инструкцией, детально описывающей метод динамического GPU-размещения объектов на ландшафте в Unity в стиле Horizon: Zero Dawn от студии Guerilla.

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

Также разработчик объясняет, как вычислительные шейдеры помогают исполнять логику системы, описывает понятия "области влияния" и "экотипов", а также исследует чанки системы, каждый из которых содержит указатели, становящиеся экземплярами объектов. Кроме того, Каспер делится несколькими фрагментами кода, позволяющими очень быстро и легко воссоздать систему в Unity.

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

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

Всю статью можно почитать тут.

Больше статей на Shazoo
Тэги: