Terrain Component for Editor

We’ve had some free time recently and used it to update our component.

The codebase has been reworked and the logic is now split into tools. All tools communicate via an event bus architecture.

Currently implemented tools:

  • Cursor
  • Brush
  • PatchCursor
  • HeightMapEditor
  • SplatMapEditor
  • EntitySpawner
  • TreeEditor
  • GrassEditor

Work is in progress on porting the RoadEditor.

We also added HeightMapHistory and SplatMapHistory. These systems support offloading history data that exceeds a defined memory limit to disk or other storage. The class interfaces are flexible enough to support different storage backends.

SplatMapEditor now performs calculations on the CPU. This change was necessary to support strict logic required by SplatMapHistory. We may move it back to GPU in the future.

The component works in conjunction with our OptiPixel library.

Версия для русскоязычных:

У нас появилось немного свободного времени, и мы обновили наш компонент.

Мы переработали кодовую базу и разделили логику на инструменты. Взаимодействие между инструментами построено на архитектуре event bus.

На данный момент реализованы следующие инструменты:

  • Cursor
  • Brush
  • PatchCursor
  • HeightMapEditor
  • SplatMapEditor
  • EntitySpawner
  • TreeEditor
  • GrassEditor

Ведется работа по переносу RoadEditor.

Также добавлены HeightMapHistory и SplatMapHistory. Эти системы позволяют сгружать историю, выходящую за пределы заданного лимита памяти, на диск или в другое хранилище. Интерфейсы классов достаточно гибкие, чтобы поддерживать разные варианты хранения.

SplatMapEditor теперь выполняет расчеты на CPU. Это было необходимо для реализации строгой логики SplatMapHistory. В будущем возможно возвращение вычислений на GPU.

Компонент работает в связке с нашей библиотекой OptiPixel library.

1 Like