Development Docs – Grandville Optimizations
Grandville, where Lord Arachnos is based, was designed to be a high level zone for end game content for City of Villains. Arachnos architecture had a strong influence on the look of the zone which meant a lot of shader passes and a high number of polygons. Mike Apolis did a beautiful job creating this zone but it clearly was pushing the limits on performance. I volunteered to do an optimization pass on Grandville. I documented my optimizations explaining my method which included tips and tool information to help benefit the team in future projects. In the end, my optimizations achieved an overall 50% reduction for the entire zone on 348 different assets with an original total of 161,000 polys optimized down to 89,000. These assets were used mutiple times in Grandville; which gave an even bigger performance gain. As a bonus, there were performance gains that trickled into other areas of the game where those same assets were used. The following is my documention:
1.1 Objective
Increase Overall Grandville Performance
Grandville had exceeded an acceptable level of performance due to high polygon counts from the Arachnos exterior assets. The overall strategy was to retain the look or silhouette of the model while reducing the polygon count so that any reduction would be undetectable to the player. The primary focus of this strategy was placed on polygon reduction with a secondary focus on the creation of LODs with time permitting.
1.2 Optimization Overview
An excessive use of polygons and hidden faces proved to be the biggest offenders.
In 3DS Max, edit poly mode offers several tools that are invaluable to quickly and effectively reducing polygons. Tools such as:
· Preserve UVs – retains texture coordinates while geometry is being manipulated. When welding/moving verts this proved to be very powerful.
· Ring – Expands an edge selection by selecting all edges parallel to the selected edges. A good example of this would be reducing the number of sides of cylindrical geometry.
· Loop – Expands the selection as far as possible, in alignment with selected edges. An example would be reducing the roundness of an arch or curved section of geometry.
· X-Ray (See-Through) – Command Alt + x. Allows you to see through the model. Helpful in finding hidden faces. Note: Also accessible through the ‘display’ tab.
Tips:
1. The ring and loop selection tools work well in conjunction with preserve UVs. It allows you to quickly reduce large sections of geometry without having to redo the texture coordinates.
2. When removing edges Holding down ctrl + remove in edit poly will also delete any verts associated with those edges. This feature is new to Max 8.
3. Sometimes deleting an edge using the remove tool will mess up the UVs even with preserve UVs checked on. You can usually work around this by instead snapping then welding the vert(s) to the nearest vert. Again you’ll want to have preserve UVs checked on.
4. It’s good to note that sometimes the texture will do the work for you more than the geometry will. In the example below the spiked decorative pieces use a reflective material offering more detail in the reflection then the extra few polys of geometry would add.
2.1 Retaining the Look
As stated previously the strategy was to reduce as many polygons as possible while retaining the look or silhouette of the model. Below are some examples to demonstrate:
2.2 Optimization Process
The following is an example walk through of the process taken for an arachnos bunker piece.
Step 1: You should always be asking yourself, “how can I make this look as good as the original but with as few polygons as possible?”What details can I afford to lose that won’t distract the player or conflict with the environment?”
With the detail offered in COV and its faster style type gameplay the players won’t miss or notice a lack of a few polygons or details here or there.
At a poly count of 356 there is a lot of detail in the curve of the trim and the spiked decorative pieces that can be removed. In addition there are unnecessary cuts in the geometry such as the edges in the middle of the model and the two edges in the back.
Step 2: We will start with the edges in the middle. Under edit poly in edge mode using the loop tool we’ll select one edge and let the tool choose the rest.
Step 3: Hold down ctrl then click remove to delete the edges and associated verts.
Step 4: Using the same techniques we’ll choose the extra edges in the back and the extra detail in the curved/wall section.
Step 5: Next well reduce the spiked geometry removing any unneeded detail. With preserve UVs still checked we will snap then weld verts to simplify the spike as well as the base reaching down.
Step 6: Finally using X-Ray mode well look to see if there are any hidden edges or faces that can be deleted. As we can see there are edges that can be deleted. Again using the remove tool we’ll delete those edges and associated verts.
Conclusion: Our final model now shows at 158 polygons down from 356. Over a 50% reduction. Shown are before and after shots.














