Skip to content

An editable terrain system for Godot 4, written in C++

License

Notifications You must be signed in to change notification settings

directedchaossoftware/Terrain3D

 
 

Repository files navigation

Terrain3D

An editable terrain system for Godot 4, written in C++.

Features

  • Written in C++ as a Godot gdextension plugin, which works with official engine builds
  • Geometric Clipmap mesh terrain (as used in The Witcher 3)
  • Up to 16k x 16k, sliced up in non-contiguous 1k regions (think multiple islands without paying for 16k^2 vram)
  • Up to 10 levels of detail (LODs)
  • Up to 32 textures
  • Sculpting, texture painting, texture detiling, paint colors or wetness
  • Supports importing heightmaps from HTerrain, WorldMachine, Unity, Unreal and any tool that can export a heightmap (raw/r16/exr/+)

See the Wiki for more details on project status, features, design, and usage.

Requirements

Installation & Setup

Run the demo

  1. Download the latest release and extract the files, or build the plugin from source.
  2. Run Godot, using the console executable so you can see error messages.
  3. Import the demo project and open it. Allow Godot to restart.
  4. In Project Settings / Plugins, ensure that Terrain3D is enabled.
  5. Select Project / Reload Current Project to restart once more.
  6. If the demo scene doesn't open automatically, open demo/Demo.tscn. You should see a terrain. Run it.

Install Terrain3D in your own project

  1. Download the latest release and extract the files, or build the plugin from source.
  2. Run Godot, using the console executable so you can see error messages.
  3. Copy addons/terrain_3d to your project folder in addons/terrain_3d.
  4. Open Godot, restart when it prompts.
  5. In Project Settings / Plugins, ensure that Terrain3D is enabled.
  6. Select Project / Reload Current Project to restart once more.
  7. Create or open a 3D scene and add a new Terrain3D node.
  8. Select Terrain3D in the scene tree. In the inspector, click the down arrow to the right of the storage resource and save it as a binary .res file. This is optional, but highly recommended. Otherwise it will save terrain data as text in the current scene file.
  9. Read the wiki to learn how to properly set up your textures, import data and more.

Getting Support

  1. Read through the Wiki, especially Troubleshooting.
  2. Search through the issues for known issues, or create a new one if you're sure it's not a duplicate.
  3. Join the Tokisan discord server and look for the Terrain3D section.

Credit

Developed for the Godot community by:

Architect Roope Palmroos, Outobugi Games
Project Manager Cory Petkovsek, Tokisan Games

And other contributors displayed on the right of the github page and in CONTRIBUTORS.md.

Geometry clipmap mesh code created by Mike J Savage. Blog and repository code released under the MIT license per email communication with Mike.

License

This plugin is released under the MIT license. See LICENSE.

About

An editable terrain system for Godot 4, written in C++

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 64.6%
  • GDScript 21.4%
  • Shell 6.0%
  • GLSL 4.6%
  • PowerShell 1.1%
  • AppleScript 0.9%
  • Other 1.4%