Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
LOD와 자료구조LOD와 자료구조
목 차목 차
공간자료구조LOD
바운딩 볼륨 계층구조
리
LOD
BSP 트리
8진 트리
장면 그래프
Selection Criteria
종류
Errors 장면 그래프Errors
Operators
Terrain LOD
Progressive Mesh
애니메이션및 게임 실습 2
LODLOD
LODLOD
대용량 3D 데이터 처리의 필요성대용량 3D 데이터 처리의 필요성
Scientific and medical visualization
Architectural and industrial CAD
Training (military and otherwise)Training (military and otherwise)
Entertainment
애니메이션및 게임 실습 4
LODLOD
700 000 l700,000 polygons
애니메이션및 게임 실습 5
Courtesy General Dynamics, Electric Boat Div.
LODLOD
13 000 000 l13,000,000 polygons
애니메이션및 게임 실습 6
(Anonymous)
LODLOD
16 700 000 l16,700,000 polygons
애니메이션및 게임 실습 7
Deussen et al: Deussen et al: Realistic Modeling of Plant EcosystemsRealistic Modeling of Plant Ecosystems
LODLOD
82 000 000 l82,000,000 polygons
애니메이션및 게임 실습 8
Courtesy Newport News Shipbuilding
LODLOD
D idDavid56,230,343 polygons
St. Matthew372,422,615 polygons
애니메이션및 게임 실습 9
Courtesy Digital Michelangelo Project
LODLOD
L l f D t il의 생성Level of Detail의 생성
69,451 polys 2,502 polys 251 polys 76 polys
애니메이션및 게임 실습 10
LODLOD
거리에 따른 정밀도 차등거리에 따른 정밀도 차등
애니메이션및 게임 실습 11
Selection CriteriaSelection Criteria
LOD 레벨을 선택하기 위한 기준LOD 레벨을 선택하기 위한 기준
DistanceSiSizeVelocityEccentricityDepth of FieldDepth of FieldFixed-frame rate schedulersHysteresisPriority schemesPriority schemesAlpha-blended transitionsGeomorph transitions
애니메이션및 게임 실습 12
Selection CriteriaSelection Criteria
Di tDistance
dd11
dd22
애니메이션및 게임 실습 13
Selection CriteriaSelection Criteria
SiSize
애니메이션및 게임 실습 14
Selection CriteriaSelection Criteria
E t i itEccentricity
θθ
애니메이션및 게임 실습 15
Selection CriteriaSelection Criteria
V l itVelocity1 deg/s1 deg/s
20 deg/s20 deg/s
애니메이션및 게임 실습 16
Selection CriteriaSelection Criteria
D th f Fi ldDepth of Field
Panum’s fusional areaPanum’s fusional area
애니메이션및 게임 실습 17
Selection CriteriaSelection Criteria
Fi d F R t S h d lFixed-Frame Rate Schedulers
애니메이션및 게임 실습 18
Selection CriteriaSelection Criteria
Al h bl d d t itiAlpha-blended transitions
애니메이션및 게임 실습 19
종류종류
LOD의 종류LOD의 종류
Discrete LOD
Continuous LOD
View Dependent LODView-Dependent LOD
애니메이션및 게임 실습 20
종류종류
Di t LODDiscrete LOD
Static LOD오프라인에서 미리 레벨별 데이터 생성오프라인에서 미리 레벨별 데이터 생성렌더링시 레벨에 맞는 데이터 선택
장점장점
가장 단순한 방식가장 빠른 성능가장 빠른 성능실시간 게임 등에 주로 사용
애니메이션및 게임 실습 21
종류종류
Di t LODDiscrete LOD
단점
급격한 변화(popping)
애니메이션및 게임 실습 22
종류종류
C ti LODContinuous LOD
실시간 처리
장점
정확한 정밀한 표현 가능정확한, 정밀한 표현 가능부드러운 전환View-Dependent LOD 지원
단점
실시간 계산량의 증대실시간 계산량의 증대
애니메이션및 게임 실습 23
종류종류
Vi D d t LODView-Dependent LOD
View from eyepoint Birds-eye view
애니메이션및 게임 실습 24
y
종류종류
Vi D d t LODView-Dependent LOD
애니메이션및 게임 실습 25
종류종류
Vi D d t LODView-Dependent LOD
34,321 triangles
애니메이션및 게임 실습 26
종류종류
Vi D d t LODView-Dependent LOD
11,726 triangles
애니메이션및 게임 실습 27
ErrorsErrors
에러를 계산하는 이유에러를 계산하는 이유
간략화 과정의 지침
결과의 품질 예측
특정 LOD 방법의 선택특정 LOD 방법의 선택
대용량 환경을 위한 품질 조절 가능
애니메이션및 게임 실습 28
ErrorsErrors
에러의 종류에러의 종류
Geometric Error
Attribute Error
애니메이션및 게임 실습 29
ErrorsErrors
G t i EGeometric Error
3D 데이터의 모양 변형에 대한 에러
스크린 공간에서의 모양 유지실루엣 유지
Vertex-Vertex DistanceVertex-Plane DistancePoint-Surface DistancePoint-Surface DistanceSurface-Surface Distance
애니메이션및 게임 실습 30
ErrorsErrors
V t V t Di tVertex-Vertex Distance
vv33
vv11vv22
애니메이션및 게임 실습 31
ErrorsErrors
V t Pl Di tVertex-Plane Distance
Error Quadric
aacc
bbbb
aa bb cc
애니메이션및 게임 실습 32
ErrorsErrors
V t S f Di tVertex-Surface Distance
Progressive Mesh
애니메이션및 게임 실습 33
ErrorsErrors
S f S f Di tSurface-Surface Distance
Simplification Envelopes
애니메이션및 게임 실습 34
ErrorsErrors
Att ib t EAttribute Error
색상, 법선, 텍스처 좌표 에러
최종 픽셀값의 정확도 향상
애니메이션및 게임 실습 35
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
OperatorsOperators
Ed C llEdge Collapse
애니메이션및 게임 실습 37
OperatorsOperators
Ed C llEdge Collapse
애니메이션및 게임 실습 38
OperatorsOperators
V t P i C llVertex-Pair Collapse
애니메이션및 게임 실습 39
OperatorsOperators
T i l C llTriangle Collapse
애니메이션및 게임 실습 40
OperatorsOperators
C ll C llCell Collapse
애니메이션및 게임 실습 41
OperatorsOperators
V t R l d P l M iVertex Removal and Polygon Merging
애니메이션및 게임 실습 42
OperatorsOperators
G l G t i R l tGeneral Geometric Replacement
애니메이션및 게임 실습 43
OperatorsOperators
V l P iVolume Processing
애니메이션및 게임 실습 44
OperatorsOperators
V l P iVolume Processing
애니메이션및 게임 실습 45
OperatorsOperators
Al h H ll B d T l Si lifi tiAlpha-Hull-Based Topology Simplifications
애니메이션및 게임 실습 46
OperatorsOperators
Al h H ll B d T l Si lifi tiAlpha-Hull-Based Topology Simplifications
애니메이션및 게임 실습 47
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
Terrain LODTerrain LOD
지형 LOD 일반 LOD지형 LOD vs 일반 LOD
Terrain is easier...
일반 기하는 제약조건이 많음균등 분할 그리드를 사용특성화될 수 있고 단순 알고리즘의 사용특성화될 수 있고, 단순 알고리즘의 사용
Terrain is more difficult...
연속적이고 거대한 모델매우 가까우면서 매우 먼 모델뷰 의존적인 모델뷰 의존적인 모델out-of-core를 이용한 페이징이 필요함
애니메이션및 게임 실습 49
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
Terrain LODTerrain LOD
R l G idRegular Grid
균등 분할
저장과 처리가 쉬움
고도를 찾기위한 보간이 쉬움
디스크/메모리 효율성 : Z값만 사용디스크/메모리 효율성 Z값만 사용
뷰 컬링과 충돌 검출이 쉬움
애니메이션및 게임 실습 51
Terrain LODTerrain LOD
TINTINs
Triangulated Irregular Networks
적은 수의 삼각형 사용
복잡한 지역은 세밀히, 단순한 지역은 단순하게
최대점, 최소점, 능선, 계곡, 동굴 표현 가능최대점, 최소점, 능선, 계곡, 동굴 표현 가능
애니메이션및 게임 실습 52
Terrain LODTerrain LOD
지형 LOD 예제지형 LOD 예제
Hunter-LiggettHunter-Liggett US Army base
2-m res
8 x 8km
32 M polys
애니메이션및 게임 실습 53
Terrain LODTerrain LOD
지형 LOD 예제지형 LOD 예제
애니메이션및 게임 실습 54
Terrain LODTerrain LOD
지형 LOD 예제지형 LOD 예제
Hawai’i
애니메이션및 게임 실습 55
Terrain LODTerrain LOD
지형 LOD 예제지형 LOD 예제
애니메이션및 게임 실습 56
Terrain LODTerrain LOD
지형 LOD 예제지형 LOD 예제
P t S dPuget Sound, Washington
16,385 x 16,385
512 MB
애니메이션및 게임 실습 57
Progressive MeshProgressive Mesh
H H 1996Hugues Hoppe, 1996
Preserve appearance
LosslessContinuous-resolutionEfficientEfficientProgressive
애니메이션및 게임 실습 58
Progressive MeshProgressive Mesh
간략화간략화
ecol(vs ,vt , vs )v
’
vl vr
vt
vvl v’l r
vs
vsvl vr
(optimization)
애니메이션및 게임 실습 59
Progressive MeshProgressive Mesh
간략화 과정간략화 과정
13,54613,546 500500 152152 150150
^ M0M1M175
ecol0ecoliecoln-1
M=Mn^
애니메이션및 게임 실습 60
Progressive MeshProgressive Mesh
상세화상세화
attributesvspl(vs ,vl ,vr , vs ,vt ,…)’ ’
attributesp ( s , l , r , s , t , )
v
vt’
vsvl vrvl vr
v’vs
애니메이션및 게임 실습 61
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
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
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
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}
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
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
Progressive MeshProgressive Mesh
예제예제
애니메이션및 게임 실습 68
공간자료구조공간자료구조
공간 자료 구조공간 자료 구조
개요개요
객체를 2D 또는 3D로 분할하는 자료 구조보다 빠른 처리를 목표로 함보다 빠른 처리를 목표로 함
Faster real-time renderingFaster intersection testingFaster collisioned detectionFaster collisioned detectionFaster ray tracing and global illumination
사용 분야사용 분야게임영화 렌더링 툴
애니메이션및 게임 실습 70
공간 자료 구조공간 자료 구조
계층형 분할계층형 분할
In 2D space Data structure
애니메이션및 게임 실습 71
공간 자료 구조공간 자료 구조
활용 방법활용 방법
애니메이션및 게임 실습 72
바운딩 볼륨 계층구조바운딩 볼륨 계층구조
바운딩 볼륨(BV)바운딩 볼륨(BV)
일단의 객체들을 내포하는 볼륨BV가 포함하고 있는 물체들보다 더 단순한 기하형태BV가 포함하고 있는 물체들보다 더 단순한 기하형태
구(Sphere)축에 정렬된 바운딩 박스(AABB)축에 정렬된 바운딩 박스(AABB)방향성 바운딩 박스(OBB)k-Dops
렌더링, 다른 계산, 각종 검사 기능을 가속화하는데 사용
애니메이션및 게임 실습 73
바운딩 볼륨 계층구조바운딩 볼륨 계층구조
바운딩 볼륨(BV)바운딩 볼륨(BV)
AABB
모든 축(X,Y,Z)에 대해 최소, 최대인 정점을 가지고 객체를 감싸는 육면체를만든 것객체 회전시 재생성 필요객체 회전시 재생성 필요
애니메이션및 게임 실습 74
바운딩 볼륨 계층구조바운딩 볼륨 계층구조
바운딩 볼륨(BV)바운딩 볼륨(BV)
Bounding Sphere
객체가 길쭉한 형태이거나 구 모양이 아닐 때 비효율적충돌 검사시 효율적
애니메이션및 게임 실습 75
바운딩 볼륨 계층구조바운딩 볼륨 계층구조
바운딩 볼륨(BV)바운딩 볼륨(BV)
OBB
주성분 분석 후 객체를 감쌀 수 있는 가장 작은 육면체 생성경계 구나 AABB보다 경계 볼륨의 효율성이 좋음객체 회전시 OBB 재생성 필요 없음객체 회전시 OBB 재생성 필요 없음
애니메이션및 게임 실습 76
바운딩 볼륨 계층구조바운딩 볼륨 계층구조
B di V l Hi hBounding Volume Hierarchy
3차원 장면의 실시간 렌더링을 위한 가장 일반적인 공간 자료 구조계층적 시각 절두체 선별에 사용계층적 시각 절두체 선별에 사용
루트노드 : 최상위 노드, 부모가 없음내부노드 : 자식들에 대한 포인터내부노드 : 자식들에 대한 포인터말단노드 : 렌더링될 실제 기하 구조
애니메이션및 게임 실습 77
바운딩 볼륨 계층구조바운딩 볼륨 계층구조
BVH의 장점BVH의 장점
다양한 검사 수행 능력이 탁월동적으로 변화하는 장면에 사용 가능동적으로 변화하는 장면에 사용 가능
애니메이션및 게임 실습 78
바운딩 볼륨 계층구조바운딩 볼륨 계층구조
BVH의 생성(AABB)BVH의 생성(AABB)
x is longest Find minimalboxes
S lit lSplit alonglongest axis
Find minimalboxes
애니메이션및 게임 실습 79
BSP 트리BSP 트리
Bi S P titi iBinary Space Partitioning
형태축에 정렬된 형태( i li d)축에 정렬된 형태(axis-aligned)다각형에 정렬된 형태(polygon-aligned)
분할분할공간을 두 개로 분할하는 평면 사용두 공간으로 기하 구조들을 정렬반복반복
특징트리에 들어있는 기하 구조들이 특정한 시점을 기준으로 정렬트리에 들어있는 기하 구조들이 특정한 시점을 기준으로 정렬
애니메이션및 게임 실습 80
BSP 트리BSP 트리
축에 정렬된(A i li d) BSP 트리축에 정렬된(Axis-aligned) BSP 트리
Minimalbox
Split alongplanebox plane
Split alongplane
Split alongplane pp
애니메이션및 게임 실습 81
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
BSP 트리BSP 트리
축에 정렬된(A i li d) BSP 트리축에 정렬된(Axis-aligned) BSP 트리
k-d 트리
루트노드 : x축을 따라서 분할자식노드 : y축을 따라서 분할손자노드 : z축을 따라서 분할손자노드 : z축을 따라서 분할
박스의 가장 긴 쪽을 찾아서 그 방향으로 분할
애니메이션및 게임 실습 83
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
BSP 트리BSP 트리
다각형에 정렬된(P l li d) BSP t다각형에 정렬된(Polygon-aligned) BSP tree
다각형을 공간 분할을 위한 분할자로 사용
애니메이션및 게임 실습 85
BSP 트리BSP 트리
다각형에 정렬된(P l li d) BSP t다각형에 정렬된(Polygon-aligned) BSP tree
최소 교차 기준법(least-crossed criterion)
다각형 선택 방법
다수의 후보 다각형들을 임의로 선택다수의 후보 다각형들을 임의로 선택그 중에서 자신이 속한 평면이 다른 다각형들과 교차하는 횟수가 가장 적은다각형 선택
애니메이션및 게임 실습 86
BSP 트리BSP 트리
다각형에 정렬된(P l li d) BSP t다각형에 정렬된(Polygon-aligned) BSP tree
장점
주어진 관측 조건에 대해서 그 자료 구조가 뒤에서 앞으로 엄격하게 순회될수 있다교차 검사와 충돌 검출에 유용교차 검사와 충돌 검출에 유용
애니메이션및 게임 실습 87
G, C, F, A, E, B, D
8진 트리8진 트리
O tOctree
축에 정렬된 BSP 트리와 유사
하나의 박스는 세 축을 따라서 동시에 분할분할되는 점은 박스의 중심8개의 새로운 박스 생성8개의 새로운 박스 생성
애니메이션및 게임 실습 88
8진 트리8진 트리
O tOctree
애니메이션및 게임 실습 89
8진 트리8진 트리
느슨한 8진 트리(l t )느슨한 8진 트리(loose octree)
애니메이션및 게임 실습 90
장면 그래프장면 그래프
S G hScene Graphs
높은 수준의 트리 구조
기하의 계층적 구조텍스처, 변환, 상세 단계, 렌더링 상태, 광원 등 추가
DAG(Directed Acyclic Graph)
우향 비순환 그래프우향 비순환 그래프어떤 루프나 순환구조를 가지지 않으면서 부모에서 자식으로 향하는 일정한순서가 있음
여러 개의 인스턴스를 가지기 때문
애니메이션및 게임 실습 91
장면 그래프장면 그래프
S G hScene Graphs
애니메이션및 게임 실습 92
4진 트리와 LOD4진 트리와 LOD
예제예제
애니메이션및 게임 실습 93
4진 트리와 LOD4진 트리와 LOD
예제예제
애니메이션및 게임 실습 94
Question?Question?Question?Question?
애니메이션및 게임 실습 95