Развлечение и спорт
Июнь 2026
Клиент: собственная разработка
Задача: Строить окружения по повторяемым правилам вместо ручного размещения объектов.
Граф операторов. Визуальный редактор позволяет собирать генерацию из связанных блоков: получить поверхность, распределить точки, применить условия и разместить объекты. Изменяя параметры и связи, можно менять окружение без переписывания всей логики генератора.
PointData / AttributeSet. Разработана общая модель данных для операторов графа. PointData хранит точки будущего размещения объектов: позицию, поворот, масштаб, плотность и дополнительные свойства.
AttributeSet представляет таблицы параметров без обязательной привязки к координатам — для настройки правил и обработки данных.
Spatial-источники. Генератор работает с пространственными источниками: рельефом, поверхностями моделей, сплайнами, объёмами и текстурами. Они позволяют учитывать геометрию сцены: размещать объекты на склонах, вдоль дорог или внутри заданных областей.
Sampling - распределение точек. Реализованы способы получения точек на поверхности рельефа и моделей, а также вдоль кривых. При распределении могут учитываться площадь поверхности, её наклон и направление. Фиксированный seed обеспечивает повторяемость генерации.
Фильтры. Точки размещения отбираются по заданным условиям: уклону, плотности, пользовательским атрибутам и принадлежности области. Например, можно исключить деревья на крутых склонах, проредить растительность или ограничить генерацию контуром поляны.
Spawn - размещение объектов. После обработки точек генератор размещает в сцене выбранные объекты, используя рассчитанные координаты, повороты и размеры. Это связывает правила графа с итоговым окружением: деревьями, камнями, элементами декора и другими префабами.
Биомы. Реализована система типов окружения со своими правилами и наборами объектов. Для каждого биома можно подключить отдельный подграф генерации, а на границах смешивать распределение объектов, формируя переходы между зонами.
HiGen - иерархическая генерация. Генерация разделяется на уровни с разным размером пространственных ячеек. Общие решения рассчитываются на крупном уровне, а локальные детали — на мелком, с передачей данных между уровнями и повторным использованием результатов.
Streaming - генерация мира по частям. Окружение организовано в ячейки, которые подготавливаются и отображаются вокруг заданной точки — например, игрока или камеры. Удалённые участки выгружаются, а при возвращении восстанавливаются с тем же результатом генерации.



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