WorldGen - Branching Node

A new Density allowing connecting paths to Position Providers
Bridging Positions - This is created with random noise for the PositionNoiseValues with PathType "MIN".

Bridging Positions - This is created with random noise for the PositionNoiseValues with PathType "MIN".

POI Cave Network - This is created with 2 layers of 3D Points with an addition of Entrance Points (Gold Pillar) and Special POI Points (Iron Pillars). PathType: "RESTRICTED_MIN", PositionNoiseValues: random. Afterwards, a FastGradientWarp is applied.

POI Cave Network - This is created with 2 layers of 3D Points with an addition of Entrance Points (Gold Pillar) and Special POI Points (Iron Pillars). PathType: "RESTRICTED_MIN", PositionNoiseValues: random. Afterwards, a FastGradientWarp is applied.

River Network - This is using the "MIN" PathType with the PositionNoiseValue being set to the continentalness which means points connect towards the lower height values - The Ocean!

River Network - This is using the "MIN" PathType with the PositionNoiseValue being set to the continentalness which means points connect towards the lower height values - The Ocean!

Procedural Brain - This is created with points created along the outside of a collection of shapes. These points are then connected with PathType "RESTRICTED_MIN" with a random PositionNoiseValues.

Procedural Brain - This is created with points created along the outside of a collection of shapes. These points are then connected with PathType "RESTRICTED_MIN" with a random PositionNoiseValues.

Alien Structure - Positions determined based off of an Occurrence Node to create Clusters as shown. PathType: "ALL"

Alien Structure - Positions determined based off of an Occurrence Node to create Clusters as shown. PathType: "ALL"

Example Cave Noise - This is created with random noise and path type set to "RESTRICTED_MIN". This can be smoothed out and less ridged with a WarpDensity

Example Cave Noise - This is created with random noise and path type set to "RESTRICTED_MIN". This can be smoothed out and less ridged with a WarpDensity

Example Vine Noise - This is created with random noise for the PositionNoiseValues and PathType "MIN". This setup creates occasional connections for example vines or molecule structures connected to rock pillars or atoms at points

Example Vine Noise - This is created with random noise for the PositionNoiseValues and PathType "MIN". This setup creates occasional connections for example vines or molecule structures connected to rock pillars or atoms at points

Example Lattice Noise - This is using the "ALL" PathType meaning the noise doesn't matter. This is also with triangular points with a slightly large MaxDistance which starts to connect diagonal positions together as well creating this dense lattice

Example Lattice Noise - This is using the "ALL" PathType meaning the noise doesn't matter. This is also with triangular points with a slightly large MaxDistance which starts to connect diagonal positions together as well creating this dense lattice

Description

--Load with the Latest Release: Update 4! Untested on Pre-Release--

This is a new density asset that allows the connection of Positions to each other!

This mod is still in development and mainly used for this project:
https://www.curseforge.com/hytale/mods/a-natural-terrain-pack

Important Notes!

1. Node Editor

Follow these steps in order to see the Branching Density inside the Node Editor:

Download and Enable the following mod:
https://www.curseforge.com/hytale/mods/renode
Open up the biome JSON file in a text editor and modify this line to say the following:

2. Performance

3D branching lines require a lot of math, so for performance reasons try to use in conjunction with the yOverride Node to utilize the quicker 2D math or the ySampled Node if needing to use 3D Lines! Performance will be continued to be worked on for future releases!

PathTypes

Valid PathTypes include "ALL", "MIN", and "RESTRICTED_MIN"

 - "ALL" works by branching all Positions together within the Position's MaxDistance.

 - "MIN" works by connecting a branch to only the minimum Position value within its MaxDistance range. Each Position's value is determined by the PositionNoiseValues Input. It is recommended to cache the Input Noise same as you would the CellValue ReturnType.


This example includes a PositionNoiseValues input that decreases in the SE direction.

 - "RESTRICTED_MIN" works by trying to connect to a Position that is both the minimum and greater than the value of itself. This helps to create more connected paths while also being able to create odd patterns. If no position is greater than itself, it'll connect to the minimum valued Position same as "MIN".


The first example uses a random PositionNoiseValues while the second uses a distance to center PositionNoiseValues to create a unique circular pattern around the center.

Example Setup

The most common example for having 1 random branch per Position for bridges, vines, etc. is setting the PathType to "MIN" and inputting a SimplexNoise into the PositionNoiseValues to randomize it!

This looks like the following in the node editor and JSON:

{
  "Type": "BranchingDensity",
  "Positions": {
    "Type": "Imported",
    "Name": "ImportedPositions"
  },
  "DistanceFunction": {
    "Type": "Euclidean"
  },
  "MaxDistance": 25,
  "PositionNoiseValues": {
    "Type": "Cache",
    "Inputs": [{
       "Type": "SimplexNoise3D",
      "ScaleXZ": 5,
      "ScaleY": 5
    }]
  },
  "PathType": "MIN"
}

The main values to modify are the "ImportedPositions", and "MaxDistance" depending on the situation. Also for caves using this example, it is recommended to change the PathType to "RESTRICTED_MIN".

The WorldGen - Branching Node Team

profile avatar
  • 3
    Followers
  • 4
    Projects
  • 601
    Downloads

More from RedEngDeveloper