Using City Engine
City Engine ('CE') is a powerful procedural city generator. It makes 3 dimensional cities according to rules that you give it. It has a high level of 'editability' meaning that if you don't like something that has been generated it is possible to tweak it to your own specifications (or indeed draw it from scratch). Generally you will make and texture your city models in CE and then export the result to a 3d graphics program to render it, tweak materials etc.
This thread are my baby steps using CE.
In the first image I have auto generated a street network. Lot of sliders that you can play with here such as street lengths, how you want the streets to split, how straight or curvy you want them to be etc. You will see that where an area is enclosed by streets, CE generates Lots, those are foot prints on which you 'grow' your buildings. There are commands you can give to make the lots bigger or smaller, or forbid building on a lot or number of lots or you can paint them in yourself.
The second image is a look at the programming language to make houses, you can either do this by writing code in the traditional way or use a node based interface (which is easier for me). Here I have set two variables (called attributes in CE) of height min and height max. This very simple code extrudes buildings from the lots to a random height between height min and height max. Again, the user can go to any particular lot and set the height manually if required.
The last image shows the buildings generated from this very simple code. CE allows you to import your own building objects either to place as is, or as elements to which you add code to add bits onto..but I haven't got to that bit yet!
Thanks for posting your baby steps :) It will give us a good idea how easy or difficult this program is.
lol believe me if I can use it, anyone can. I have virtually no programming experience at all. Here is the next step (getting fancy for me, lol!)
So the instructions here are:
a. scale the buildings sizes by 50% along x,y and z axes (so they are not butted up right next to each other).
b. split the houses along the y axis by exactly 3m starting from the bottom and keep splitting until you run out of house (this makes the floors, or put another way, makes new faces each of which can be textured differently).
c. make a gabled roof with a pitch of 22.5 degrees with the eaves overhanging by 1m along x and y.
that's starting to look cool already! thanks for posting this, cheers DJ
Cheers DJ....it's starting to get complicated now. Trying to split the buildings so that there are faces which can be used to put window textures on them. I ended up following the tutorial for this bit and don't really understand what I'm doing, so I'm going to have to sit down and try to analyse it properly before I move on.
Okay, this is looking great....but WHERE do you get this prog???
Can you apply a base height to the buildings? and if you can can it be done by building or area? ......okay I need to look into this..... ;)
Hi Korash, you can get it here: http://www.procedural.com/
Not sure what you mean by a 'base height', you can extrude a building from a lot by however much you want. So for example you can extrude all buildings by 3m giving you a 'base height' of 3 m. Then you can extrude again by variable amounts if you want buildings of different heights.
Been struggling a bit but getting there.
Being able to procedurally split your building walls into component facets is very important for texturing. Splitting operations can get very complex (for me) when you have to apply splits within splits. For example you split the building horizontally to make floors, you then split the building vertically to make 'tiles' i.e. places where the windows go. You might then want to split the tiles again so that you have some wall on either side of the window. The ground floor of a building usually looks quite different from the other floors, so it needs its own splitting and texturing rules.
Texturing was also a bit difficult to grasp at first, but now I think I've got it, it's not as tough as I first thought.
So here is are some buildings which all use the same construction and texture rules. If I wanted to make a building higher or lower, I can just adjust the height slider for that building and it will automatically add or subtract floors. I've just used some horrid random textures here, but obviously in a final product you would want the textures to tile properly.
The next step is to learn how to insert pre-made 3d assets, like window frames, doorways, ornaments, dormers and ledges to make the the building look properly 3d. That's going to be a toughie, but I'm probably going to spend this week just making sure that the splitting and texturing commands become second nature by doing lots more of these types of operation. After I learn how to insert 3d assets, the next step is doing mass modelling, that is bringing in instances of buildings, like balconies, turrets etc and getting the software to randomly generate buildings out of these components.
Gosh the program is cool. Which version did you buy?
And if ever you manage to get the gist of it, please create a tutorial! :)