Upload
noerror
View
1.327
Download
1
Embed Size (px)
Citation preview
김성익([email protected])2008.9.21
Marching Cube 란(1)
• IsoSurface– Isobar (2d) : 필드에서 값이 일정한 영역(선)
– Isosurface : 3차원 공간에서 값이 일정한 표면
Marching Cube 란 (2)
• IsoSurface
• Voxel
Marching Cube 란 (3)
• IsoSurface
• Voxel
↓
• 3d 형상화– Metaball
– Blobs
Marching Cube 란 (4)
• IsoSurface
• Voxel
↓
• 3d 형상화– Metaball
– Blobs
↑
• Marching Cube Algorithm
Marching Cube Terrain!!
장점
• 다양한 형태의 지형 지원 가능– 동굴, 터널
• 자유로운 변형이 용이– 동적인 파괴!
• 손쉽고 직관적인 디자인
구현 단계
• 3D 데이터
• 각 영역별 Segment 관계로 폴리곤 생성
• 텍스처 매핑
데이터(1)
• Voxel
• Field
• 3차원 배열 데이터– 용량이 크다
• Byte로 512x512x512 정도만 가정해도 128 MB
• 데이터 압축 및 효율화– RLE 압축
– OCTREE를 이용한 씬매니징
데이터(2)
• Case A– 적은 메모리로 랜덤 노이즈를 이용
– 계층적
폴리곤 생성(1)
• 인접 영역의 값을 이용폴리곤 생성
• 256가지 형태 => 15가지 형태 (회전, 반전)
폴리곤 생성(2)
• 비교 : Marching Square (2d)
폴리곤 생성(3)
• 인접한 영역의 값으로 형태를 정한다
• 버텍스를 추가– 미리 계산된 테이블 이용 엣지에 버텍스 추가
– 엣지의 경우 평면이 생기는 지점에 버텍스추가
• 페이스 추가– 미리 계산된 테이블 이용
• 모든 영역에 대해서 반복
폴리곤 생성(4)
폴리곤 생성(5)
• 노멀– 같은 위치의 노멀 평균
• 해상도 이슈
• 동적인 생성 / 캐싱 (뷰연관)
텍스처 매핑(1)
• 일반적인 UV 매핑이 불가능
• 알고리즘에 의해 생성
텍스처 매핑(2)
• Case A– 높이, 기울기에 따라 텍스처 인덱스를 매핑
텍스처매핑(3)
• Case B– 한 평면에 투영X
– 3 평면에 투영, 노멀로 블랜딩 (텍스처 제작에 주의)
참고영상
• cascades - nvidia
기타(1)
• 동적으로 생성
기타(2)
• 물
기타(3)
• 하이트맵과 연동
질문/답
참고
• 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