CAD surfaces, it is preceded a transformation on
these surfaces, from the original continuous domain
into a discrete sampled domain.
Unlike CAD models, Game Engines represent the
objects in a scene using polygonal meshes. The
composition of polygons in a mesh serves as a linear
approximation of their underlying surface (Gregory,
2014). Triangular meshes are widely used because
triangles are automatically convex, planar, and easy
to interpolate, making geometric transformations, and
color and lightning calculations easier (Foley et al.,
1990).
2.1 Tessellation
Triangulation refers to the tessellation of surfaces into
triangles (Gregory, 2014). Triangular meshes are
typically characterized by being unstructured and
having greater freedom in the placement of nodes,
which allows to significantly reduce the number of
vertices used to represent a surface while maintaining
the same accuracy regarding the distance to the
surfaces (Shewchuk, 1999).
There are three different approaches to generating
triangular meshes identified by (Baker, 2005): the
moving/advancing front method (Lo, 1985),
Delaunay based methods (Shewchuk, 2014), and the
Octree approach.
2.2 Mesh Simplification
When generating a mesh, there exists a trade-off
between the number of polygons used and the
performance of the mesh when used in real-time
environments like game engines. This is especially
true when multiple objects are visible at the same
time, meaning some sort of optimization has to be
done in order to increase performance (Low & Tan,
1997).
Frequently, there exist vertices and faces in a
mesh that are visually redundant. When the
underlying mathematical surface of a mesh is known,
this issue can be resolved by re-meshing the surface
with a higher error tolerance. However, when the
mathematical surface is not known, mesh
simplification algorithms have to be applied to try to
obtain a good approximation. These algorithms work
by removing vertices and reconstructing polygons
into larger ones, reducing the geometry used to
represent a mesh while keeping the perceptual
difference between original and simplified at a
minimum (Talton, 2004). Even though these
algorithms tend to be faster than re-meshing, they
introduce irregularities that substantially alter the
topology of the mesh, often in an unpredictable
manner.
2.3 CAD to Geometry Conversion
While the study of surface meshing spans several
decades, the integration of CAD models into game
engines seems to be an under-explored area.
Datasmith (Datasmith, 2020) is a built-in plugin
of Unreal Engine that was first introduced in 2017,
and is currently in beta testing. Datasmith reads many
common CAD file formats, both open formats like
STEP and IGES, but also proprietary formats like the
ones used in CAD applications like SolidWorks and
3ds Max (Datasmith Overview, 2020).
Optim (Theia Optim, 2020) is also an Unreal
Engine plugin by Theia, developed on top of
Datasmith and, like Datasmith, is also in beta (Theia
Optim, 2020). Optim provides visualization tools for
an easier analysis of a generated mesh, displaying
triangle count, distribution and scale, and material
and light lists, among others (Optim Documentation,
2020). It also allows the creation of rules to optimize
imported meshes.
PiXYZ is a company focusing on CAD data, mesh
generation, and optimization (PiXYZ, 2020). They
have two main products related to mesh generation
from CAD files. The PiXYZ Plugin is available for
both Unreal Engine and Unity and works much like
Unreal's Datasmith. The user selects the CAD file,
and what tessellation quality they want. A 3D mesh is
generated and imported into the game engine (PiXYZ
Plugin, 2020). The PiXYZ Studio is a standalone
application that can import CAD files and export the
desired mesh file format. It features tessellation by
parts, hole removal, the decimation of vertices, and
provides repair functions such as removal of
duplicated faces or normal orientation unification
(PiXYZ Studio, 2020).
2.4 Automatic UV Mapping
Meshes are usually defined in three-dimensional
space, while texture images have a two-dimensional
domain. Mesh parameterization is the name given to
the process of calculating and assigning UV
coordinates to vertices of a mesh.
Most parameterization algorithms can only
handle surfaces homeomorphic to a disk. Since CAD
model parts are closed surfaces, it is necessary to
introduce seams when passing the mesh into a 2D
domain representation. This subject causes the
process of UV mapping to have two parts: the
computation of optimal cuts, as so to reduce seam