Windows and architectural trim

Since so much of The SOE_Project takes place in urban areas and dense neighborhoods, an incredible number of buildings have to be visible at any given time. This caused some serious performance issues early on in testing, so I was tasked with devising a broad solution to reduce the number of visible vertices.

I accomplished this by separating the windows and architectural detail from the body of the buildings, so that the relatively low-poly hull of the building could act as a natural occluder to half of the visible buildings' windows.

The European base set:

The real progress was made when I found a way to greatly reduce the number of vertices by fully smoothing all of the windows and trim. This required them to share a single shader whose normal map is used to define hard edges, rather than the geometry normals.

This reduced the number of vertices by an average of 40%. Since it is really the vert count that ultimately drives performance, this is a really cheap way to poly-reduce without losing visual detail. In fact, the use of unique normal maps instead of geometry normals gives a softer, more realistic edge, and this also greatly reduces "jaggies."