Title: Representing 3D objects
1Representing 3D objects
- 3D coordinate systems
- Polygons and curved patches
- Methods for generating 3D models
2Introduction
- previously have looked at representing 2D images
- bitmap and Vector representation
- how can we represent 3D objects?
- rare to use 3D equivalent of pixels
- voxels colour of each point in 3D space
- normally Vector representation
- can't display directly
- need to convert to a 2D image
- shows 3D model from a particular viewpoint
3Representing 3D objects
4Representation of 3D objects
- object representated by set of vertices (points
in 3D space) - apply colour or texture (image)
- each vertex maps into particular position on
texture
tiger.x Microsoft DirectX samples
5Representing points in 3D space
- need the x, y and z coordinate of each point
- (x, y, z)
- we are familiar with the x, y coordinate system
from 2D geometry - z axis is perpendicular to the other two axes
- but which way does it go?
- there are two possibilities
- the right-handed and left-handed systems
6- Right-handed 3D coordinates
- the positive z axis comes out of the
screen/paper
7- Left-handed 3D coordinates
- the positive z axis goes into the screen/paper
8Right and left handed systems
- grasp the z-axis with the relevant hand
- curl your fingers from the positive x-axis to the
positive y-axis - your thumb will point in the positive z-direction
- or, point your thumb along the positive x-axis
- point your index finger along the positive y-axis
- the rest of your fingers will point in the
positive z-direction - why does it matter?
- models created in the two systems are mirror
images of each other - and can never be superimposed no matter how they
are rotated - just like your hands
- and many biologically active molecules
9Polygonal mesh
- vertices connected by edges to make flat polygons
- best representation for rendering
- converting to 2D image
- triangles
- guaranteed to be flat
- or quadrilaterals
- less edges
- need to make sure vertices are coplanar
10Curved patches
- shape defined by control points
- 3-D equivalent of Bezier or other curve
- edges of patch defined by 2D curve
- smoother than polygon representation
- few points needed
- more intuitive to modify (sculpt)
- usually converted to polygons for rendering
11How can we define the vertices?
- generate from existing solid objects
- start with real 3D object, find and record
suitable vertices and edges - build up from 3D primitives
- build up from 2D curves
12Generating vertices from an existing solid object
- define by hand
- tedious
- difficult to visualise in 3D
- The Utah teapot
- a early and widely-used model
- 1975
- 110 vertices
- generated by Martin Newell using graph paper,
pencil and a teapot - edited control points for Bezier patches by hand
- see "A Brief History of the Utah Teapot"
- http//www.sjbaker.org/teapot/
13Generating vertices from an existing solid object
- 3D digitiser
- manually position and click
- can use more vertices where more detail is needs
- 3D laser ranger
- automatically scan at set resolution (slices)
14Geometric primitives
- can be specified mathematically
- need only to define a few attributes
- can calculate position of vertices
- to any desired resolution
- cube
- width
- width, height, depth of cuboid
- sphere
- radius
- x2 y2 z2 r2
cube
sphere
15Geometric primitives
torus
cylinder
cone
16Constructive solid geometry
- combine primitive objects using boolean
operations - union
- intersection
- difference
17Revolving curves to create a surface
- define curve in 2D
- Bezier curve or NURB
- rotate to get 3D shape
18Lofting and sweeping
- lofting
- define a series of 2D profile curves
- stack them up to define contours of surface
- sweeping
- sweep a 2D shape along a line
- to define cylinder
- shape determines cross section
- sweep along a curve to get a twisted cylinder
193D modelling tools
- Maya
- http//usa.autodesk.com/adsk/servlet/index?siteID
123112id7639525 - 3DS Max
- http//usa.autodesk.com/adsk/servlet/index?id5659
302siteID123112 - Lightwave 3D
- http//www.newtek.com/lightwave/
- MilkShape3D
- http//www.swissquake.ch/chumbalum-soft/index.html
20Using a 3D modelling tool
- start with one of the previous techniques
- geometric primitive
- combine using boolean operations
- or revolving, lofting or sweeping 2D curves
- then edit to produce desired model
- scale, rotate, translate
- move vertex positions
- define extra vertices and polygons for more
control - duplicate vertices so they can be moved apart
- extrude faces
- sculpt NURBS models by moving control points
21Polygonal modelling with Maya
22Polygonal modelling with Maya
23NURBs modelling with Maya
- start with simple NURBs surface (patches)
- move control points to sculpt
24What makes a good model?
- more vertices finer detail
- but more space to store
- more time to render (important for games)
- some areas need more detail
- face
- near joints to allow movement
- other places can get away with less
- inside
- facing away from viewer
- less important objects
25Further work
- Kerlow
- Chapter 4 "Basic Modelling Techniques"
- Hearn and Baker
- Chapter 8 "Three-Dimensional Object
Representations " - Tutorial
- Begin polygonal modelling with Maya
- Temple example