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