Rendering CAD Models (Part 1)
A first in a series, the CAD files to Rendering is a documentation of issues and thoughts of how I recommend moving from a CAD application (I’ll be using Pro/ENGINEER) to a rendering application (I’ll be referencing Softimage XSI, Cinema 4D, PolyTrans).
To move our CAD files to a rendering application you will want to flavour the solutions based on the end use intent. Some examples:
- Visualization (i.e. real-time) or gaming centric type applications you will be aiming for high polygon efficiency (low poly count) and good visual accuracy.
- Photoreal rendering (stills) will require polygon precision (high poly count) and high visual accuracy. You will want to preserve features like fillets and chamfers, but this can drive poly counts insanely high.
- Animation will typically require medium to high polygon precision (medium to high poly count) and high visual accuracy. If we are doing simulations it is important that we are trying to establish the proper ‘mass’ or body topology of the object(s) so that we can properly apply gravity, fluid and other physical effects.
Due to the explicitness of features modelled within a CAD model we have several challenges ahead to get a usable for rendering.
- Component count can be usually high, consider the number of discreet parts to create a typical item be it a cellphone, toaster whatever. The key here is to know that CAD files are highly descriptive and typically describe every part.
- Feature laden parts. Since the end intent of CAD files is to describe how the parts are to be manufactured we need to keep in mind that potentially every feature no matter how small is going to be represented, consider small chamfers, fillets, holes, and etc.
- Surface disruptive features. When meshing the CAD geometry one needs to pay some attention to surface disruptive features. What I mean by this is if you imagine a smooth surface quilt (think of a blanket) that we then take and punch holes into it or add a cylinder in the middle of it we end up with a surface disruption in its continuity and when we attempt to triangulate (mesh) the object we end up with potentially a rash of sliver triangles and mesh topology that looks a mess.
- Assembly hierarchy. Most CAD systems now function with parametric technology and that being said they structure the assemblies much as you would do with setting up a model for froward kinematics (parent-child relationships). Assembly hierarchy ties into issue #1 component count.
- Meshing (triangulation). Realizing that CAD geometry is based on BREP (boudary representation) and NURBS surfaces, we need to convert this type of geometry to polygonal geometry (be it triangles, quads, ngons). Meshing ties heavily into all the items above, as the number of components (spacial size of the assembly), surface disruptions all contribute to the quality of the mesh.
- Tranport File Format. We have a plethora of file formats out there and everyone has reasons to use or not to use them. We also have to consider the format of the host rendering application and the features we are trying to support with the geometry like UV coordinates, vertex normals, smoothing groups.
In Part 2, I will cover solutions to the issues I’ve described above to remedy polygon counts, heirarchy, and polygon visual accuracy.