Apartments
I've
been thinking about how to build interesting residential apartment buildings,
that look more futuristic than just boxes with windows. A few ideas come
to mind:
- Surface objects - balconies, air-con units, ducting, etc.
- Surface projections - bits that stick out, and in-turn have windows/etc.
- Multi-part buildings - intersecting parts in a cluster, at different heights.
- Non-right-angle intersections - should be do-able.
- Buildings on buildings - large rooftops can recursively have smaller/similar buildings on top.
- Styling - design seed can keep same style among a cluster but different between
We'll
see how far this gets us.
Building Units
I
started on the apartment buildings by properly subdividing a building block
into obvious parts: windows, faces, friezes, separators, corners, parapets,
roof, etc.
Procedure injection points on a general building structure. |
This can
later have a variety of proper alternatives and parts switched in and out to
give them their final look. I wanted the buildings to support
intersection, so I added 'opening' parameters on each side, spending some time
getting the various combinations of opening needed working.
Rig to test support for openings in the sides of buildings. 'Unit testing for procedures' in a way. |
Two main
ways to intersect building faces occurred to me:
- Clipping - Intersect, working out where the join is and just filling each part with the usual facade (window grid, etc), making some changes to the edges to fit better.
- Culling - Intersect, but this time just cull any windows that would become split where the join should bee (replacing them with basic wall).
Clipping has the
limitation that you need to intersect at quantised positions otherwise the
windows beside and above the intersecting building won't line up, but Culling
means you will get areas with no windows.
I thought I'd try
clipping first, and with some calculation I was able to get the intersection
working.
The clipping approach in action. Windows scale to fit space. |
To
support arbitrary angle intersections though the quantising requirement is
going to be really hard to meet, so I also implemented the culling approach for comparison.
The culling approach in action. Windows are removed when not enough space. |
Seeing these in operation show's up the main pro's and con's.
The main differences between the clipping and culling approaches to building intersection. |
On balance I think the culling approach will be less messy, especially with proper surface materials and objects.
Proper Facade
Switching the placeholder geometry for more interesting design produced some promising results:
Basic design variation examples |
Next
Now I need to look at arranging these together in interesting ways for use in the city:
- Generating building clusters to fill the city blocks.
- Populating the surfaces with proper features.
- Adding some LOD support for full city use.