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