Sign in to follow this  

Procedural Cities

This topic is 4746 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Ok. I'm working on a project for high school involving a procedural world. It doesn't have to be renderable in real-time, so speed isn't an issue. I have terrain so far, water and clouds will come soon, but I'm contemplating putting in a procedurally generated city. Think about it, cities are generally "higher" in the center, so you could just have a texture with a white center that fades to black at the edges in a circle (white being the highest). Then you could simply have a grid (like city blocks) with some rander perturbations like superblocks and whatnot, and then add multiply the two. so you'd have roads at zero elevation (you could put in terrain factors and have San Francisco-esque cities). Then you just average all the pixels in each block, (regardless of cityblock) and you could get a huge blocky terrain, with high "buildings" in the center, and suburban low-rises on the fringes. Of course we could extend this further and get proceurally generated buildings on the blocks with procedurally generated textures, but this is highschool, I'll add those later. To those who read through this garble, what do you think? Thanky EDIT: I found a few things online, but I kind of want to develop this on my own. It'd be a great math exercise. I want to build an entire world procedurally eventually, and maybe someday realtime (LAUGH).

Share this post


Link to post
Share on other sites
I had a few good ideas on how to generate scenes procedurally, and a couple of friends of mine did most of the coding. The result was this:
http://www.binaryworlds.com/products.html

The inner workings of that are not that hard, actually. The really difficult part is describing architecture in a way that fits well in the procedural scheme.

Not your average highschool project, I am afraid...

Share this post


Link to post
Share on other sites
Height fields don't make very pretty-looking houses, I'm afraid. Houses are very strictly vertical, whereas height fields can never represent vertical surfaces. Also, houses are seldom boxes; they actually usually have all kinds of interesting profiles. Go to whatever city is closest to you with >5 story buildings, and walk down a street or two, looking at what it looks like. It might give you good ideas and insights.

Share this post


Link to post
Share on other sites
Quote:
Original post by hplus0603
Height fields don't make very pretty-looking houses, I'm afraid. Houses are very strictly vertical, whereas height fields can never represent vertical surfaces. Also, houses are seldom boxes; they actually usually have all kinds of interesting profiles. Go to whatever city is closest to you with >5 story buildings, and walk down a street or two, looking at what it looks like. It might give you good ideas and insights.


well yes, but I'm basically just getting heigh DATA, and it will be used to generate "boxy" buildings. My goals aren't a perfect simulation :P. Just enough to get the ideas across (and boxes will suffice).

I was thinking of having 2 different street modes based on l-systems. Rectangular and Radial. Then maybe some blending of the two? I could get some interesting stuff that way.

Share this post


Link to post
Share on other sites
For a minute I thought that was the paper I was going to link to... but it isn't, and now I can't find the paper I wanted. It concentrates more on the building-modelling aspect of things, as well as discussing things like LOD, to get it all working in realtime.

Share this post


Link to post
Share on other sites
As I said, I'm not too worried about speed right now. It'll be all I can do to manage the memory to get it all in! I just want to be able to generate things procedurally, and write a paper about it :D




I already saw that paper. Good paper. I understand how to get the "highways" with l-systems, by branching towards the next high-population zone as to connect them. But how does one go about creating the street infrastructure between them?
I don't want a whole mess going on with streets, I want them to by kind of orderly, but not artificial :D

Share this post


Link to post
Share on other sites
Guest Anonymous Poster

vterrain probably has links to all the extant academic papers
and demos available, well worth a look ...

http://www.vterrain.org/Culture/BldCity/procedural.html

honestly, whenever anyone actually asks anything related to
outdoor rendering / large environments / procedural generation,
I'm tempted just to reply with a single line:

www.vterrain.org.

Its your one stop shop for papers/demos/code.

Share this post


Link to post
Share on other sites
Thought you might be interested in this:
I made a 4 KB intro featuring small futuristic city which was procedurally generated.
Here's direct download link to it: http://jet.ro/files/angeles.zip (for Win XP or 2K)

I used supershapes to create the buildings - here's a good page about them: http://astronomy.swin.edu.au/~pbourke/surfaces/supershape3d/

Share this post


Link to post
Share on other sites
Quote:
Original post by jetro
Thought you might be interested in this:
I made a 4 KB intro featuring small futuristic city which was procedurally generated.
Here's direct download link to it: http://jet.ro/files/angeles.zip (for Win XP or 2K)

I used supershapes to create the buildings - here's a good page about them: http://astronomy.swin.edu.au/~pbourke/surfaces/supershape3d/



Thanks a lot! Really! ++ for you!

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Quote:
Original post by Grizwald

I understand how to get the "highways" with l-systems, by branching towards the next high-population zone as to connect them. But how does one go about creating the street infrastructure between them?
I don't want a whole mess going on with streets, I want them to by kind of orderly, but not artificial :D



It seems to me that they simply divide the remaining areas between the highways into suitably sized chunks. And adjust the shape of the resulting streets depending on the angle with which they intersect the surrounding highways.

Share this post


Link to post
Share on other sites

This topic is 4746 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this