Veles, also known as Volos, is a major god of earth, waters, livestock, and the underworld in Slavic paganism. Wikipedia
This plugin is an education project based on video GPU-Based Run-Time Procedural Placement in Horizon: Zero Dawn I tried to reproduce this cool part from video.
Layers system World Data
- I have a Paint Layer for custom drawing. Painted World Data
- As a mask I can use Weightmaps from landscape
- A World Data Layer is for generated specific maps (for example I tried to use Houdini to generate some mask in my test project)
Density map Here
- Texture and source type (layer or weightmap)
- A few scalar parameters for composing
- I think about how I can optimize it (texture array)
- Layer texture without mips (Horizon uses high mip for trees and lower for grass)
- Different sizes (Horizon 64px per block)
- I tried 'Dither algorithm' and it's very interesting. But I didn't include it. Here
- I have basics algorithms (Grid, Random and Blue Noise, Random Diamond variation)
- I didn't fully understand what they do here with footprint. It's beautiful.
- I generate several wavefronts and use a pattern as stamp like here
- I use idx from wavefront for random, they used stencil? mask
- I decided to use 3 vector4 instead matrix, maybe in the future..
- I used RDG (Render Dependency Graph) and didn't separate it
- They have production pipeline, more complex and with dependencies Here
- From readback I move data to Array of instances
- I use HISMC with Actors per tile. I don't support World Partition Actors, but mb in the future..
- I didn't create 'solving collision' system from here
- Heightfield Z location from texture isn't correct when we have slopes
- Don't use a normal vector from a landscape texture