Skip to content

Conversation

@aidandavey
Copy link
Contributor

@aidandavey aidandavey commented Oct 24, 2025

Adding a tool to the Terrain3D menu which generates Terrain3D regions from noise.

I have submitted the PR as I'd like some feedback on the general direction and usability of the tool before committing more time to it. Bugs aside, is this roughly how we want it to work?

A test scene can be found at \project\examples\generation_test.tscn

To use the tool:

  1. Select a Terrain3D node
  2. Accept that all of your data for all regions will be overwritten (this is a destructive process)
  3. From the Terrain3D menu select Generate Terrain
  4. Play with the sliders and values
  5. Middle mouse to orbit in the visualizer
  6. Press Generate

Things to do:

  • Allow creation of multiple regions, 2x2, 3x3 etc...
  • Add support for every Terrain3D region size
  • Fix visualizer height scale may not match T3D exactly
  • Set sensible defaults
  • Auto-Texture visualizer?
  • Fix slider ranges, show values etc...
  • Anything else following feedback

@aidandavey aidandavey marked this pull request as draft October 24, 2025 16:21
@TokisanGames
Copy link
Owner

  • You could link up Implement terrain generation #101, and it's related to [TRACKER] Terrain Tools Menu UI #81.
  • This is a feature for 1.2, so I won't spend much time on it until 1.1 is out.
  • It should create a new world to do its preview generation in, and not apply it to the current scene until applied.
  • The preview should be able to adopt the assets of the current scene, and specify two textures for the autoshader.
  • It needs full access to the noise library. It should basically be a noise library 3D previewer.
  • Long term we'll have a GPU workflow and will be using Auburn's GLSL noise library. We could entirely skip the CPU library and do that now with a 16-bit viewport. But we must make sure it works in compatibility mode. If not we'll have to do the CPU version for compatibillity and GPU version for Vulkan.

It will take the GLSL library, IQ's noise, and erosion in shaders to close #101.

@TokisanGames TokisanGames added the enhancement New feature or request label Oct 24, 2025
@TokisanGames TokisanGames added this to the 1.x milestone Oct 24, 2025
@MeteorShower2004
Copy link

MeteorShower2004 commented Nov 9, 2025

I think you could get inspired in HTerrain's in-editor terrain-generation. (this had get mentioned in #101)
Their image format is mostly same to ours, except that it might leave seams in the upper and left edge of region. (edited)
Note that they use multi-pass to generate, and they said that each pass costs a render frame though.

I also hope that this feature could work during runtime. It would help a lot.
(For custom generation, users can write their part of shader and before generation we "include" that )

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants