Progressive Mesh in DirectX 2000160114 Seung ho Lee 2000160207 Hyun taek Kwon.

22
Progressive Mesh in DirectX 2000160114 Seung ho Lee 2000160207 Hyun t aek Kwon

Transcript of Progressive Mesh in DirectX 2000160114 Seung ho Lee 2000160207 Hyun taek Kwon.

Progressive Mesh in DirectX

2000160114 Seung ho Lee2000160207 Hyun taek Kwon

What is Progressive Mesh?

Level of Detail (LOD) Progressive simplification or detail

Mesh

Overview of Progressive Mesh

Edge collapse or Vertex Split Selective Refinement

Edge collapse or Vertex Split

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

1. Definitions

2. Refinement Criteria

3. 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

(1) View frustumCoarsen regions outsize the view frustum

(2) Surface orientationCoarsen regions oriented away from viewer

(3) Screen-space geometric errorMakes 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)

- DistanceThe 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 *RootVertexHeadDouble linked list of root vertex

3. Implementation

Active Vertex v1 v2 v3 v4 v5 v6

v1 v3 v4 v5 v6 v21 v22

SplitQrefine()