Came across this video PCG First Steps to Advanced Development
by Chris Murphy showing off some more advanced PCG Setups and I am excited for what PCG offers and really taking it to the limits to create complete procedural tools for user generated content at runtime.
A lot of PCG relies on accessing the landscape, and from my current knowledge, the landscape system does not allow runtime generation of the landscape mesh, and dynamically creating a mesh at runtime is not able to have collision and as well, would not be accessible to PCG as the Landscape System can be.
I want to procedurally generate a landscape so that PCG can then access the attributes from the landscape, which would contain data such as Texture maps to use to determine Climate in an area:
Temperature; Elevation; Precipitation; Humidity; Solar Radiation; Flow Map for Wind Direction and Speeds; Atmospheric Pressure;
Seems like right now the largest hurdle is procedural landscapes, and how to get curvature (or mean curvature/sea level) of a surface.
Example would be a material that would combine various heightmaps to generate a single final heightmap for the landscape.
As far as i know, this is not possible. And, I need users to be able to input grayscale heightmaps (8-bit) and have them converted to 16-bit and then have a slight blur applied to smooth out the aliasing of the heightmap (So that users dont have to have complicated software to generate their own 16-bit heightmaps)
For example, I would have textures (data+height) where each pixel is 1km^2 (except height which would have an extra set for vertices)
These would be world position in the material, and would represent a region, which would be the largest landscape or smaller in size, and data represents 1km^2
Then, locations, which would be an actual Landscape,
- This hightmap would have a “baked” curve of what it needs to be, based on the radius of the overall object (planet), and the dimensions of the landscape and the landscapes elevation from the center of the object (planet)
The Location would be a level that would procedurally generate the landscape when loading the level (or level instance) and the level would have a position relative to the center of the object (planet) using longitude/latitude/elevation
I could see doing this using dynamic mesh creation, but then I lose the abilit to get landscape attributes and as far as I know, collision
If i can get the landscape created, then I can use the data to generate points on the landscape using the data to filter what level instances to place etc.