절차적 지형 생성 방식 트렌드 리뷰 : 크기와 품질

A presentation at 넥슨 개발자 컨퍼런스 2007 in June 2007 in Seoul, South Korea by Jubok Kim

Slide 1

Slide 1

절차적 지형 생성 방식 트렌드 리뷰 : 크기와 품질 데브캣 W팀 TD & 부팀장 김주복

Slide 2

Slide 2

김주복 [eias@nexon.co.kr] 2001년 입사 마비노기 프로그래밍팀 팀장 그룹웨어 개발팀 팀장 현 W팀 부팀장/테크니컬 디렉터

Slide 3

Slide 3

세션 주제는

Slide 4

Slide 4

절차적 지형 생성 PROCEDUREAL TERRAIN GENERATION

Slide 5

Slide 5

…이란 게 도대체 뭡니까?

Slide 6

Slide 6

절차적생성 정해진 규칙이나 방법을 반복적으로 적용해서 데이터를 만들어내는 것

Slide 7

Slide 7

Slide 8

Slide 8

XFrog greenworks 절차적 자연물 모델링 소프트웨어

Slide 9

Slide 9

spore Will Wright’s 모든 것이 절차적으로 생성

Slide 10

Slide 10

절차적지형생성 정해진 규칙이나 방법을 반복적으로 적용해서 지형 데이터를 만들어내는 것 10

Slide 11

Slide 11

지형을 왜? 절차적으로 생성해야 하나?

Slide 12

Slide 12

게임이 커지고 있다! 에버퀘스트 12km×12km 애쉴론즈콜 24km×24km 월드오브 워크래프트 35km×35km (부정확) 스타워즈 갤럭시 16km×16km×10

Slide 13

Slide 13

로데른 5km×15km

Slide 14

Slide 14

스타워즈 갤럭시 50km×50km 서울시 50km×50km

Slide 15

Slide 15

Test Drive Unlimited 약 40km×60km

Slide 16

Slide 16

서울시크기의 맵을손으로 만들어서야 언제출시할지 기약이없다

Slide 17

Slide 17

절차적 지형생성의 목표 1.최소한의 수작업 2.고품질의 달성

Slide 18

Slide 18

어느 수준까지 가능할까?

Slide 19

Slide 19

Oblivion bethesda bethesda The Elder Scrolls IV:

Slide 20

Slide 20

20 Just Cause eidos eidos

Slide 21

Slide 21

Gran Turismo HD sce sce

Slide 22

Slide 22

이 세션에서 다룰 주제들 지형 생성 방식 소개 각 방식의 장단점 지형 생성의 난제 이 세션에서 다루지 않을 주제들 구체적 구현 방법 LOD, 로딩 등 문제 가장 좋은 방법

Slide 23

Slide 23

GEND 자연지형의 생성방법 절차적 생성 시뮬레이션 수작업 혼합 실제 데이터 기반 이미지 기반 생성 랜드 커버링 자동화

Slide 24

Slide 24

자연지형의생성 생성 방법들 절차적 생성 시뮬레이션 수작업 혼합 실제 데이터 기반 이미지 기반 생성

Slide 25

Slide 25

기초적인 방법: 펄린노이즈 단계적으로 작은 노이즈를 더해나간다

Slide 26

Slide 26

기초적인 방법: 랜덤중점변이 매 단계마다 생성된 지형을 반절씩 나누면서 디테일을 추가한다

Slide 27

Slide 27

3D로 본 랜덤중점변이

Slide 28

Slide 28

이런 지형 생성 방법에 대한 설명은 손쉽게 찾을 수 있다, 하지만…

Slide 29

Slide 29

기초적인 방법이란 의미는… “누가 봐도 사실적인 것과는 거리가 멀다.”

Slide 30

Slide 30

자연지형의생성 생성 방법들 30 절차적 생성 시뮬레이션 수작업 혼합 실제 데이터 기반 이미지 기반 생성

Slide 31

Slide 31

풍화작용을 시뮬레이션하면 좀 더 사실적으로 보인다

Slide 32

Slide 32

풍화작용 시뮬레이션은 느리지만 많은 도구에서 기본으로 지원하고 품질도 좋다

Slide 33

Slide 33

비에의한 침식

Slide 34

Slide 34

열에 의한 침식

Slide 35

Slide 35

× 펄린노이즈 × 보로노이함수 절차적 방법과 복합적으로 사용 모두 곱한다 침식 그럭저럭 볼만한 상태

Slide 36

Slide 36

그런데 이 방법이 게임에서 쓸 지형을 만들 때도 좋을까?

Slide 37

Slide 37

게임플레이 기획에 따라 만들어진 대략의 지도

Slide 38

Slide 38

1차시도

Slide 39

Slide 39

절차적변환 블러링 중간 결과

Slide 40

Slide 40

프랙탈 디테일 추가 결과 40

Slide 41

Slide 41

형태가 다름 디테일 부족 강과 길의 제어가 어려움

Slide 42

Slide 42

2차시도

Slide 43

Slide 43

지도를 좀 더 넓게 그림 강 부분을 따로 그림 풍화처리

Slide 44

Slide 44

1번에서 2번을 빼줌 여러 차례 풍화를 거침

Slide 45

Slide 45

결과

Slide 46

Slide 46

여전히 강과 길의 제어가 어려움

Slide 47

Slide 47

자연스러움과 스케일감의 문제 알프스 50km×50km

Slide 48

Slide 48

자연지형의생성 생성 방법들 절차적 생성 시뮬레이션 수작업 혼합 실제 데이터 기반 이미지 기반 생성

Slide 49

Slide 49

Case Study: “반지의 제왕” 중간계DEM 프로젝트 Middle Earth DEM Project http://www.me-dem.org/

Slide 50

Slide 50

DEM? 50

Slide 51

Slide 51

DIGITAL Elevation Model 좀 러프하게 하이트 맵이라고 생각해도 무방

Slide 52

Slide 52

중간계 DEM 프로젝트 중간계 지도를 디지털화하는 프로젝트 “반지의 제왕”의

Slide 53

Slide 53

왜? 이 프로젝트가 중요한가?

Slide 54

Slide 54

게임의 월드처럼 제로부터 기획된 세계를 구체화해가는 과정

Slide 55

Slide 55

분량이 많기 때문에 대략의 개요만 살펴보도록 하자

Slide 56

Slide 56

평원→산→강

Slide 57

Slide 57

중간계 지도를 준비

Slide 58

Slide 58

등고선 작성

Slide 59

Slide 59

작성된 등고선

Slide 60

Slide 60

등고선에 프랙탈 풍화를 적용 60 아직 밋밋하다

Slide 61

Slide 61

잠깐, 풍화효과에…

Slide 62

Slide 62

웬 프랙탈?

Slide 63

Slide 63

Slide 64

Slide 64

Slide 65

Slide 65

Slide 66

Slide 66

적당히 사실적이고 무한정 확대 가능하고 생성 속도가 “매우” 빠르다

Slide 67

Slide 67

Slide 68

Slide 68

프랙탈 풍화를 포함하여 작성된 평원

Slide 69

Slide 69

평원→산→강

Slide 70

Slide 70

단면의 높이를 지정 70

Slide 71

Slide 71

등고선 역시 지정

Slide 72

Slide 72

러프하게 완료된 상태 폴리곤이 거칠다

Slide 73

Slide 73

마찬가지로 프랙탈 풍화를 적용

Slide 74

Slide 74

두 데이터를 합성

Slide 75

Slide 75

평원→산→강

Slide 76

Slide 76

생성된 지형을 기반으로

Slide 77

Slide 77

수분의 흐름을 시뮬레이션

Slide 78

Slide 78

지표면의 미묘한 요철 생성

Slide 79

Slide 79

수량이 많은 곳에 강줄기를 생성

Slide 80

Slide 80

생성된 강줄기를 풍화효과 마스크화 80

Slide 81

Slide 81

지형과 강줄기 마스크

Slide 82

Slide 82

강 부분만 풍화시킨 결과 알프스 50km×50km

Slide 83

Slide 83

결과 상당히 그럴듯한 결과물이 만들어졌다

Slide 84

Slide 84

“하지만 이래서야 그냥 수작업인 것 아닙니까?”

Slide 85

Slide 85

자연지형의생성 절차적 생성 시뮬레이션 생성 방법들 수작업 혼합 실제 데이터 기반 이미지 기반 생성

Slide 86

Slide 86

관광지나 유명한 곳의 DEM 소스는 비교적 많다

Slide 87

Slide 87

이 고생을 할 바에야 실제 지형을 가져다 쓰자

Slide 88

Slide 88

10m 해상도의 오아후 섬 DEM

Slide 89

Slide 89

벡터 형태의 도로 정보

Slide 90

Slide 90

90 DEM과 도로 정보를 결합

Slide 91

Slide 91

여기까지는 웹 서핑 10분만에 충분히 가능하지만…

Slide 92

Slide 92

도로를 놓을 수 있도록 DEM을 수정

Slide 93

Slide 93

표지판, 전신주, 나무…

Slide 94

Slide 94

……

Slide 95

Slide 95

자연지형의생성 절차적 생성 시뮬레이션 생성 방법들 수작업 혼합 실제 데이터 기반 이미지 기반 생성

Slide 96

Slide 96

지형 생성은 느리고 비사실적이고 맘대로 되지도 않는다

Slide 97

Slide 97

실제 DEM을 오려 붙이는 건 어떨까?

Slide 98

Slide 98

Case Study: Terrain Synthesis from Digital Elevation Models

Slide 99

Slide 99

소스가 되는 DEM

Slide 100

Slide 100

능선을 무조건 연결 100

Slide 101

Slide 101

선으로 정리

Slide 102

Slide 102

잔선을 정리한 결과

Slide 103

Slide 103

결과를 부품으로 추출

Slide 104

Slide 104

Slide 105

Slide 105

Slide 106

Slide 106

Slide 107

Slide 107

능선이 없는 부분에는 매우 약하다

Slide 108

Slide 108

GEND 자연지형의 생성방법 절차적 생성 시뮬레이션 수작업 혼합 실제 데이터 기반 이미지 기반 생성 랜드 커버링 자동화

Slide 109

Slide 109

여기서 완성이 아니다

Slide 110

Slide 110

땅위에는 항상 식물이 있다 110

Slide 111

Slide 111

수분도 분석

Slide 112

Slide 112

토양 분석

Slide 113

Slide 113

나무 배치

Slide 114

Slide 114

1.근처에 큰 나무가 있으면 죽는다 2.종마다 성장 한계가 있다 3.매 턴마다 성장한다

Slide 115

Slide 115

Slide 116

Slide 116

Slide 117

Slide 117

결론

Slide 118

Slide 118

절차적 생성의 필요성 게임의 대형화 취할 수 있는 접근 수작업의 비중에 따라 자연물의 배치 비교적 손쉽게 자동화 가능

Slide 119

Slide 119

References 1/4 Bedrich Benes, “Visual Simulation of Hydraulic Erosion” Brendan Lane, Przemyslaw Prusinkiewicz, “Generating Spatial Distributions for Multilevel Models of Plant Communities” Coastal Geology Group, “Shoreline Imagery for Oahu”, http://www.soest.hawaii.edu/coasts/data/oahu/dem.html daz3d, “Bryce”, http://www.daz3d.com/i.x/software/bryce/78f8c75d338f3a3b4c5428d38836a8b2/? Dmytry Lavrov, “Erosion Fractal”, http://dmytry.pandromeda.com/mojoworld/erosion_fractal/home.html e-on software, “Vue 5 Infinite”, http://www.e-onsoftware.com/products/vue/vue_5_infinite/?page=7 Farès Belhadj, Pierre Audiber, “Modeling Landscapes with Ridges and Rivers” FVS Software, “Forest Vegetation Simulator”, http://www.fs.fed.us/fmsc/fvs/software/index.shtml Howard Zhou, Jie Sun, Greg Turk, James M. Rehg, “Terrain Synthesis from Digital Elevation Models”

Slide 120

Slide 120

References 2/4 Jeff Grills, “Optimizations and Star Wars Galaxies” Joe Slayton, “Wilbur”, http://www.ridgenet.net/~jslayton/software.html Johan Hammes, “Modeling of Ecosystems as a Data Source for Real-Time Terrain Rendering” Johannes Rossenberg, “GeoControl”, http://www.cajomi.de/GeoControl/geocontrol.htm Kai Hormann, Salvatore Spinello, Peter Schroder, “C1-continuous Terrain Reconstruction from Sparse Contours” L3DT documentation, “Water-Mapping Algorithms”, http://www.bundysoft.com/docs/doku.php?id=l3dt:algorithms:wm Maciej Dakowicz, Christopher Gold, “Visualizing Terrain Models from Contours-Plausible Ridge, Valley and Slope Estimation“ “Middle Earth DEM Project”, http://www.me-dem.org/

Slide 121

Slide 121

References 3/4 Oliver Deussen, Pat Hanrahan, Bernd Lintermann, Radomír Měch, Mett Pharr, Przemyslaw Prusinkiewicz, “Realitstic Modeling and Rendering of Plant Ecosystems” Patric Perez, Michel Gangnet, Andrew Black, “Poisson Image Editing“ Planetside, “Terragen”, http://www.planetside.co.uk/terragen/ Planetside, “Terragen 2”, http://www.planetside.co.uk/terragen/tg2/index.shtml S. Stachniak, W. Stuerzlinger, “An Algorithm for Automated Fractal Terrain Deformation” “SAGA GIS”, http://www.saga-gis.uni-goettingen.de/html/index.php TeamXbox, “The Environments of Test Drive Unlimited: Part One”, http://features.teamxbox.com/xbox/1604/The-Environments-of-Test-Drive-Unlimited-PartOne/p1/

Slide 122

Slide 122

References 4/4 TeamXbox, “The Enviromnents of Test Drive Unlimited: Part Two”, http://features.teamxbox.com/xbox/1605/The-Environments-of-Test-Drive-Unlimited-PartTwo/p1/ Tobold’s MMORPG Blog, “How big is Azaroth?”, http://tobolds.blogspot.com/2007/01/how-big-is-azeroth.html USGS, “Hawaii Data Clearinghous”, http://hawaii.wr.usgs.gov/oahu/metadata.html Yoav I H Parish, Pascal Müller, “Procedural Modeling of Cities” Ytrilynth’s Horde, “Azeroth Geography Lesson by Rychan”, http://www.ytrilynth.org/board/viewtopic.php?t=282 Y.-C. Chang, G.-S. Song, and S.-K. Hsu, “Automatic Extraction of Ridge and Valley Axes Using the Profile Recognition and Polygon-Breaking Algorithm” “World Machine”, http://www.world-machine.com/ “World Machine Development Diary”, http://www.world-machine.com/blog/

Slide 123

Slide 123

Questions? 끝