3D models: how to obtain them
Like any asset, they can be bought / offsourced
3D models:
how are they produced
Manual digital modeling
Digital modeller job
2D concepts / Sketches 2D concept
artist
3D modeller
3D low poly mesh
3D models:
how are they produced
Digital modeling techniques:
Direct low poly
e.g. using Wings3D
Subdivision surfaces
e.g. using Blender
Digital sculpting
e.g. using with Z-brush
Mesh authoring / editing:
a few applications
3D Studio Max (autodesk) , Maya(autodesk) , Cinema4D (maxon) Lightweight 3D (NewTek), Modo(The Foundry) , …
general, powerful, complete
Blender
also, but open-source and freeware (like: Gimp VS. Adobe Photoshop for 2D images)
MeshLab
open-source, big collection of geometry processing algorithms
AutoCAD (autodesk), SolidWorks(SolidThinking)
for CAD
ZBrush(pixologic), + Sculptris, Mudbox(autodesk)
virtual sculpting metaphore,
Wings3D
a toy; open-source, small, specialized in low-poly editing, subdivision surfaces (Doo-Sabin schema)
Rhinoceros
Direct low poly (demo)
Note: Often during creation, the meshes are polygonalinstead of triangleones. But is simple to decompose any polygon of n>3 edges to (n-2) triangles.
(either during creation, before exporting the asset, or in the game engine, at import time)
Direct low poly (demo)
1 2 3 4 5 6 7 8
9 10 11 12 13 14 17 18
19 20
21 22
23 24
25 26 27 28 29 30 31
…
Direct low poly (demo)
1 2 3 4 5 6 7 8
9 10 11 12 13 14 17 18
19 20
21 22
23 24
25 26 27 28 29 30 31
…
Digital modeling techniques for 3D models
Subdivision surfaces
Progressive refinement of the mesh from low res hi res
Excellent for smooth, organic and “clean” objects
Subdivision surfaces
WIdely used way to surface modelling
1: create one control mesh
low res
by hand
2: invoke an automatic refinement step
faces and vertices are added
a smoother, higher version of the mesh is created
3: maybe: reshape the result
4: goto 2, until result is ok
Many different mathematical schemes for step 2
With different properties
Subdivision surfaces
Example: butterfly scheme
(for tri-meshes) It’s a 14 schema
(in one subdivision step, 1 triangle is split into 4 triangles) (and one vertex is added for each edge)
coordinates / attributes of new vertices are computed from the old
in some scheme (not this one), even coords / attributes of old vertices are redefined to new positions / values
Subdivision step
POS( ) = (POS( ) + POS( ))
+ (POS( ) + POS( ))
+ (POS( ) + POS( ) + POS( ) + POS( ))
Subdivision surfaces
Example: butterfly scheme
168 8
16 162
162
16-1
16-1 16-1
16-1
168 162 16-1
Subdivision surfaces
At each subdivision step
(x,y,z) of new inserted vertices
a function of the neighbors
(x,y,z) of old vertices
Keep old position
( “interpolative” schemes) or
a function of the neighbors (“approximative” schemes)
Example: with
Catmull-Clark scheme
level 0
(“control mesh”) level 1
level 2 level 3
lvl
∞
(“limit surface”)
Subdivision surfaces
Control mesh
final mesh
Subdivision surfaces
Even iteratively:
1- Model the “control mesh”
(manual editing)
2- Subdivision
(a step)
3- Editing!
(manual editing)
4- Go to 2
(until wanted result is reached at the wanted resolution)
DEMO!
A lot of schemes…
Catmull-Clark
Doo-Sabin
Loop
sqrt(3)
Butterfly
Mid-edge
….
recent increase in popularity
(GPU friendliness)
Differences between subdivision schemes
interpolative VS approximative
only triangles, or only quads, or any polygon
complexity increase
(for one subdivision step)
limit surface properties:
existence , smoothness
existence of closed form (exact, or approximated)
Digital modeling techniques for 3D models
Techniques:
Direct low poly
e.g. wings3D
Subdivision surfaces
e.g. with blender
Digital sculpting
e.g. with Z-brush
DEMO
Digital Sculpting
chisel
3D models:
how are they produced
Manual digital modeling
Digital modeller job
2D concept artist
3D modeller
3D low poly
3D models:
how are they produced
Through 3D scanning
Technologies for obtaining 3D digital models
from real objects
3D scanning (e.g. laser scanning)
3D models:
how are they produced
3D scanning
A.k.a. automatic 3D model acquisition
Lot of different technologies
Laser scanners
Time of flight
Structured light (kinect)
…
Different characteristics
Results quality
Noise / resolution
Automatism
Invasiveness
Markers? Powder?
Real time? (kinect)
Price
Max object dimension
(full body scanner?)
3D models:
how are they produced
Through 3D scanning
Reale model Sculptor
(real)
Hi res model 3D scanning
3D models:
how are they produced
(scanned) hi res model (artistic)
manually edited PERFECT for games!
(much easier to: animate, re-edit, uvmap, …)
VS
Dino, scanned by artec3d
3D models:
how are they produced
Procedural modeling
Application that creates
«meshes of castles»
parameters
Reminder:
notes on mesh resolution
cost: linear with the number of triangles
in memory (disk, CPU RAM, GPU RAM)
in time (rendering, loading, etc)
(and, linear # of vert. with # triangles)
(rule of thumb: n verts 2n tris)
reminder: adaptive resolution is possible
higher-res in some parts
lower-res in others
Rendering quality and resolution
Una piramide di Livelli di Dettaglio
p e r f o r m a n c e
q u a l i t y
LoD (Level Of Detail) pyramid
LoD 1
2K faces
LoD 2
400 face
LoD 3
160 faces
LoD 4
60 faces
LoD (Level Of Detail) pyramid
<5 m 5m ..10 m 10 .. 30 m >30 m
LoD pyramids (Level Of Detail)
Goal:
decrease the triangle budget (total triangles number)
ideal: size of triangles in screen space (in pixel): constant
for equal elements like importance / shape compexity
Task: determining the level to use (dynamically)
depending on observer distance
depending on rendering workload
ex: lagging rendering decreasing of thresholds
(task of the rendering engine)
Task: LOD creation (asset creation)
starting from LOD-0 (higer-res)
manual, or assisted, or automatic… (see it later on)
often manual
sometimes: a LoD “-1” extra, used only in special scenes
e.g. (procedural) cut-scenes
computed from scene graph
LoD pyramids
(Level Of Detail)
LOD 0 (mesh)
GEOMETRY + ATTRIBUTES CONNECTIVITY
LOD 1 (mesh)
GEOMETRY
+ ATTRIB CO
NNECT.
LOD 2 (mesh)
G. + A. C.
~ ¼ size
For instance.:
1 K+ ¼ K+ ¼ ¼ K + ¼ ¼ ¼ K + …
= (1+ ⅓) K
Memory consumption: quite limited.
…
~ ¼ size
LoD pyramids (Level Of Detail)
Mesh (all LoDs)
GEOMETRY +
ATTRIBUTES C
O N NE C T I V I T Y
vertices of any LoD
LoD0
LoD1 Ex. alternative
data structure:
LoD pyramids (Level Of Detail)
Popping artefact: beware
to attenuate: variable thresholds, for example:
when current = LoD 2:
if (dist > 30m) switch to LoD3
when current = LoD 3:
if (dist < 25m) switch to LoD2
LoD 0 LoD 1
LoD 0 LoD 1
LoD 2 LoD 3 LoD 4
LoD 2 LoD 3 LoD 4
to decrease LoD level (go higer res):
to increase LoD level (go lower res):
0
0 dist
dist
Automatic simplification (aka “Poly-reduction”)
automatic
Simplified mesh 2K triangles Original mesh
500K triangles
parameters:
amaximum error
target number of faces
Automatic simplification (a.k.a. Poly-reduction)
Different algorithms, which can be
Adaptive, or not
adaptive: leave more triangles where needed (ex. not in flat parts)
i.e. produce a mesh with adaptive resolution!
Maximum error introduced:
can be measured and/or limited
or, no bound
Topology preserving:
can be guaranteed to be always preserved
or can be changed by the process
They work well to go from hi-res to medium-res
e.g. from 200K to 20K Triangles
Usually not well enough from low-res to lower-res
e.g.: from 1000 to 250 Triangles.
Simplified mesh != a good low-poly mesh.
Artist work required!
Mesh (pre) processing:
task useful in game industry
Poly reduction / Retopology / Simplification
e.g. LOD construction
e.g. transition from (initial) hi-res to (final) low-poly
Light baking
Light precomputation
e.g.: Ambient Occlusion
U-V map construction
parametrization / unwrapping
Texturing
creation of different types of textures
Rigging / Skinning / Animation
make the mesh animated
LATER
LATER
LATER
LATER