24
김성익([email protected]) 2008.9.21

08_Marching Cube Terrains

  • Upload
    noerror

  • View
    1.327

  • Download
    1

Embed Size (px)

Citation preview

Page 1: 08_Marching Cube Terrains

김성익([email protected])2008.9.21

Page 2: 08_Marching Cube Terrains

Marching Cube 란(1)

• IsoSurface– Isobar (2d) : 필드에서 값이 일정한 영역(선)

– Isosurface : 3차원 공간에서 값이 일정한 표면

Page 3: 08_Marching Cube Terrains

Marching Cube 란 (2)

• IsoSurface

• Voxel

Page 4: 08_Marching Cube Terrains

Marching Cube 란 (3)

• IsoSurface

• Voxel

• 3d 형상화– Metaball

– Blobs

Page 5: 08_Marching Cube Terrains

Marching Cube 란 (4)

• IsoSurface

• Voxel

• 3d 형상화– Metaball

– Blobs

• Marching Cube Algorithm

Page 6: 08_Marching Cube Terrains

Marching Cube Terrain!!

Page 7: 08_Marching Cube Terrains

장점

• 다양한 형태의 지형 지원 가능– 동굴, 터널

• 자유로운 변형이 용이– 동적인 파괴!

• 손쉽고 직관적인 디자인

Page 8: 08_Marching Cube Terrains

구현 단계

• 3D 데이터

• 각 영역별 Segment 관계로 폴리곤 생성

• 텍스처 매핑

Page 9: 08_Marching Cube Terrains

데이터(1)

• Voxel

• Field

• 3차원 배열 데이터– 용량이 크다

• Byte로 512x512x512 정도만 가정해도 128 MB

• 데이터 압축 및 효율화– RLE 압축

– OCTREE를 이용한 씬매니징

Page 10: 08_Marching Cube Terrains

데이터(2)

• Case A– 적은 메모리로 랜덤 노이즈를 이용

– 계층적

Page 11: 08_Marching Cube Terrains

폴리곤 생성(1)

• 인접 영역의 값을 이용폴리곤 생성

• 256가지 형태 => 15가지 형태 (회전, 반전)

Page 12: 08_Marching Cube Terrains

폴리곤 생성(2)

• 비교 : Marching Square (2d)

Page 13: 08_Marching Cube Terrains

폴리곤 생성(3)

• 인접한 영역의 값으로 형태를 정한다

• 버텍스를 추가– 미리 계산된 테이블 이용 엣지에 버텍스 추가

– 엣지의 경우 평면이 생기는 지점에 버텍스추가

• 페이스 추가– 미리 계산된 테이블 이용

• 모든 영역에 대해서 반복

Page 14: 08_Marching Cube Terrains

폴리곤 생성(4)

Page 15: 08_Marching Cube Terrains

폴리곤 생성(5)

• 노멀– 같은 위치의 노멀 평균

• 해상도 이슈

• 동적인 생성 / 캐싱 (뷰연관)

Page 16: 08_Marching Cube Terrains

텍스처 매핑(1)

• 일반적인 UV 매핑이 불가능

• 알고리즘에 의해 생성

Page 17: 08_Marching Cube Terrains

텍스처 매핑(2)

• Case A– 높이, 기울기에 따라 텍스처 인덱스를 매핑

Page 18: 08_Marching Cube Terrains

텍스처매핑(3)

• Case B– 한 평면에 투영X

– 3 평면에 투영, 노멀로 블랜딩 (텍스처 제작에 주의)

Page 19: 08_Marching Cube Terrains

참고영상

• cascades - nvidia

Page 20: 08_Marching Cube Terrains

기타(1)

• 동적으로 생성

Page 21: 08_Marching Cube Terrains

기타(2)

• 물

Page 22: 08_Marching Cube Terrains

기타(3)

• 하이트맵과 연동

Page 23: 08_Marching Cube Terrains

질문/답

Page 24: 08_Marching Cube Terrains

참고

• http:/ /www.cs.montana.edu/~ bnct/ publications/ cory/ thesis.html

• http:/ /www.ia.hiof.no/ ~ borres/ cgraph/ explain/marching/p- march.html

• http:/ /www.econym.demon.co.uk/ isotut/

• http:/ /www.gamedev.net/ community/ forums/ topic.asp?topic_id=503739

• http:/ / local.wasp.uwa.edu.au/~ pbourke/ geometry/polygonise/

• http:/ /www.gamedev.net/ community/ forums/mod/ journal/ journal.asp?jn=263350&reply_id=3198944

• http:/ /www.ogre3d.org/phpBB2/viewtopic.php?t=32486

• http:/ /www.moon- sun.com/main/article/metaeffect/metaeffect.htm

• http:/ /www.nzone.com/object/ nzone_cascades_home.html