Meshes - PowerPoint PPT Presentation

About This Presentation
Title:

Meshes

Description:

Vertex Definition 'v x y z': vertex with coordinates (x,y,z) 'vt u v': texture coordinates (u,v) ... Only transfers vertices once and not an expected value of 6 times ... – PowerPoint PPT presentation

Number of Views:22
Avg rating:3.0/5.0
Slides: 28
Provided by: faculty
Category:
Tags: definition | meshes | of

less

Transcript and Presenter's Notes

Title: Meshes


1
Meshes
  • Dr. Scott Schaefer

2
3D Surfaces
3
3D Surfaces
4
3D Surfaces
5
3D Surfaces
6
3D Surfaces
7
3D Surfaces
Vertex Table
8
3D Surfaces
Polygon Table
Vertex Table
9
3D Surfaces
Polygon Table
Vertex Table
10
3D File Formats
  • Way too many!
  • OBJ
  • STL
  • MA
  • PLY
  • MAX, 3DS
  • BLEND
  • DAW
  • LWO
  • X
  • .

11
OBJ File Format (Simplified)
  • Text Format Easy to read!
  • Line based file consisting of
  • Vertices (starts with v)
  • Faces (starts with f)
  • Comments (starts with )

12
OBJ File Format (Simplified)
  • Vertex Definition
  • v x y z vertex with coordinates (x,y,z)
  • vt u v texture coordinates (u,v)
  • vn nx ny nz normal (nx,ny,nz)

13
OBJ File Format (Simplified)
  • Face Definition
  • f g1/t1/n1 g2/t2/n2
  • Faces may be variable length!
  • Indexing starts at 1 not 0!
  • First index is guarantee to be geometry index
  • ti, ni are optional

14
OBJ File Format Example
  • This is a comment
  • v 0 0 0
  • v 0 1 0
  • v 1 0 0
  • v 0 0 1
  • f 1 2 3
  • f 1 3 4
  • f 1 4 2
  • f 2 3 4

15
OBJ File Format Example
  • This is a comment
  • v 0 0 0
  • v 0 1 0
  • v 1 0 0
  • v 0 0 1
  • vn -1 -1 -1
  • vn 1 1 1
  • vn -1 1 1
  • vn 1 -1 1
  • f 1//2 2//1 3//3
  • f 1//2 3//3 4//4
  • f 1//2 4//4 2//1
  • f 2//1 3//3 4//4

16
OBJ File Format Complications
  • Vertices may appear after faces
  • Faces may not be triangles (must triangulate)
  • Faces may use negative indexing

17
3D File Formats
  • Vertices may appear after faces
  • Faces may not be triangles (must triangulate)
  • Faces may use negative indexing
  • Not all OBJ files conform to the OBJ standard

18
Drawing 3D Objects with OpenGL
  • Immediate Mode
  • Display Lists
  • Vertex Arrays
  • Vertex Buffer Objects

19
Immediate Mode
  • glBegin ( GL_TRIANGLES )
  • glNormal3f ( nx1, ny1, nz1 )
  • glVertex3f ( x1, y1, z1 )
  • glNormal3f ( nx2, ny2, nz2 )
  • glVertex3f ( x2, y2, z2 )
  • glEnd ( )

20
Immediate Mode
  • Advantages
  • Easy to send a few polygons to OpenGL
  • Disadvantages
  • Lots of data transferred on the stack
  • Lots of function calls
  • Vertices duplicated many times
  • Really, really slow

21
Display Lists
  • Initialize display list
  • firstList glGenLists ( numLists )
  • glNewList ( firstList, GL_COMPILE_AND_EXECUTE )
  • // draw model in immediate mode
  • glEndList ( )
  • Draw the display list
  • glCallList ( firstList )

22
Display Lists
  • Relies on graphics driver for optimization
  • Advantages
  • Faster than immediate mode
  • Disadvantages
  • Still not great performance

23
Vertex Arrays
  • glEnableClientState ( GL_(VERTEX/TEXTURE_COORD/NOR
    MAL)_ARRAY )
  • glVertexPointer ( numComp, GL_FLOAT, bytes to
    next vertex, pointer to geometry)
  • glTexCoordPointer ( numComp, GL_FLOAT, bytes to
    next texture coord, pointer to texture coords)
  • glNormalPointer ( GL_FLOAT, bytes to next normal,
    pointer to normals )
  • glDrawElements ( GL_TRIANGLES, number of indices
    in array, GL_UNSIGNED_INT, pointer to index
    array)
  • glDisableClientState ( GL_(VERTEX/TEXTURE_COORD/NO
    RMAL)_ARRAY )

24
Vertex Arrays
  • Advantages
  • Only transfers vertices once and not an expected
    value of 6 times
  • Much faster than even display lists
  • Format similar to most mesh formats
  • Disadvantages
  • Still transfers vertices to GPU every frame
  • Bandwidth to GPU very problematic

25
Vertex Buffer Objects
  • New Functions
  • glGenBuffersARB
  • glBindBufferARB
  • glBufferDataARB
  • Use glVertexPointer with NULL pointer as
    argument
  • Use glDrawElements with NULL pointer as argument

26
Vertex Buffer Objects
  • Advantages
  • Can store data directly in video memory or AGP
  • Greatly reduces bandwidth problem to GPU
  • Disadvantages
  • Not supported by MS OpenGL headers
  • Must load function pointers out of DLL using
    WGLGetProcAddress
  • Dynamic geometry does get as much benefit

27
Performance
Nvidia 7300 GT Nvidia 8800 GTX
Immediate Mode 15.5 15.5
Display Lists 28.3 22.0
Vertex Arrays 33.5 35.5
Vertex Buffer Objects 50.0 200.0
Frames per second displaying a 413,236 triangle
model. CPU was an Intel Core 2 6700.
Write a Comment
User Comments (0)
About PowerShow.com