220 likes | 471 Views
Progressive Mesh in DirectX. 2000160114 Seung ho Lee 2000160207 Hyun taek Kwon. What is Progressive Mesh?. Level of Detail (LOD) Progressive simplification or detail Mesh. Edge collapse or Vertex Split Selective Refinement. Overview of Progressive Mesh. Edge collapse or Vertex Split.
E N D
Progressive Mesh in DirectX 2000160114 Seung ho Lee 2000160207 Hyun taek Kwon
What is Progressive Mesh? • Level of Detail (LOD) • Progressive simplification or detail Mesh
Edge collapse or Vertex Split Selective Refinement Overview of Progressive Mesh
Selective Refinement • Use Vertex History
The Pipeline of DirectX Mesh • ID3DXMesh interface • ID3DXPMesh interface
ID3DXMesh interface • General Mesh interface • Buffers • Vertex Buffer • Index Buffer • Attribute Buffer • Functions • DrawSubset(DWORD n);
ID3DXPMesh • Progressive Mesh interface • Make from ID3DXMesh • Using Progressive Mesh interface
Implementation • Implement from ID3DXMesh • Using Vertex Buffer and Index Buffer • Class Gmesh • Vertex Node Tree, History
Rendering Pipeline Read PM File Make GMesh Write in Mesh Buffer Draw Mesh
Result • Rabbit
View-Dependent Refinement • Definitions • Refinement Criteria • Implementation
1. Definitions (1) • Active vertex, Active face • A vertex or face is active if it exists • in the selectively refined mesh Ms.
1. Definitions (2) • Vertex hierarchy
1. Definitions (3) • Legal
2. Refinement Criteria • View frustum • Coarsen regions outsize the view frustum • Surface orientation • Coarsen regions oriented away from viewer • Screen-space geometric error • Makes the difference between approximate surface M and the original M^ small
2. Refinement Criteria (1) - Bounding Sphere
2. Refinement Criteria (1) • Out of View frustum • Red lines show distance
2. Refinement Criteria (2) - Cone of normals Unnecessary to split if
2. Refinement Criteria (3) • Distance • The distance between the approximate surface M and the original M^, when projected on the screen, is every where less than a screen-space tolerance r.
3. Implementation • ListNode *ActiveVertexHead • double linked list of active vertex • ListNode *RootVertexHead • Double linked list of root vertex
3. Implementation Active Vertex v1 v3 v4 v5 v6 v2 Qrefine() Split v1 v3 v4 v5 v6 v21 v22