To support more natural looking environments and my future planned content I have rewritten my procedural asset placement system. I thought I'd do a small write up about it.

I initially looked into using UE5s PCG plugin but found its learning curve quite steep & some things like for example getting a meshes bounds to be overly convoluted. Or maybe its just my C++ loving ape brain hating node based interfaces idk.
It also looked like it was going to be quite hard to get custom data into the PCG system from my voxel engine. Anyway I did take inspiration from some of its principles.
My system which I call Voxel PCG features a modular staged design. Each stage is run in sequence and uses a series of passes. These passes can be overridden to have special behavior.

Each stage starts off by generating a field of random points at a desired density and then runs a series of interpretation passes on those points to reach the desired result.

For example the rock stage takes each initial point, assigns a large rock to that point and then places a grouping of small rock points around it to create natural looking group of rocks instead of a randomly scattered field.


Each stage can also interpret points generated in prior stages however they need. E.g in the old system a rock could not be placed under a tree as their bounds would overlap. Now the rock interprets the bounds to be just the trunk and as such it can be placed under the tree.

Other things like vegetation/some ambient effects are now also generated using this system and because its all just C++ you can do basically anything you want. Anyway I hope this was at least a little interesting and made some sense 😂😂
Tooley1998
2024-12-09 05:36:51 +0000 UTCAngus Keane
2024-12-09 03:42:23 +0000 UTCTooley1998
2024-12-07 01:49:46 +0000 UTCmrwoofwoof
2024-12-07 01:48:14 +0000 UTCTooley1998
2024-12-07 01:47:28 +0000 UTCTooley1998
2024-12-07 01:47:14 +0000 UTCTooley1998
2024-12-07 01:45:50 +0000 UTCTillweed
2024-12-06 17:04:35 +0000 UTCmrwoofwoof
2024-12-06 11:35:43 +0000 UTC[TheUserNameOf_TBOTUkN]
2024-12-06 07:44:17 +0000 UTCTooley1998
2024-12-06 07:22:48 +0000 UTCTooley1998
2024-12-06 07:21:24 +0000 UTCtxsss
2024-12-06 07:18:52 +0000 UTCEmil Iwarson
2024-12-06 07:11:21 +0000 UTC