modeling and hierarchy - · pdf filemodeling primitives: polygons, subdivision surfaces,...
TRANSCRIPT
![Page 1: Modeling and Hierarchy - · PDF fileModeling Primitives: polygons, subdivision surfaces, NURBS, ... Supported by a wide variety of applications including 3ds Max, Maya, Blender,](https://reader034.vdocuments.net/reader034/viewer/2022051009/5a71ea2d7f8b9a93538d5c77/html5/thumbnails/1.jpg)
MODELING AND HIERARCHY
![Page 2: Modeling and Hierarchy - · PDF fileModeling Primitives: polygons, subdivision surfaces, NURBS, ... Supported by a wide variety of applications including 3ds Max, Maya, Blender,](https://reader034.vdocuments.net/reader034/viewer/2022051009/5a71ea2d7f8b9a93538d5c77/html5/thumbnails/2.jpg)
Introduction
Models are abstractions of the world—both of the real world
in which we live and of virtual worlds that we create with
computers.
We are all familiar with mathematical models that are used in
all areas of science and engineering.
These models use equations to model the physical phenomena
that we wish to study.
In computer science, we use abstract data types to model
organizations of objects; in computer graphics, we model our
worlds with geometric objects.
![Page 3: Modeling and Hierarchy - · PDF fileModeling Primitives: polygons, subdivision surfaces, NURBS, ... Supported by a wide variety of applications including 3ds Max, Maya, Blender,](https://reader034.vdocuments.net/reader034/viewer/2022051009/5a71ea2d7f8b9a93538d5c77/html5/thumbnails/3.jpg)
Symbols And Instances
Our first concern is how we can store a model that may
include many sophisticated objects.
There are two immediate issues:
(1)how we define an object more complex than the ones we
have dealt with until now .
(2)how we represent a collection of these objects
![Page 4: Modeling and Hierarchy - · PDF fileModeling Primitives: polygons, subdivision surfaces, NURBS, ... Supported by a wide variety of applications including 3ds Max, Maya, Blender,](https://reader034.vdocuments.net/reader034/viewer/2022051009/5a71ea2d7f8b9a93538d5c77/html5/thumbnails/4.jpg)
Modeling
Modeling primitives
Polygon
Sphere, ellipsoid, torus, superquadric
surfaces of revolutions, smoothed polygons
Particles
Skin & bones
Approaches to modeling complex shapes
Tools such as extrude, revolve, loft, split, stitch, blend
Constructive solid geometry (CSG)
Hierarchy; kinematic joints
![Page 5: Modeling and Hierarchy - · PDF fileModeling Primitives: polygons, subdivision surfaces, NURBS, ... Supported by a wide variety of applications including 3ds Max, Maya, Blender,](https://reader034.vdocuments.net/reader034/viewer/2022051009/5a71ea2d7f8b9a93538d5c77/html5/thumbnails/5.jpg)
Modeling
Primitives: polygons, subdivision surfaces, NURBS,
particles, fluids, bones, procedural
Tools: Construction, bending, twisting, shear, sweeping,
stitching, blending, etc.
Surfacing: bump mapping, cloth, skin, hair, fur, muscle
Animation: inverse kinematics, pose blending, motion
capture, keyframe animation, editable motion trails
Rendering: interactive and photo-realistic, compositing,
stereoscopic
![Page 6: Modeling and Hierarchy - · PDF fileModeling Primitives: polygons, subdivision surfaces, NURBS, ... Supported by a wide variety of applications including 3ds Max, Maya, Blender,](https://reader034.vdocuments.net/reader034/viewer/2022051009/5a71ea2d7f8b9a93538d5c77/html5/thumbnails/6.jpg)
Chapter 10 - 6
Primitives
Most common
primitive is the
polygon
Number of polygons:
tradeoff between
render time and model
accuracy
![Page 7: Modeling and Hierarchy - · PDF fileModeling Primitives: polygons, subdivision surfaces, NURBS, ... Supported by a wide variety of applications including 3ds Max, Maya, Blender,](https://reader034.vdocuments.net/reader034/viewer/2022051009/5a71ea2d7f8b9a93538d5c77/html5/thumbnails/7.jpg)
![Page 8: Modeling and Hierarchy - · PDF fileModeling Primitives: polygons, subdivision surfaces, NURBS, ... Supported by a wide variety of applications including 3ds Max, Maya, Blender,](https://reader034.vdocuments.net/reader034/viewer/2022051009/5a71ea2d7f8b9a93538d5c77/html5/thumbnails/8.jpg)
Chapter 10 - 8
Spline Curves
Linear spline
Cardinal spline
B-spline
Bezier curve
NURBS (non-
uniform rational b-
spline)
![Page 9: Modeling and Hierarchy - · PDF fileModeling Primitives: polygons, subdivision surfaces, NURBS, ... Supported by a wide variety of applications including 3ds Max, Maya, Blender,](https://reader034.vdocuments.net/reader034/viewer/2022051009/5a71ea2d7f8b9a93538d5c77/html5/thumbnails/9.jpg)
Mesh
![Page 10: Modeling and Hierarchy - · PDF fileModeling Primitives: polygons, subdivision surfaces, NURBS, ... Supported by a wide variety of applications including 3ds Max, Maya, Blender,](https://reader034.vdocuments.net/reader034/viewer/2022051009/5a71ea2d7f8b9a93538d5c77/html5/thumbnails/10.jpg)
Mesh deformations
![Page 11: Modeling and Hierarchy - · PDF fileModeling Primitives: polygons, subdivision surfaces, NURBS, ... Supported by a wide variety of applications including 3ds Max, Maya, Blender,](https://reader034.vdocuments.net/reader034/viewer/2022051009/5a71ea2d7f8b9a93538d5c77/html5/thumbnails/11.jpg)
Sweep
Sweep a shape over a path to form a generalized cylinder
![Page 12: Modeling and Hierarchy - · PDF fileModeling Primitives: polygons, subdivision surfaces, NURBS, ... Supported by a wide variety of applications including 3ds Max, Maya, Blender,](https://reader034.vdocuments.net/reader034/viewer/2022051009/5a71ea2d7f8b9a93538d5c77/html5/thumbnails/12.jpg)
Revolution
Revolve a shape around an axis to create an object with
rotational symmetry
![Page 13: Modeling and Hierarchy - · PDF fileModeling Primitives: polygons, subdivision surfaces, NURBS, ... Supported by a wide variety of applications including 3ds Max, Maya, Blender,](https://reader034.vdocuments.net/reader034/viewer/2022051009/5a71ea2d7f8b9a93538d5c77/html5/thumbnails/13.jpg)
Chapter 10 - 13
Extrusion
Extrude: grow a 2D shape
in the third dimension
Shape is created with a (1D)
b-spline curves
Hole was created by
subtracting a cylinder
![Page 14: Modeling and Hierarchy - · PDF fileModeling Primitives: polygons, subdivision surfaces, NURBS, ... Supported by a wide variety of applications including 3ds Max, Maya, Blender,](https://reader034.vdocuments.net/reader034/viewer/2022051009/5a71ea2d7f8b9a93538d5c77/html5/thumbnails/14.jpg)
Subdivision Surfaces
Can set level of polygon subdivision
![Page 15: Modeling and Hierarchy - · PDF fileModeling Primitives: polygons, subdivision surfaces, NURBS, ... Supported by a wide variety of applications including 3ds Max, Maya, Blender,](https://reader034.vdocuments.net/reader034/viewer/2022051009/5a71ea2d7f8b9a93538d5c77/html5/thumbnails/15.jpg)
![Page 18: Modeling and Hierarchy - · PDF fileModeling Primitives: polygons, subdivision surfaces, NURBS, ... Supported by a wide variety of applications including 3ds Max, Maya, Blender,](https://reader034.vdocuments.net/reader034/viewer/2022051009/5a71ea2d7f8b9a93538d5c77/html5/thumbnails/18.jpg)
Chapter 10 - 18
Algorithmic Primitives
Algorithms for trees,
mountains, grass, fur,
lightning, fire, …
![Page 19: Modeling and Hierarchy - · PDF fileModeling Primitives: polygons, subdivision surfaces, NURBS, ... Supported by a wide variety of applications including 3ds Max, Maya, Blender,](https://reader034.vdocuments.net/reader034/viewer/2022051009/5a71ea2d7f8b9a93538d5c77/html5/thumbnails/19.jpg)
Collada
Collaborative Design Activity: interchange file format for 3D
applications
Managed by Khronos Group (same as WebGL)
XML-based
Supported by a wide variety of applications including 3ds
Max, Maya, Blender, Lightwave, Unity, Unreal
Three.js support is there but buggy
Version 1.4: skinning, morphing,
animation
Version 1.5: kinematics, asset
geolocation, level of detail
Chapter 9 - 19
![Page 20: Modeling and Hierarchy - · PDF fileModeling Primitives: polygons, subdivision surfaces, NURBS, ... Supported by a wide variety of applications including 3ds Max, Maya, Blender,](https://reader034.vdocuments.net/reader034/viewer/2022051009/5a71ea2d7f8b9a93538d5c77/html5/thumbnails/20.jpg)
Interactive Computer Graphics
Chapter 10 - 20
Hierarchical models
When animation is desired, objects may have parts that move
with respect to each other
Object represented as hierarchy
Often there are joints with motion constraints
E.g. represent wheels of car as sub-objects with rotational
motion (car moves 2 pi r per rotation)
Done with “parenting”
![Page 21: Modeling and Hierarchy - · PDF fileModeling Primitives: polygons, subdivision surfaces, NURBS, ... Supported by a wide variety of applications including 3ds Max, Maya, Blender,](https://reader034.vdocuments.net/reader034/viewer/2022051009/5a71ea2d7f8b9a93538d5c77/html5/thumbnails/21.jpg)
DAG models
Could use tree torepresent object
Actually, a DAG (directed acyclicgraph) is better: can re-use objects
Note that each arrow needs aseparate modeling transform
In object-oriented graphics, alsoneed motion constraints with eacharrow
![Page 22: Modeling and Hierarchy - · PDF fileModeling Primitives: polygons, subdivision surfaces, NURBS, ... Supported by a wide variety of applications including 3ds Max, Maya, Blender,](https://reader034.vdocuments.net/reader034/viewer/2022051009/5a71ea2d7f8b9a93538d5c77/html5/thumbnails/22.jpg)
Example: Robot
Traverse DAG using DFS (or BFS)
Push and pop matrices along the way
(e.g. left-child right-sibling)
The figer shows a boxlike representation of a humanoid that
might be used for a robot model or in a virtual reality
application
![Page 23: Modeling and Hierarchy - · PDF fileModeling Primitives: polygons, subdivision surfaces, NURBS, ... Supported by a wide variety of applications including 3ds Max, Maya, Blender,](https://reader034.vdocuments.net/reader034/viewer/2022051009/5a71ea2d7f8b9a93538d5c77/html5/thumbnails/23.jpg)
Trees And Traversal
If we take the torso as the root element, we can represent this figure with the
tree shown in Figure below.
![Page 24: Modeling and Hierarchy - · PDF fileModeling Primitives: polygons, subdivision surfaces, NURBS, ... Supported by a wide variety of applications including 3ds Max, Maya, Blender,](https://reader034.vdocuments.net/reader034/viewer/2022051009/5a71ea2d7f8b9a93538d5c77/html5/thumbnails/24.jpg)
Use Of Tree Data Structures
Our second approach is to use a standard tree data structure to
represent our hierarchy and then to render it with a traversal
algorithm that is independent of the model.
We use a left-child, right-sibling structure.
![Page 25: Modeling and Hierarchy - · PDF fileModeling Primitives: polygons, subdivision surfaces, NURBS, ... Supported by a wide variety of applications including 3ds Max, Maya, Blender,](https://reader034.vdocuments.net/reader034/viewer/2022051009/5a71ea2d7f8b9a93538d5c77/html5/thumbnails/25.jpg)
Animation
The models that we developed for our two examples the robot
arm and the figure are articulated: The models consist of rigid
parts connected by joints.
We can make such models change their positions in time animate
them by altering the values of a small set of parameters.
Hierarchical models allow us to model the compound
motions incorporating the physical relationships among the parts
of the model.
What we have not discussed is how to alter the parameters over
time so as to achieve the desired motion.
![Page 26: Modeling and Hierarchy - · PDF fileModeling Primitives: polygons, subdivision surfaces, NURBS, ... Supported by a wide variety of applications including 3ds Max, Maya, Blender,](https://reader034.vdocuments.net/reader034/viewer/2022051009/5a71ea2d7f8b9a93538d5c77/html5/thumbnails/26.jpg)
Animation
Suppose you want
the robot to
pick up a can of oil
to drink. How?
You could set the
joint positions at
each moment in
the animation
(kinematics)
![Page 27: Modeling and Hierarchy - · PDF fileModeling Primitives: polygons, subdivision surfaces, NURBS, ... Supported by a wide variety of applications including 3ds Max, Maya, Blender,](https://reader034.vdocuments.net/reader034/viewer/2022051009/5a71ea2d7f8b9a93538d5c77/html5/thumbnails/27.jpg)
Inverse Kinematics
You can’t just invert the
joint transformations
Joint settings aren’t even
necessarily unique for a
hand position!
Inverse kinematics:
figure out from the hand
position where the joints
should be set.
![Page 28: Modeling and Hierarchy - · PDF fileModeling Primitives: polygons, subdivision surfaces, NURBS, ... Supported by a wide variety of applications including 3ds Max, Maya, Blender,](https://reader034.vdocuments.net/reader034/viewer/2022051009/5a71ea2d7f8b9a93538d5c77/html5/thumbnails/28.jpg)
Using Inverse Kinematics
Specify joint constraints
and priorities
Move end effector
(or object pose)
Let the system figure
out joint positions
Lightwave
![Page 29: Modeling and Hierarchy - · PDF fileModeling Primitives: polygons, subdivision surfaces, NURBS, ... Supported by a wide variety of applications including 3ds Max, Maya, Blender,](https://reader034.vdocuments.net/reader034/viewer/2022051009/5a71ea2d7f8b9a93538d5c77/html5/thumbnails/29.jpg)
Chapter 10 - 29
Keyframe Animation
In traditional key frame animation the animator draws several
important frames, and helpers do the “inbetweening” or
“tweening”
Computer animation is also key-frame based
At key frames, animator positions objects and lights, sets
parameters, etc.
The system interpolates parameter
values linearly or along a curve
To get from one object pose to the
next, ionverse kinematics determine
joint motions
![Page 30: Modeling and Hierarchy - · PDF fileModeling Primitives: polygons, subdivision surfaces, NURBS, ... Supported by a wide variety of applications including 3ds Max, Maya, Blender,](https://reader034.vdocuments.net/reader034/viewer/2022051009/5a71ea2d7f8b9a93538d5c77/html5/thumbnails/30.jpg)
Motion Capture
More realistic motion sequences can be generated
by Motion Capture
Attach joint position indicators to real actors
Record live action
![Page 31: Modeling and Hierarchy - · PDF fileModeling Primitives: polygons, subdivision surfaces, NURBS, ... Supported by a wide variety of applications including 3ds Max, Maya, Blender,](https://reader034.vdocuments.net/reader034/viewer/2022051009/5a71ea2d7f8b9a93538d5c77/html5/thumbnails/31.jpg)
![Page 32: Modeling and Hierarchy - · PDF fileModeling Primitives: polygons, subdivision surfaces, NURBS, ... Supported by a wide variety of applications including 3ds Max, Maya, Blender,](https://reader034.vdocuments.net/reader034/viewer/2022051009/5a71ea2d7f8b9a93538d5c77/html5/thumbnails/32.jpg)
Algorithms for Visibility
Question: How can you do hidden-surface removal without a
Z-buffer, or speed it up with a Z-buffer?
Is there some data structure that could be computed in
advance that would help?
![Page 33: Modeling and Hierarchy - · PDF fileModeling Primitives: polygons, subdivision surfaces, NURBS, ... Supported by a wide variety of applications including 3ds Max, Maya, Blender,](https://reader034.vdocuments.net/reader034/viewer/2022051009/5a71ea2d7f8b9a93538d5c77/html5/thumbnails/33.jpg)
BSP Trees
We can use trees to describe the world object space and
encapsulate the spatial relationships among groups of objects.
These relationships can lead to fast methods of visibility
testing to determine which objects might be seen by a camera,
thus avoiding processing all objects with tests such as the z-
buffer algorithm.
These techniques have become very important in real-time
animations for computer games
![Page 34: Modeling and Hierarchy - · PDF fileModeling Primitives: polygons, subdivision surfaces, NURBS, ... Supported by a wide variety of applications including 3ds Max, Maya, Blender,](https://reader034.vdocuments.net/reader034/viewer/2022051009/5a71ea2d7f8b9a93538d5c77/html5/thumbnails/34.jpg)
BSP-tree
The painter’s algorithm for hidden surface removal works by
drawing all faces, from back to front
How to get a listing of the faces in back-to-front order?
Put them into a binary tree and traverse the tree (but in what
order?)
![Page 35: Modeling and Hierarchy - · PDF fileModeling Primitives: polygons, subdivision surfaces, NURBS, ... Supported by a wide variety of applications including 3ds Max, Maya, Blender,](https://reader034.vdocuments.net/reader034/viewer/2022051009/5a71ea2d7f8b9a93538d5c77/html5/thumbnails/35.jpg)
BSP Tree Figures
Right is “front” of polygon; left is “back”
In and Out nodes show regions of space inside or outside the
object
![Page 36: Modeling and Hierarchy - · PDF fileModeling Primitives: polygons, subdivision surfaces, NURBS, ... Supported by a wide variety of applications including 3ds Max, Maya, Blender,](https://reader034.vdocuments.net/reader034/viewer/2022051009/5a71ea2d7f8b9a93538d5c77/html5/thumbnails/36.jpg)
BSP-tree Summary
Returns polygons not necessarily in sorted order, but in an order that is correct for back-to-front rendering
Widely used when Z-buffer hardware may not be available (e.g. game engines)
Guarantees back-to-front rendering for alpha blending
Works well (linear-time traversals) in the number of split polygons
[And we hope the number of polygons doesn’t grow too much through splitting]
![Page 37: Modeling and Hierarchy - · PDF fileModeling Primitives: polygons, subdivision surfaces, NURBS, ... Supported by a wide variety of applications including 3ds Max, Maya, Blender,](https://reader034.vdocuments.net/reader034/viewer/2022051009/5a71ea2d7f8b9a93538d5c77/html5/thumbnails/37.jpg)
Chapter 10 - 37
Handling Large Spatial Data Sets
Example application: image-based rendering
Suppose you have many digital images of a scene, with
depth information for pixels
How to find efficiently the points that are in front?
Other applications:
Speeding up ray-tracing with many objects
Rendering contours of 3D
volumetric data such as MRI scans
![Page 38: Modeling and Hierarchy - · PDF fileModeling Primitives: polygons, subdivision surfaces, NURBS, ... Supported by a wide variety of applications including 3ds Max, Maya, Blender,](https://reader034.vdocuments.net/reader034/viewer/2022051009/5a71ea2d7f8b9a93538d5c77/html5/thumbnails/38.jpg)
Quadtree
Quadtree: divide space into four quadrants. Mark as Empty,
Full, or Partially full.
Recursively subdivide partially full regions
Saves much time, space over 2D pixel data!
![Page 39: Modeling and Hierarchy - · PDF fileModeling Primitives: polygons, subdivision surfaces, NURBS, ... Supported by a wide variety of applications including 3ds Max, Maya, Blender,](https://reader034.vdocuments.net/reader034/viewer/2022051009/5a71ea2d7f8b9a93538d5c77/html5/thumbnails/39.jpg)
Interactive Computer Graphics
Chapter 10 - 39
Quadtree Structure
![Page 40: Modeling and Hierarchy - · PDF fileModeling Primitives: polygons, subdivision surfaces, NURBS, ... Supported by a wide variety of applications including 3ds Max, Maya, Blender,](https://reader034.vdocuments.net/reader034/viewer/2022051009/5a71ea2d7f8b9a93538d5c77/html5/thumbnails/40.jpg)
Chapter 10 - 40
Octrees
Generalize to cutting up a cube into 8 sub-cubes, each of
which may be E, F, or P (and subdivided)
Much more efficient
than a 3D array of
cells for 3D
volumetric data
![Page 41: Modeling and Hierarchy - · PDF fileModeling Primitives: polygons, subdivision surfaces, NURBS, ... Supported by a wide variety of applications including 3ds Max, Maya, Blender,](https://reader034.vdocuments.net/reader034/viewer/2022051009/5a71ea2d7f8b9a93538d5c77/html5/thumbnails/41.jpg)
Quadtree Algorithms
How would you
render a quadtree shape?
find the intersection of a ray with a quadtree shape?
Take the union of two quadtrees?
Intersection?
Find the neighbors of a cell?
![Page 42: Modeling and Hierarchy - · PDF fileModeling Primitives: polygons, subdivision surfaces, NURBS, ... Supported by a wide variety of applications including 3ds Max, Maya, Blender,](https://reader034.vdocuments.net/reader034/viewer/2022051009/5a71ea2d7f8b9a93538d5c77/html5/thumbnails/42.jpg)
Applications of Octrees
Contour finding in MRI data
3D scanning and rendering
Efficient ray tracing
Intersection, collision testing