by Ken Bringhurst:
Model Size Reduction Strategies
Reducing the complexity of your model can be important – whether the number of objects, the polygon count, the texture size, or any combination of these. Smaller, more efficient models can improve rendering times and allow you to use the model in real-time display (such as augmented reality, web display, iBooks illustrations, etc.) and even for 3D printing.
Users often find that it’s easier to use a lot of detail while creating their models. After all, the world is a complex place. If you dig deeper, zoom in, open things up – you’ll find more and more detail. Modeling to this realistic standard can sometimes make the process easier.
For example, if you’re modeling an in-store pallet display for a new canned beverage it’s natural to model the can in detail – including the pull tab with rivet holding it in place. Next, it’s logical to replicate the can shape 12 times to fill out the fridge-pack box. Replicating the 12 pack so that it fills one layer of boxes across the bottom of the pallet makes sense, then replicating that layer of boxes four times to complete the stack of product on the pallet display. And don’t forget to model the pallet with individual boards and nails to hold it together for a realistic look. Pallet model courtesy of Mike Swope
Using this level of detail makes a certain kind of sense. If rendering speed isn’t an issue, and you are looking for maximum realism, then it may not hurt to create that level of detail. However, this approach can result in huge, unwieldy files and unnecessarily long render times.
Even if you do model using this approach, there are things you can do both while you’re modeling and after the fact to trim things up considerably. The following sections outline some of the strategies that may make sense for your projects:
Work on a Separate Copy
Simplifying a model may entail some fairly major changes to your project. It makes sense to save a separate copy of project – and you might consider making separate copies for each presentation type you’re targeting. For example, as of this writing, the Augment augmented reality viewer has a recommend polygon count of 125,000 for optimal display. Targeting this number may require different steps than other output targets you may have.
Knowing the Numbers
The place to find out how many objects and how many polygons are in your project is the Details palette. Click on the “Info” tab, and use the “Model stats” radio button to display the information for the entire model. The top section displays key information about total object and polygon count.
The lower “Shapes” section details how many instances of shapes are contained in the model. In this case you can see that there are 124 of the 12 pack boxes, 4 layers of those 12 packs, 1,488 cans, etc. This information can be vital in helping you diagnose the complexity of your model.
Keep in mind that most of the output options you’ll want for things like real-time display and 3D printing only export the selected portion of your model – so selection can be used as a simple way to trim down what you’ll be exporting. But typically you’ll need more advanced techniques, some of which are covered in this document.
Reduce Object Count
One of the first steps in simplifying your models is to reduce the number of individual objects. In the consumer beverage example outlined above, you’ll note that there are a lot of objects that could be removed. Here are some things to consider when removing objects:
Is the Object Visible?
In our beverage example, many of the objects won’t show in a presentation rendering. Even with die cut window reveals on the corners of the 12 pack boxes, we only need to put four cans in each box. If the viewer can’t see the other eight cans that aren’t on the corners, why stress the renderer with that data?
Going further, each layer or stack on the pallet contains 31 boxes, with a total of 124 boxes on the pallet – does it make sense to show the 12 pack boxes that are hidden on the inside of the display? Probably not.
Is the Object “Detail Overkill”?
In the example model, the can has a top with the pull tab and rivet explicitly modeled.
The question that needs to be answered for this presentation of the palette is – will that fine level of detail be seen in the rendering or other presentations? If not, then the pull tab, rivet and even the entire lid could be removed or hidden.
Because this model was created using shape hierarchy, the “Can” shape can be opened and those details can be hidden. These changes will be applied to all instances of the can, wherever they might be used in the model.
Reduce Polygon Count
Once you’ve made a determination about what will and won’t be seen (or needed) the next step is to reduce the polygon count of the objects you have left.
Reducing Special Object Types
Some object types aren’t made of polygons but are still represented by polygons to the renderer. These objects include some of the primitives (which are mathematically defined objects), meld objects, 3D text, 3D Bézier spline surfaces – and others.
Many of the special objects have a “Complexity” slider and input field to allow some control over how many polygons are used to represent the object in the model view. Usually there’s an “Absolute” checkbox below the slider. Without Absolute checked, the slider effect varies based on how large the object appears in the modeling view. For the purposes of polygon reduction we want to have more absolute control – so you’ll want to check that box.
For special object types that don’t offer a complexity slider in the Object Properties palette, there may be other controls that can be used to reduce the complexity of the object. You can also use a couple of other approaches to simplify the object – add a Complexity Attribute, or Convert the object to a simpler geometry type.
Adding a Complexity Attribute
Using the Project Window, you can apply a Complexity Attribute to a selected object. This is useful for Bézier-based objects such as Extrude, Lathe, Bézier surface, etc. This option can be found in the Plus menu of the Project Window, under the “Add Attribute” section. Once you add an attribute you can find the numerical input field and the “Absolute” checkbox in the Project Window by opening the object’s down arrow, then the “Object properties” section of the object. For more details on using this option please consult the User Guide.
Convert Down to Simpler Geometry
If the object you’re dealing with is a high-level geometry type, such as an extruded object, you have the option to convert the object down to a more simple, yet still mathematically defined surface type. Taking an extrude object as an example, you have the option to convert the object into a Skin, Bezier Surface, Polygon Mesh or Polygon Group.
To access the Convert menu, select your object and then click on the object type button in the upper left of the screen – the left-most side of the Button Bar. A menu will pop down showing you the geometry types the currently selected object can be converted into.
If you convert the object to a Polygon mesh you’ll be freezing the object in it’s current state – which might be a good strategy later in your project, but for now we’re looking for ways to reduce the polygon count, not freeze it in place.
For an extrude object (continuing with our example) converting to Skin object will provide a Complexity slider and Absolute checkbox in the Object panel of the Object Properties palette. Converting to Bezier surface creates a group – the sides of your extruded object, the face and the back. In order to get to the elements that make up the group, and to get to their respective Complexity sliders, you need to open the group and select those elements one at a time to make changes.
Reducing Polygon Objects
If you have objects that you’ve modeled using polygons, and possibly subdivision surfaces, there are a series of steps you can take to reduce the complexity of these objects.
Converting Special Object Types to Polygon Mesh
When Design 3D exports a model to a third party format – such as Collada (which is the format used in the Publish 3D Content command), OBJ, DXF, etc. – the objects are reduced to polygons and are no longer described mathematically as the special object types supported in Design 3D.
It may be advantageous to convert some or all of your objects to polygons while still in Design 3D. This step will also allow you to take advantage of the polygon-only methods for reducing complexity.
Removing Detail in Polygon Edit Mode
This may be the most obvious of all the techniques described here – simply remove detail from your objects. Select faces, edges and/or vertices that are excessive and dissolve them. Look for ways to make the object less complicated, while still defining the form in a way that the final output will be successful.
Minimize the Complexity of Subdivision Surfaces
Like other special object types, subdivided polygon mesh objects provide a Complexity slider in the Object panel of the Object Properties palette. Take the slider to the lowest setting that still gives satisfactory results. You do have the option of converting the subdivision object back into a polygon mesh if you want to freeze the subdivision.
Using the Decimate Modeling Command
The final technique for reducing polygon count is the Decimate command, which is found in the Modeling menu. In the Decimate dialog, you can set these parameters:
• Percentage: Sets the percentage of reduction in polygon count. For example, a setting of 20 in this field will result in removal of approximately 20 percent of the vertices, along with the corresponding edges and triangles. • Feature Angle: Lets you set a feature angle that will help the decimation algorithm decide what edges are important to keep. If the angle between two faces is greater than the feature angle, then the decimation algorithm will attempt to keep that edge.
Note that Decimate will turn the polygons in your object into triangles, and that overall the changes Decimate will make to your object may make it difficult to use for further modeling operations. So, once again, we recommend that you work with a separate copy of your model.
Move from Explicit to Implicit
Another way to reduce your model complexity is to look for ways to create elements of your design using implicit rather than explicit means. For example, the soda can from the above project uses explicit modeling for the pull tab. This principle can be applied to an existing model or from the start whenever you model.
The pull top accounts for 5,722 polygons of the lid’s overall 7,122 polygons.
We’ve already suggested that the pull tab can simply be hidden for the full pallet presentation. But what if you want to create a presentation that shows a large number of cans where the tops are exposed?
Instead of explicitly modeling the pull tab in full detail, we can instead “imply” the pull tab through the use of texture maps. One approach would be to use separate Diffuse Color, Reflection Color and Bump/Normal maps that when combined, make the top look like a fully modeled pull tab. In the image below, you can see a combination of maps that do exactly that – imply that the pull tab is there when it’s actually not. An even simpler approach is to use only a Diffuse Color map. To the left is a map that is effectively just a rendering of the top of the can in orthographic mode (no perspective).
Using this approach, all of the anisotropic reflections, tab shadow, indentations bumped into the surface for text and spout break-away, etc. are “baked-in” to the map. You can still have some reflection and specular components to your texture if you like, but essentially, the can top is set and won’t change much of how it looks based on view angle, etc.
The fully modeled pull tab certainly looks more realistic, particularly the more edge-on the angle becomes, but the other two options may be good enough for some projects. These same principles – using textures to imply modeled detail – can work in many situations. You have to strike a balance between adding a heavy texture load when polygons might be more efficient, but in general, textures will be a lighter load for many presentation options.
NOTE: If you’re exporting with Design 3D’s Export or Publish 3D Content command, only Diffuse Color and Bump/Normal maps will be included in the model. If you’re targeting the model for 3D printing, texture maps are not a good substitute for actual modeled detail.
Using the methods above, we were able to reduce the polygon count of this palette presentation from over 13 million polygons to just a little over 400,000. With a bit more work and creativity, it would be possible to bring it down to under 200,000 polygons. If we decided that the soda can wasn’t necessary to see at all for a real-time presentation of the pallet the count drops to just over 51,000.
The best practice is to know what your target output will be for the model before you begin to create the objects. But regardless of when you decide to reduce the complexity of your model, these techniques will help you get the bulk under control.