Contents
Pick the right tool for the job
In general, subdivision surfaces have many advantages but sometimes you actually need a polygon mesh.
Subdivision surfaces
- Pros
- Perfectly smooth at any resolution.
- Can have sharp or semi-sharp features with creases and corners.
- Can be very lightweight in memory.
- Less displacement cracks (watertight)
- Cons
- Different modeling techniques/skills
- Need to tag sharp edges and vertices
- Some topological constraints (no holes or non-manifold geometry)
Polygon meshes
- Pros
- Great for heavy geometry like 3D scanned mesh
- Best for geometry that will be fractured / simmed.
- Good for models with only sharp edges that don't need displacement
- No microploygon generation if not displaced.
- Cons
- Heavy models use a lot of memory, however small they may be in the image.
- Shadow terminator may be visible on low resolution smoothed objects
- Displacement cracks may be visible
NURBs
- Pros
- Perfectly smooth at any resolution.
- Lightweight in memory
- Cons
- Quad-only modeling
- Not supported in XPU
- Not very popular nowadays
Suggested reading:
Subdivision modeling
- Always model the simplest control cage possible.
- Always view your model with smoothing or render it using PxrVisualizer.
- You can even model in a live PxrVisualizer render !
- Use creases to make sharp or semi-sharp edges without adding extra edge loops.
- Corners work like creases for vertices.
- There are 3 type of subdivision surfaces.
- Catmull-Clark is the most flexible and popular one.
- Loop is a triangle-based subdivision surface.
- No creases or corners
- useful for cloth simulations
- Bilinear is like a catmull-clark with infinitely hard creases on all edges
Tesselation
If you are coming from another renderer where you have to set subdivision levels, forget about it: tesselation of surfaces is automatic in RenderMan (we call it dicing).
The main control is the micropolygon length.
- By default, it is expressed in pixels and a micropolygonlength of 1 (the default) means that every micropolygon will be approximately 1 pixel wide.
- If you don't want the tesselation to change dynamically, you can set it in object or world space or define a dicing camera.
We recommend disabling "raster-oriented dicing", unless you see some artefacts.
Model detailing
Often, it is better to rely on displacement and bump mapping to add details.
- Displacement allows you to add larger geometric features that impact your object's outline and shadowing.
- Displacement impacts time to first pixel but doesn't slow down shading.
- Bump or normal maps will add small scale details
- Bump mapping add small cost during shading.
If you have modeled a highly detailed object in ZBrush, you should consider retopologizing and extracting a displacement map.
Memory usage and performance
Polygon meshes
- Shortest time to first pixel (TTFP) if not displaced.
- When displaced, the mesh will be diced and micropolygons generated.
- Un-displaced heavy meshes use the same amount of RAM, whether they are full screen or 2 pixels high.
Subdivision surfaces
- Slightly longer TTFP but dicing is multi-threaded and efficient.
- Use a bit more memory than meshes for the same number of vertices.
- A sparsely modeled subdiv will only contain the base mesh faces when 2 pixels high.
- This adaptivity lowers memory usage and speed up raytracing.