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

Screenshot from 2023-10-13 00-48-10

Added 2D sprites that face you at all times (billboards)

18/10/23

Screenshot from 2023-10-18 22-41-40

Added bounding boxes to imported 3D assets

24/10/23

image

Screenshot of the current terrain with trees and a few buildings. Non procedural generation. Tree placement is random

25/10/23

image

Skybox has been added which makes the scene look a lot better.

image

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)

image image

The performance is drastic. A 10+ fold increase in this scenario. With about 150 assets. In this scenario we have around 2500+ assets.

image image

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

image image Screenshot from 2023-11-23 13-06-08

11/12/23

First look at the road generation (WIP) image

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 image

later versions will hopefully round the edge off so that we can connect them together

14/12/23

Rounded edges first version Screenshot from 2023-12-14 01-08-15

30/12/23

Road finished, without shading and textures image

03/01/24

Road now has lighting image

Lighting bugs fixed Roads now look good under lighting image

31/01/24

Road generation with L-systems image

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

image

Easy to add new grammar rules

9/02/24

image

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

image

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

image

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

Screenshot from 2024-03-02 20-20-11

First buildings generated adjacent to the roads

4/03/24

Screenshot from 2024-03-04 13-22-56

Building placement errors fixed, buildings are now instance rendered.

6/03/24

Screenshot from 2024-03-06 15-48-08 image image

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

image

Randomness is being tested, can repeat the generated roads with the given seed.

image

First generation with randomness and highways linking the cities together.

11/03/24

image

Can test if a ray from the cursor goes through a OBB. This is the basis to our selection algorithm

14/03/24

image image

Instance renderer optimisations, getting 100+ FPS with 15000 assets and 8000 roads.

15/03/24

image

Runtime selection puts bounding boxes around whatever it hits.

image

Skybox selection menu

19/03/24

image

Building heights based on density

image

Skyboxes have corresponding lightings now too

image

Added sprites to the highways