Progress Page - quote591/City-Generator GitHub Wiki
This page is to have a date and a current image of what has been done. This is for logging terms
13/10/23
Added 2D sprites that face you at all times (billboards)
18/10/23
Added bounding boxes to imported 3D assets
24/10/23
Screenshot of the current terrain with trees and a few buildings. Non procedural generation. Tree placement is random
25/10/23
Skybox has been added which makes the scene look a lot better.
Using perlin noise generator and 3 different building models this is what can be created. There are about 2200 building and 100 trees. Frame rate is stuttering a bit. This isn't a concern as density is very high and we can make a realistic scene with this amount of assets.
27/10/23
Caching implemented. Running against v1.0_mvp and current commit (f5de6cfa43c23536d4b4e660aef342167c434714)
The performance is drastic. A 10+ fold increase in this scenario. With about 150 assets. In this scenario we have around 2500+ assets.
First at around 35fps. Second (with cache) sits at 60 fps. The benefits are grand. Quick load time, higher frame rate and lower memory usage.
19/11/23
Point lights added. ImGui over-hall
11/12/23
First look at the road generation (WIP)
This image demo straights the ability to divide the road in to a set number of polygons and that you can give it arbitrary positions and height. The smaller lines indicate where vertexes will be on the mesh strip.
12/12/23
Road mesh has been implemented
later versions will hopefully round the edge off so that we can connect them together
14/12/23
Rounded edges first version
30/12/23
Road finished, without shading and textures
03/01/24
Road now has lighting
Lighting bugs fixed Roads now look good under lighting
31/01/24
Road generation with L-systems
Using a grammar I can generate any set of roads, all end nodes are tracked, angles and length can be changed which will allow for realistic looking generation
Easy to add new grammar rules
9/02/24
Road end node generation has been improved to deal with floating point arithmetic errors. This is a iteration 4, red roads indicate generated from end nodes
12/02/24
After learning RenderDoc debugging is now a lot faster and have started the creation of zones, here is a visual of where those areas are. Splitting those areas into cells and determining where areas are free for buildings to go will be the next section.
14/02/24
Now I can determine which zones are being crossed by a road and remove them from the pool of zones that can be considered for an asset to be put in. Red zones indicate that they are being overlapped by a road. This uses the SAT (Separating Axis Theorem) to determine collision.
2/03/24
First buildings generated adjacent to the roads
4/03/24
Building placement errors fixed, buildings are now instance rendered.
6/03/24
New assets and collision detection to remove overlapping buildings. A few lights added too to see what a night scene could look like
9/03/24
Randomness is being tested, can repeat the generated roads with the given seed.
First generation with randomness and highways linking the cities together.
11/03/24
Can test if a ray from the cursor goes through a OBB. This is the basis to our selection algorithm
14/03/24
Instance renderer optimisations, getting 100+ FPS with 15000 assets and 8000 roads.
15/03/24
Runtime selection puts bounding boxes around whatever it hits.
Skybox selection menu
19/03/24
Building heights based on density
Skyboxes have corresponding lightings now too
Added sprites to the highways