lod와자료구조 - raonica.tistory.comlod 700000 l700,000 polygons 애니메이션및게임실습...

95
LOD자료구조 LOD자료구조

Upload: others

Post on 17-Jun-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

LOD와 자료구조LOD와 자료구조

Page 2: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

목 차목 차

공간자료구조LOD

바운딩 볼륨 계층구조

LOD

BSP 트리

8진 트리

장면 그래프

Selection Criteria

종류

Errors 장면 그래프Errors

Operators

Terrain LOD

Progressive Mesh

애니메이션및 게임 실습 2

Page 3: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

LODLOD

Page 4: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

LODLOD

대용량 3D 데이터 처리의 필요성대용량 3D 데이터 처리의 필요성

Scientific and medical visualization

Architectural and industrial CAD

Training (military and otherwise)Training (military and otherwise)

Entertainment

애니메이션및 게임 실습 4

Page 5: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

LODLOD

700 000 l700,000 polygons

애니메이션및 게임 실습 5

Courtesy General Dynamics, Electric Boat Div.

Page 6: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

LODLOD

13 000 000 l13,000,000 polygons

애니메이션및 게임 실습 6

(Anonymous)

Page 7: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

LODLOD

16 700 000 l16,700,000 polygons

애니메이션및 게임 실습 7

Deussen et al: Deussen et al: Realistic Modeling of Plant EcosystemsRealistic Modeling of Plant Ecosystems

Page 8: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

LODLOD

82 000 000 l82,000,000 polygons

애니메이션및 게임 실습 8

Courtesy Newport News Shipbuilding

Page 9: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

LODLOD

D idDavid56,230,343 polygons

St. Matthew372,422,615 polygons

애니메이션및 게임 실습 9

Courtesy Digital Michelangelo Project

Page 10: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

LODLOD

L l f D t il의 생성Level of Detail의 생성

69,451 polys 2,502 polys 251 polys 76 polys

애니메이션및 게임 실습 10

Page 11: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

LODLOD

거리에 따른 정밀도 차등거리에 따른 정밀도 차등

애니메이션및 게임 실습 11

Page 12: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

Selection CriteriaSelection Criteria

LOD 레벨을 선택하기 위한 기준LOD 레벨을 선택하기 위한 기준

DistanceSiSizeVelocityEccentricityDepth of FieldDepth of FieldFixed-frame rate schedulersHysteresisPriority schemesPriority schemesAlpha-blended transitionsGeomorph transitions

애니메이션및 게임 실습 12

Page 13: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

Selection CriteriaSelection Criteria

Di tDistance

dd11

dd22

애니메이션및 게임 실습 13

Page 14: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

Selection CriteriaSelection Criteria

SiSize

애니메이션및 게임 실습 14

Page 15: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

Selection CriteriaSelection Criteria

E t i itEccentricity

θθ

애니메이션및 게임 실습 15

Page 16: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

Selection CriteriaSelection Criteria

V l itVelocity1 deg/s1 deg/s

20 deg/s20 deg/s

애니메이션및 게임 실습 16

Page 17: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

Selection CriteriaSelection Criteria

D th f Fi ldDepth of Field

Panum’s fusional areaPanum’s fusional area

애니메이션및 게임 실습 17

Page 18: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

Selection CriteriaSelection Criteria

Fi d F R t S h d lFixed-Frame Rate Schedulers

애니메이션및 게임 실습 18

Page 19: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

Selection CriteriaSelection Criteria

Al h bl d d t itiAlpha-blended transitions

애니메이션및 게임 실습 19

Page 20: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

종류종류

LOD의 종류LOD의 종류

Discrete LOD

Continuous LOD

View Dependent LODView-Dependent LOD

애니메이션및 게임 실습 20

Page 21: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

종류종류

Di t LODDiscrete LOD

Static LOD오프라인에서 미리 레벨별 데이터 생성오프라인에서 미리 레벨별 데이터 생성렌더링시 레벨에 맞는 데이터 선택

장점장점

가장 단순한 방식가장 빠른 성능가장 빠른 성능실시간 게임 등에 주로 사용

애니메이션및 게임 실습 21

Page 22: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

종류종류

Di t LODDiscrete LOD

단점

급격한 변화(popping)

애니메이션및 게임 실습 22

Page 23: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

종류종류

C ti LODContinuous LOD

실시간 처리

장점

정확한 정밀한 표현 가능정확한, 정밀한 표현 가능부드러운 전환View-Dependent LOD 지원

단점

실시간 계산량의 증대실시간 계산량의 증대

애니메이션및 게임 실습 23

Page 24: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

종류종류

Vi D d t LODView-Dependent LOD

View from eyepoint Birds-eye view

애니메이션및 게임 실습 24

y

Page 25: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

종류종류

Vi D d t LODView-Dependent LOD

애니메이션및 게임 실습 25

Page 26: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

종류종류

Vi D d t LODView-Dependent LOD

34,321 triangles

애니메이션및 게임 실습 26

Page 27: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

종류종류

Vi D d t LODView-Dependent LOD

11,726 triangles

애니메이션및 게임 실습 27

Page 28: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

ErrorsErrors

에러를 계산하는 이유에러를 계산하는 이유

간략화 과정의 지침

결과의 품질 예측

특정 LOD 방법의 선택특정 LOD 방법의 선택

대용량 환경을 위한 품질 조절 가능

애니메이션및 게임 실습 28

Page 29: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

ErrorsErrors

에러의 종류에러의 종류

Geometric Error

Attribute Error

애니메이션및 게임 실습 29

Page 30: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

ErrorsErrors

G t i EGeometric Error

3D 데이터의 모양 변형에 대한 에러

스크린 공간에서의 모양 유지실루엣 유지

Vertex-Vertex DistanceVertex-Plane DistancePoint-Surface DistancePoint-Surface DistanceSurface-Surface Distance

애니메이션및 게임 실습 30

Page 31: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

ErrorsErrors

V t V t Di tVertex-Vertex Distance

vv33

vv11vv22

애니메이션및 게임 실습 31

Page 32: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

ErrorsErrors

V t Pl Di tVertex-Plane Distance

Error Quadric

aacc

bbbb

aa bb cc

애니메이션및 게임 실습 32

Page 33: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

ErrorsErrors

V t S f Di tVertex-Surface Distance

Progressive Mesh

애니메이션및 게임 실습 33

Page 34: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

ErrorsErrors

S f S f Di tSurface-Surface Distance

Simplification Envelopes

애니메이션및 게임 실습 34

Page 35: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

ErrorsErrors

Att ib t EAttribute Error

색상, 법선, 텍스처 좌표 에러

최종 픽셀값의 정확도 향상

애니메이션및 게임 실습 35

Page 36: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

OperatorsOperators

LOD O tLOD Operators

Local Operators

Edge CollapseVertex-Pair CollapseTriangle CollapseTriangle CollapseCell CollapseVertex RemovalPolygon MergingPolygon MergingGeneral Geometric Replacement

Global OperatorsGlobal Operators

Volume ProcessingAlpha-Hull-Based Topology SimplificationsAlpha Hull Based Topology Simplifications

애니메이션및 게임 실습 36

Page 37: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

OperatorsOperators

Ed C llEdge Collapse

애니메이션및 게임 실습 37

Page 38: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

OperatorsOperators

Ed C llEdge Collapse

애니메이션및 게임 실습 38

Page 39: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

OperatorsOperators

V t P i C llVertex-Pair Collapse

애니메이션및 게임 실습 39

Page 40: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

OperatorsOperators

T i l C llTriangle Collapse

애니메이션및 게임 실습 40

Page 41: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

OperatorsOperators

C ll C llCell Collapse

애니메이션및 게임 실습 41

Page 42: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

OperatorsOperators

V t R l d P l M iVertex Removal and Polygon Merging

애니메이션및 게임 실습 42

Page 43: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

OperatorsOperators

G l G t i R l tGeneral Geometric Replacement

애니메이션및 게임 실습 43

Page 44: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

OperatorsOperators

V l P iVolume Processing

애니메이션및 게임 실습 44

Page 45: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

OperatorsOperators

V l P iVolume Processing

애니메이션및 게임 실습 45

Page 46: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

OperatorsOperators

Al h H ll B d T l Si lifi tiAlpha-Hull-Based Topology Simplifications

애니메이션및 게임 실습 46

Page 47: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

OperatorsOperators

Al h H ll B d T l Si lifi tiAlpha-Hull-Based Topology Simplifications

애니메이션및 게임 실습 47

Page 48: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

Terrain LODTerrain LOD

지형 LOD지형 LOD

LOD가 실제로 가장 많이 사용되는 분야

사용 분야

Flight simulators

Terrain-based computer games

G hi I f ti S t (GIS)Geographic Information Systems (GIS)

Virtual tourism, real-estate, mission planning

애니메이션및 게임 실습 48

Page 49: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

Terrain LODTerrain LOD

지형 LOD 일반 LOD지형 LOD vs 일반 LOD

Terrain is easier...

일반 기하는 제약조건이 많음균등 분할 그리드를 사용특성화될 수 있고 단순 알고리즘의 사용특성화될 수 있고, 단순 알고리즘의 사용

Terrain is more difficult...

연속적이고 거대한 모델매우 가까우면서 매우 먼 모델뷰 의존적인 모델뷰 의존적인 모델out-of-core를 이용한 페이징이 필요함

애니메이션및 게임 실습 49

Page 50: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

Terrain LODTerrain LOD

대형 지형 데이터베이스대형 지형 데이터베이스

USGS GTOPO30

30 arc-second (~1 km) resolution elevation43,200 x 21,600 = 1.8 billion triangles

NASA EOS satellite ASTER

30-m resolution elevation data30-m resolution elevation datafrom 15-m near infrared stereo imagery

USGS National Elevation Dataset (NED)USGS National Elevation Dataset (NED)

50,000 quads at around 50 GB

애니메이션및 게임 실습 50

Page 51: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

Terrain LODTerrain LOD

R l G idRegular Grid

균등 분할

저장과 처리가 쉬움

고도를 찾기위한 보간이 쉬움

디스크/메모리 효율성 : Z값만 사용디스크/메모리 효율성 Z값만 사용

뷰 컬링과 충돌 검출이 쉬움

애니메이션및 게임 실습 51

Page 52: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

Terrain LODTerrain LOD

TINTINs

Triangulated Irregular Networks

적은 수의 삼각형 사용

복잡한 지역은 세밀히, 단순한 지역은 단순하게

최대점, 최소점, 능선, 계곡, 동굴 표현 가능최대점, 최소점, 능선, 계곡, 동굴 표현 가능

애니메이션및 게임 실습 52

Page 53: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

Terrain LODTerrain LOD

지형 LOD 예제지형 LOD 예제

Hunter-LiggettHunter-Liggett US Army base

2-m res

8 x 8km

32 M polys

애니메이션및 게임 실습 53

Page 54: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

Terrain LODTerrain LOD

지형 LOD 예제지형 LOD 예제

애니메이션및 게임 실습 54

Page 55: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

Terrain LODTerrain LOD

지형 LOD 예제지형 LOD 예제

Hawai’i

애니메이션및 게임 실습 55

Page 56: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

Terrain LODTerrain LOD

지형 LOD 예제지형 LOD 예제

애니메이션및 게임 실습 56

Page 57: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

Terrain LODTerrain LOD

지형 LOD 예제지형 LOD 예제

P t S dPuget Sound, Washington

16,385 x 16,385

512 MB

애니메이션및 게임 실습 57

Page 58: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

Progressive MeshProgressive Mesh

H H 1996Hugues Hoppe, 1996

Preserve appearance

LosslessContinuous-resolutionEfficientEfficientProgressive

애니메이션및 게임 실습 58

Page 59: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

Progressive MeshProgressive Mesh

간략화간략화

ecol(vs ,vt , vs )v

vl vr

vt

vvl v’l r

vs

vsvl vr

(optimization)

애니메이션및 게임 실습 59

Page 60: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

Progressive MeshProgressive Mesh

간략화 과정간략화 과정

13,54613,546 500500 152152 150150

^ M0M1M175

ecol0ecoliecoln-1

M=Mn^

애니메이션및 게임 실습 60

Page 61: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

Progressive MeshProgressive Mesh

상세화상세화

attributesvspl(vs ,vl ,vr , vs ,vt ,…)’ ’

attributesp ( s , l , r , s , t , )

v

vt’

vsvl vrvl vr

v’vs

애니메이션및 게임 실습 61

Page 62: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

Progressive MeshProgressive Mesh

상세화 과정상세화 과정

150150 152152 500500 13,54613,546

^̂̂MM00 MM11

vsplvspl00MM175175

… vspl… vsplii …… vsplvsplnn--11

MMnn=M=M̂̂vspl0 … vspli … vspln-1

M0 Mn=M̂00 ii nn 11

progressive mesh (PM) representation0 i n 1

애니메이션및 게임 실습 62

Page 63: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

Progressive MeshProgressive Mesh

MMccMMff MMff--11 MMff--22

MMnn MM00MMMM

vv11vv22

vv11vv22

MMvv11vv22

MMvv11vv22vv22

vv33vv44

vv22vv33

vv22vv33vv44

vv22vv33vv44

ecolecol ecolecol

vv44vv55vv66

vv44vv55vv66

ecolecolvv44vv55vv66vv66

vv77vv88

vv66vv77

vv66

vv88

애니메이션및 게임 실습 63

Page 64: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

Progressive MeshProgressive Mesh

프로그레시브 메쉬 생성프로그레시브 메쉬 생성

HRESULT D3DXGeneratePMesh(LPD3DXMESH pMesh, // 원본 메쉬CONST DWORD *pAdjacency, // 인접 정보CONST LPD3DXATTRIBUTEWEIGHTS pVertexAttributeWeights, // 속성 영향력CONST FLOAT *pVertexWeights, // 정점 영향력DWORD MinValue, // 최소 정점 혹은 면의 수DWORD Options, // 영향력의 적용 범위LPD3DXPMESH ** PM h // 생성된 프로그레시브 메쉬LPD3DXPMESH **ppPMesh // 생성된 프로그레시브 메쉬

)

Options

D3DXMESHSIMP VERTEX Mi V l 가 정점에 적용됨D3DXMESHSIMP_VERTEX : MinValue가 정점에 적용됨D3DXMESHSIMP_FACE : MinValue가 면에 적용됨

애니메이션및 게임 실습 64

Page 65: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

Progressive MeshProgressive Mesh

정점 속성 영향력정점 속성 영향력

typedef struct _D3DXATTRIBUTEWEIGHTS {FLOAT Position;FLOAT Boundary;FLOAT Normal;FLOAT Diffuse;FLOAT Specular;FLOAT Texcoord[8];FLOAT TFLOAT Tangent;FLOAT Binormal;

} D3DXATTRIBUTEWEIGHTS;

D3DXATTRIBUTEWEIGHTS AttributeWeights;AttributeWeights.Position = 1.0;AttributeWeights.Boundary = 1.0;g y ;AttributeWeights.Normal = 1.0;AttributeWeights.Diffuse = 0.0;AttributeWeights.Specular = 0.0;

애니메이션및 게임 실습 65

AttributeWeights.Tex[8] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}

Page 66: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

Progressive MeshProgressive Mesh

ID3DXPM hID3DXPMesh

ID3DXBaseMesh 인터페이스의 상속

DWORD GetMaxFaces(VOID) : 최대 면 수DWORD GetMaxVertices(VOID) : 최대 정점 수DWORD GetMinFaces(VOID) : 최소 면 수DWORD GetMinFaces(VOID) : 최소 면 수DWORD GetMinVertices(VOID) : 최소 정점 수

HRESULT SetNumFaces(DWORD Faces)HRESULT SetNumFaces(DWORD Faces)메쉬의 면 수 설정

HRESULT SetNumVertices(DWORD Vertices)메쉬의 정점 수 설정

애니메이션및 게임 실습 66

Page 67: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

Progressive MeshProgressive Mesh

ID3DXPM hID3DXPMesh

// 새로운 최소/최대 면 수 설정// 새로운 최소/최대 면 수 설정HRESULT TrimByFaces(

DWORD NewFacesMin,DWORD NewFacesMax,WO New aces a ,DWORD *rgiFaceRemap, // 면 리맵 정보DWORD *rgiVertRemap // 정점 리맵 정보

))

// 새로운 최소/최대 정점 수 설정HRESULT TrimByVertices(

DWORD NewVerticesMin,DWORD NewVerticesMax,DWORD *rgiFaceRemap, // 면 리맵 정보

정점 리맵 정보DWORD *rgiVertRemap // 정점 리맵 정보)

애니메이션및 게임 실습 67

Page 68: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

Progressive MeshProgressive Mesh

예제예제

애니메이션및 게임 실습 68

Page 69: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

공간자료구조공간자료구조

Page 70: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

공간 자료 구조공간 자료 구조

개요개요

객체를 2D 또는 3D로 분할하는 자료 구조보다 빠른 처리를 목표로 함보다 빠른 처리를 목표로 함

Faster real-time renderingFaster intersection testingFaster collisioned detectionFaster collisioned detectionFaster ray tracing and global illumination

사용 분야사용 분야게임영화 렌더링 툴

애니메이션및 게임 실습 70

Page 71: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

공간 자료 구조공간 자료 구조

계층형 분할계층형 분할

In 2D space Data structure

애니메이션및 게임 실습 71

Page 72: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

공간 자료 구조공간 자료 구조

활용 방법활용 방법

애니메이션및 게임 실습 72

Page 73: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

바운딩 볼륨 계층구조바운딩 볼륨 계층구조

바운딩 볼륨(BV)바운딩 볼륨(BV)

일단의 객체들을 내포하는 볼륨BV가 포함하고 있는 물체들보다 더 단순한 기하형태BV가 포함하고 있는 물체들보다 더 단순한 기하형태

구(Sphere)축에 정렬된 바운딩 박스(AABB)축에 정렬된 바운딩 박스(AABB)방향성 바운딩 박스(OBB)k-Dops

렌더링, 다른 계산, 각종 검사 기능을 가속화하는데 사용

애니메이션및 게임 실습 73

Page 74: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

바운딩 볼륨 계층구조바운딩 볼륨 계층구조

바운딩 볼륨(BV)바운딩 볼륨(BV)

AABB

모든 축(X,Y,Z)에 대해 최소, 최대인 정점을 가지고 객체를 감싸는 육면체를만든 것객체 회전시 재생성 필요객체 회전시 재생성 필요

애니메이션및 게임 실습 74

Page 75: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

바운딩 볼륨 계층구조바운딩 볼륨 계층구조

바운딩 볼륨(BV)바운딩 볼륨(BV)

Bounding Sphere

객체가 길쭉한 형태이거나 구 모양이 아닐 때 비효율적충돌 검사시 효율적

애니메이션및 게임 실습 75

Page 76: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

바운딩 볼륨 계층구조바운딩 볼륨 계층구조

바운딩 볼륨(BV)바운딩 볼륨(BV)

OBB

주성분 분석 후 객체를 감쌀 수 있는 가장 작은 육면체 생성경계 구나 AABB보다 경계 볼륨의 효율성이 좋음객체 회전시 OBB 재생성 필요 없음객체 회전시 OBB 재생성 필요 없음

애니메이션및 게임 실습 76

Page 77: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

바운딩 볼륨 계층구조바운딩 볼륨 계층구조

B di V l Hi hBounding Volume Hierarchy

3차원 장면의 실시간 렌더링을 위한 가장 일반적인 공간 자료 구조계층적 시각 절두체 선별에 사용계층적 시각 절두체 선별에 사용

루트노드 : 최상위 노드, 부모가 없음내부노드 : 자식들에 대한 포인터내부노드 : 자식들에 대한 포인터말단노드 : 렌더링될 실제 기하 구조

애니메이션및 게임 실습 77

Page 78: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

바운딩 볼륨 계층구조바운딩 볼륨 계층구조

BVH의 장점BVH의 장점

다양한 검사 수행 능력이 탁월동적으로 변화하는 장면에 사용 가능동적으로 변화하는 장면에 사용 가능

애니메이션및 게임 실습 78

Page 79: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

바운딩 볼륨 계층구조바운딩 볼륨 계층구조

BVH의 생성(AABB)BVH의 생성(AABB)

x is longest Find minimalboxes

S lit lSplit alonglongest axis

Find minimalboxes

애니메이션및 게임 실습 79

Page 80: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

BSP 트리BSP 트리

Bi S P titi iBinary Space Partitioning

형태축에 정렬된 형태( i li d)축에 정렬된 형태(axis-aligned)다각형에 정렬된 형태(polygon-aligned)

분할분할공간을 두 개로 분할하는 평면 사용두 공간으로 기하 구조들을 정렬반복반복

특징트리에 들어있는 기하 구조들이 특정한 시점을 기준으로 정렬트리에 들어있는 기하 구조들이 특정한 시점을 기준으로 정렬

애니메이션및 게임 실습 80

Page 81: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

BSP 트리BSP 트리

축에 정렬된(A i li d) BSP 트리축에 정렬된(Axis-aligned) BSP 트리

Minimalbox

Split alongplanebox plane

Split alongplane

Split alongplane pp

애니메이션및 게임 실습 81

Page 82: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

BSP 트리BSP 트리

축에 정렬된(A i li d) BSP 트리축에 정렬된(Axis-aligned) BSP 트리

B D E 0B D E

Pl 1b

Plane 2 1a 1b

Plane 0

Plane 1a Plane 1bA B C 2

D EA C D E

애니메이션및 게임 실습 82

Page 83: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

BSP 트리BSP 트리

축에 정렬된(A i li d) BSP 트리축에 정렬된(Axis-aligned) BSP 트리

k-d 트리

루트노드 : x축을 따라서 분할자식노드 : y축을 따라서 분할손자노드 : z축을 따라서 분할손자노드 : z축을 따라서 분할

박스의 가장 긴 쪽을 찾아서 그 방향으로 분할

애니메이션및 게임 실습 83

Page 84: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

BSP 트리BSP 트리

축에 정렬된(A i li d) BSP 트리축에 정렬된(Axis-aligned) BSP 트리

Rough sorting

0

1a 1b

2

1a

A B

1b

C 21a 1b

0

eyeD E

4 51 23

애니메이션및 게임 실습 84

Page 85: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

BSP 트리BSP 트리

다각형에 정렬된(P l li d) BSP t다각형에 정렬된(Polygon-aligned) BSP tree

다각형을 공간 분할을 위한 분할자로 사용

애니메이션및 게임 실습 85

Page 86: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

BSP 트리BSP 트리

다각형에 정렬된(P l li d) BSP t다각형에 정렬된(Polygon-aligned) BSP tree

최소 교차 기준법(least-crossed criterion)

다각형 선택 방법

다수의 후보 다각형들을 임의로 선택다수의 후보 다각형들을 임의로 선택그 중에서 자신이 속한 평면이 다른 다각형들과 교차하는 횟수가 가장 적은다각형 선택

애니메이션및 게임 실습 86

Page 87: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

BSP 트리BSP 트리

다각형에 정렬된(P l li d) BSP t다각형에 정렬된(Polygon-aligned) BSP tree

장점

주어진 관측 조건에 대해서 그 자료 구조가 뒤에서 앞으로 엄격하게 순회될수 있다교차 검사와 충돌 검출에 유용교차 검사와 충돌 검출에 유용

애니메이션및 게임 실습 87

G, C, F, A, E, B, D

Page 88: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

8진 트리8진 트리

O tOctree

축에 정렬된 BSP 트리와 유사

하나의 박스는 세 축을 따라서 동시에 분할분할되는 점은 박스의 중심8개의 새로운 박스 생성8개의 새로운 박스 생성

애니메이션및 게임 실습 88

Page 89: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

8진 트리8진 트리

O tOctree

애니메이션및 게임 실습 89

Page 90: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

8진 트리8진 트리

느슨한 8진 트리(l t )느슨한 8진 트리(loose octree)

애니메이션및 게임 실습 90

Page 91: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

장면 그래프장면 그래프

S G hScene Graphs

높은 수준의 트리 구조

기하의 계층적 구조텍스처, 변환, 상세 단계, 렌더링 상태, 광원 등 추가

DAG(Directed Acyclic Graph)

우향 비순환 그래프우향 비순환 그래프어떤 루프나 순환구조를 가지지 않으면서 부모에서 자식으로 향하는 일정한순서가 있음

여러 개의 인스턴스를 가지기 때문

애니메이션및 게임 실습 91

Page 92: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

장면 그래프장면 그래프

S G hScene Graphs

애니메이션및 게임 실습 92

Page 93: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

4진 트리와 LOD4진 트리와 LOD

예제예제

애니메이션및 게임 실습 93

Page 94: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

4진 트리와 LOD4진 트리와 LOD

예제예제

애니메이션및 게임 실습 94

Page 95: LOD와자료구조 - raonica.tistory.comLOD 700000 l700,000 polygons 애니메이션및게임실습 5 Courtesy General Dynamics, Electric Boat Div

Question?Question?Question?Question?

애니메이션및 게임 실습 95