What's it all about?
Processing data takes time. Processing lots of data takes more time. Geometry can be very complex, requiring LOTS and LOTS of data to "accurately" represent a shape and taking a proportionate amount of time to render -- so long that it isn't worth it. So, every modeling project has an implict "polygon budget" that depends on the complexity of scene, the available computer hardware, the desired rendering quality, and the patience of the user.
There is no precise way to budget for a project, as it depends on time available to model and render, as well as how powerful your computer is (most modern software can take advantage of multi-core CPUs to render faster). However, in order to take some measure of control of your polygon budget you need to be aware of which choices might be "expensive" and there should be some way to query your model for information about complexity.
In Rhino it is important to realize that rendering is not done on the NURBS model, but on a mesh model called the rendermesh computed from the NURBS model, and that there are settings available to control the complexity of this mesh. The "PolygonCount" command (which you won't find it in a toolbar or menu) will tell you how many polygons are in a selection, and there are both a global setting ("Mesh > Render Mesh Properties > Custom" or "File > Properties > Mesh > Custom"), and an object-specific setting (Object Properties ... Render Mesh Settings: [x]Custom Mesh and Adjust settings) that you can access.
Somewhere in the modeling process or rendering pipeline all "roundish" things get turned into polygons. This is analagous to approximating a circle with a polygon. What's the "right" number? As shown at right, where 12-sided polygons are being used to approximate a circle, the answer depends on the relationship of the circle to the fininshed image. If it is large, you might need more sides. If it is small, more sides don't add anything to the image quality, but they take time to render.
Obviously, if your camera is being moved about in the geometry, the right answer may be different at different times. There may be adaptive controls (see below) or other "level of detail" mechanisms to help, but in the end, you may have to adjust the model for particular camera views to "look right". You'll need to think about model complexity and the intended use while you're building it.
For example, if you're modeling a pre-fab steel guard-rail that will be used for all the balconies of your apartment/condo complex, and it's made of tubular steel pieces, you might approximate those tubes with a square cross-section rather than a circular one and still put more geometry in a single balcony than exists in the rest of the building exterior. Alternatively, if you model individual bricks on a facade because they form a cool pattern, you're going to have a lot of geometry. Sometimes it's just inescapable, but there are a few strategies available to help you.
There is lots of good geometry out there on the web, in 3DWarehouse and other places, but most of these shapes were created as stand-alone exercises in detail. They look great close-up because they are made with lots of data. Adding one of these cars, trees, or people to your model may triple the amount of data you have, so you want to be sure the extra burden is worth it. Check the complexity before your import it, or after, and think about wither it's worth it.
"Budgeting" may seem counter-intuitive, because it sometimes requires creative "fibbing" about the geometry of the building. Maybe you leave the chamfers off the corners of your columns, or skip the supports for the handrail of your model of Gould Hall. Certainly, you don't model spaces that you aren't going to render if you can help it. There are other strategies as well...
Put your model on a diet
While it is often easier to add or create polygons than to get rid of them, most programs have tools for combining "nearly co-planar" polygons in order to reduce the complexity of the model. In Rhino this is called ReduceMesh. You might be surprised at how much mesh you can get rid of before your rendering is reduced in quality, but be aware that ReduceMesh doesn't change block instances, so fixing your imported entourage elements might be easier to do outside your main model, where you can explode and rebuild things.
Sometimes you'll simply have to build different models.. one for close-ups and one for distant shots where there is more context geometry to deal with. Some programs provide mechanisms for choosing (or having it choose) the "level of detail" object appropriate to a given view. This is one type of adaptive control.
Some programs employ "adaptive" mechanisms for approximating curves, generating more geometry when the viewpoint is "up close" and less when it is "far away". Others give you controls over the "display resolution" (not numbers of pixels, but numbers of polygons). If you're starting to do something that "feels" like it might get complex, look around in your application for complexity controls, or skip the circle and go straight to the square, even though you know the shape is round. Check into "smooth rendering" controls. Maybe you can render that square tube as "round" (see under "Rendering > Shading > Smoothing").
Texture maps give single polygons variation that allows them to display a lot of variation. Sometimes that's done with color, but there are also "bump maps" to give you that appearance of mortar lines in your brick wall, and there are "transparency maps" that make some of the geometry "see through" ... so a single polygons might be used for those balcony handrails and yet show how they're made of large-scale wire mesh .. etc.
If you need to get very close to the balcony, maybe you build one detailed model, render it go get the image of the others, slap that image on the others as a texture-map, and use the detailed model for the single "close up" of the balcony. Be adaptive. Be creative. Use the way the technology works to make your life easier.
Last updated: October, 2016