Introduction

Orbis is a terrain solution for Unity's new Data Oriented Technology Stack (DOTS), featuring spherical and flat terrain at any scale.

Unity DOTS

This asset is targeted at experienced programmers who are willing to work with DOTS, and willing to work with a tech stack that is still incomplete & under construction. Before you use this asset, you must familiarize yourself with what DOTS is, and how ECS programming works. It is completely different from regular Monobehaviour programming in Unity. DOTS entities and physics are completely separated from regular GameObjects, and will not be able to interact with each other.

Currently only Unity 2022.2 works with unity DOTS in the versions required for Orbis.

Most of the packages required, such as entities and the hybrid renderer are still in preview, which means that any new version might introduce breaking changes to your code and Orbis.

Quadtree LOD

A quadtree is used to increase or decrease the Level of Detail of the terrain as the player moves around. This results in an adaptive terrain resolution as the player moves around the world, and allows to maintain high fps targets. All computationally intensive tasks are performed in the background using the burst-complied Jobs.

Heightmap, procedural or mixed generation

In Orbis, you can either provide your own heightmaps for the terrain, or let it generate procedurally. You can use one of the predefined procedural generation algorithms, but it’s also possible to bring your own procedural generation algorithms. Also includes an option to randomly scatter heightmaps over the terrain, resulting in highly detailed landscapes that are partially defined by heightmaps without requiring huge heightmaps for fine detailing.

Procedural foliage placement

Add detail to the world as you move around. Foliage can be instantiated and destroyed together with the terrain nodes. Each foliage instance is a spawned as a stand-alone entity, meaning you can add your own logic to it, and use LOD groups and colliders or even rigidbody components on it.

Spawn foliage based on multiple rules, such as biome values, height or slopes steepness.

Easy to extend

All code is kept modular, and the full source code is provided when getting Orbis from the asset store. All parts of Orbis are driven using components and tags, and each node of the terrain Quadtree is represented by an entity. This allows you to easily add them to your own systems.

Fully UV Mapped

All terrains are UV mapped, and when the terrain is split into smaller chunks it still keeps it’s original uv positions, allowing you to bring your own overlay textures, such as flowmaps or biome maps.

Origin shifting system

Orbis allows to go past floating-point precision limits with an integrated origin shifting system, allowing for almost unlimited world or galaxy sizes.

Sample Shaders

There are sample shaders provided for a the terrains themselves (spherical and flat), which feature different biomes, cliff textures and peak textures. There are also sample shaders for a planet’s atmosphere from outer space and for a skydome around a planet.

Note that the sample shaders are only supposed to help get you started in making your own materials. In a production environment you’ll most likely want to supply your own shaders and materials.