Download presentation
Presentation is loading. Please wait.
1
Terrain 김 성 남
2
Contents Terrain Rendering Overview What is DEM? Lindstrom’s Algorithm
Block-Based Simplification Vertex-Based Simplification Vertex Dependencies Other Issues Memory Menagement Summary
3
Overview(1/3) 응용분야 Flight Simulator Multi player 3D network game
Prince of Darkness(PM of Hoppe) Tribes(Lindstrom algorithm)
4
Overview(2/3) Terrain Data representation
TIN(Triangulated Irregular Network) DEM(Digital Elevation Model) or Height Field TIN(x,y,z) DEM(x,y,h(x,y))
5
Overview(3/3) DEM vs. TIN DEM TIN 저장 간단 저장 복잡 위성 데이터로부터 쉽게 획득
별도의 데이터 생성과정 요구 지형의 특성과 무관하게 vertex의 개수가 정해짐 지형의 특성에 따라 vertex의 개수가 달라짐
6
What is DEM? Height Field 높이 값만을 저장하고 있는 2차원 배열 배열의 Index가 x, y 좌표로 사용
LOD 적용 용이 x y z 18 20 15 30 25 10 7
7
Lindstrom’s Algorithm
Bottom-up LOD Block-Based Simplification Vertex-Based Simplification Vertex Dependencies
8
Quadtree DEM Quadtree 3 X 3 vertex들로 이루어진 영역 : Block
Level K block은 level K+1의 4개 Block을 자식으로 가짐 Level 1 Level 2 Level 3 low Resolution high high Level low
9
Vertex-Based Simplification
Corner vetex를 제외한 block내 5개의 vertex 불필요한 vertex 제거 한 쌍(triangle, co-triangle)이 하나로 합쳐짐: base vertex 제거 Recursively !! Base vertex (Triangle, co-triangle) pair
10
Error Metric(1/5) vertex 간략화(제거) 기준
vertex 간략화를 통해 발생한 error가 어떤 임계치 τ 보다 작으면 vertex 제거 x y z C E B A
11
Error Metric(2/5) δ 선분의 중점 v가 눈 좌표계의 z축 상에 있다고 가정 Projection plane
Eye coordinates e(view point) d C E v+ v v- B A
12
Error Metric(3/5) View matrix
13
Error Metric(4/5) Screen 에서 계산된 δ λ : world coordinates 단위 길이가
screen에서 차지하는 pixel 수
14
Error Metric(5/5) δscreen을 τ 와 비교 속도 향상을 위해 제곱값 비교
15
Block-Based Simplification(1/2)
모든 vertex에 대해 δscreen을 계산 DEM 간략화를 수행하면 계산량이 방대해짐 Block 내의 5개의 vertex를 한번에 제거 가능여부 검사 인접한 4개 block이 블록 간략화가 된다면 higher level로 이전
16
Block-Based Simplification(2/2)
Block내에서 world coordintes의 δmax값을 미리 계산 “δmax<= δ0 가 성립하면 해당 block의 모든 제거 후보 vertex의 δ값 투영치가 임계치 τ 보다 작음이 보장” 되는 δ0 계산 인접한 4개 block이 블록 간략화되면 higher level(low resolution) 로 이전 이러한 과정은 재귀적(recursive)으로 수행
17
Crack Quadtree의 인접영역에서 vertex 불일치 발생 Crack 생성 crack Block 간략화 결과
18
Vertex Dependencies(1/3)
두개의 직각 이등변 삼각형이 합쳐져 하나의 이등변 삼각형 구성 두개의 직각 이등변 삼각형의 base vertex가 삭제되면서 두 삼각형의 shared edge가 제거 반대로, Base vertex가 mesh에 삽입되기 위해서는 shared edge, apex vertex가 반드시 필요 Base vertex
19
Vertex Dependencies(2/3)
어떤 vertex가 제거되지 않는다고 결정되면, 그 vertex가 종속되는 vertex가 반드시 존재 는 에 종속 ( depend on )
20
Vertex Dependencies(3/3)
Forced split Vertex dependencies를 이용한 crack 제거 Refinement 될 필요가 없는 추가적인 triangles 생성
21
Block Rendering Binary tree 개념을 이용한 rendering
Triangle strip을 이용한 rendering
22
Other Issues Terrain Pages Memory Management
To minimize memory usage, apply unsigned short type for height and queue indices 광대한 지형을 한꺼번에 memory에 load할 수 없으므로, 효율적으로 memory에 load, computation할 수 있는 적당한 크기의 Terrain pages 생성 View 이동에 따라 page in and out, crack 방지 Memory Management Height field를 제외하고, 가능한 한 많은 부분(texture coordinates , etc)을 pages간에 공유 현재 지형 모델에서 가장 많이 연구되고 있는 분야
23
Lindstrom Demo Peter Lindstrom et al., “Real-Time, Continuous Level of Detail Rendering of Height Field”, SIGGRAPH96
24
Summary DEM(Digital Elevation Model)
Lindstrom’s Algorithm(Bottom-up LOD) Block-Based Simplification Vertex-Based Simplification Vertex Dependencies(No crack and Forced Split) Memory Management
Similar presentations