A presentation at 넥슨 개발자 컨퍼런스 2007 in June 2007 in Seoul, South Korea by Jubok Kim
절차적 지형 생성 방식 트렌드 리뷰 : 크기와 품질 데브캣 W팀 TD & 부팀장 김주복
김주복 [eias@nexon.co.kr] 2001년 입사 마비노기 프로그래밍팀 팀장 그룹웨어 개발팀 팀장 현 W팀 부팀장/테크니컬 디렉터
세션 주제는
절차적 지형 생성 PROCEDUREAL TERRAIN GENERATION
…이란 게 도대체 뭡니까?
절차적생성 정해진 규칙이나 방법을 반복적으로 적용해서 데이터를 만들어내는 것
XFrog greenworks 절차적 자연물 모델링 소프트웨어
spore Will Wright’s 모든 것이 절차적으로 생성
절차적지형생성 정해진 규칙이나 방법을 반복적으로 적용해서 지형 데이터를 만들어내는 것 10
지형을 왜? 절차적으로 생성해야 하나?
게임이 커지고 있다! 에버퀘스트 12km×12km 애쉴론즈콜 24km×24km 월드오브 워크래프트 35km×35km (부정확) 스타워즈 갤럭시 16km×16km×10
로데른 5km×15km
스타워즈 갤럭시 50km×50km 서울시 50km×50km
Test Drive Unlimited 약 40km×60km
서울시크기의 맵을손으로 만들어서야 언제출시할지 기약이없다
절차적 지형생성의 목표 1.최소한의 수작업 2.고품질의 달성
어느 수준까지 가능할까?
Oblivion bethesda bethesda The Elder Scrolls IV:
20 Just Cause eidos eidos
Gran Turismo HD sce sce
이 세션에서 다룰 주제들 지형 생성 방식 소개 각 방식의 장단점 지형 생성의 난제 이 세션에서 다루지 않을 주제들 구체적 구현 방법 LOD, 로딩 등 문제 가장 좋은 방법
GEND 자연지형의 생성방법 절차적 생성 시뮬레이션 수작업 혼합 실제 데이터 기반 이미지 기반 생성 랜드 커버링 자동화
자연지형의생성 생성 방법들 절차적 생성 시뮬레이션 수작업 혼합 실제 데이터 기반 이미지 기반 생성
기초적인 방법: 펄린노이즈 단계적으로 작은 노이즈를 더해나간다
기초적인 방법: 랜덤중점변이 매 단계마다 생성된 지형을 반절씩 나누면서 디테일을 추가한다
3D로 본 랜덤중점변이
이런 지형 생성 방법에 대한 설명은 손쉽게 찾을 수 있다, 하지만…
기초적인 방법이란 의미는… “누가 봐도 사실적인 것과는 거리가 멀다.”
자연지형의생성 생성 방법들 30 절차적 생성 시뮬레이션 수작업 혼합 실제 데이터 기반 이미지 기반 생성
풍화작용을 시뮬레이션하면 좀 더 사실적으로 보인다
풍화작용 시뮬레이션은 느리지만 많은 도구에서 기본으로 지원하고 품질도 좋다
비에의한 침식
열에 의한 침식
× 펄린노이즈 × 보로노이함수 절차적 방법과 복합적으로 사용 모두 곱한다 침식 그럭저럭 볼만한 상태
그런데 이 방법이 게임에서 쓸 지형을 만들 때도 좋을까?
게임플레이 기획에 따라 만들어진 대략의 지도
1차시도
절차적변환 블러링 중간 결과
프랙탈 디테일 추가 결과 40
형태가 다름 디테일 부족 강과 길의 제어가 어려움
2차시도
지도를 좀 더 넓게 그림 강 부분을 따로 그림 풍화처리
1번에서 2번을 빼줌 여러 차례 풍화를 거침
결과
여전히 강과 길의 제어가 어려움
자연스러움과 스케일감의 문제 알프스 50km×50km
Case Study: “반지의 제왕” 중간계DEM 프로젝트 Middle Earth DEM Project http://www.me-dem.org/
DEM? 50
DIGITAL Elevation Model 좀 러프하게 하이트 맵이라고 생각해도 무방
중간계 DEM 프로젝트 중간계 지도를 디지털화하는 프로젝트 “반지의 제왕”의
왜? 이 프로젝트가 중요한가?
게임의 월드처럼 제로부터 기획된 세계를 구체화해가는 과정
분량이 많기 때문에 대략의 개요만 살펴보도록 하자
평원→산→강
중간계 지도를 준비
등고선 작성
작성된 등고선
등고선에 프랙탈 풍화를 적용 60 아직 밋밋하다
잠깐, 풍화효과에…
웬 프랙탈?
적당히 사실적이고 무한정 확대 가능하고 생성 속도가 “매우” 빠르다
프랙탈 풍화를 포함하여 작성된 평원
단면의 높이를 지정 70
등고선 역시 지정
러프하게 완료된 상태 폴리곤이 거칠다
마찬가지로 프랙탈 풍화를 적용
두 데이터를 합성
생성된 지형을 기반으로
수분의 흐름을 시뮬레이션
지표면의 미묘한 요철 생성
수량이 많은 곳에 강줄기를 생성
생성된 강줄기를 풍화효과 마스크화 80
지형과 강줄기 마스크
강 부분만 풍화시킨 결과 알프스 50km×50km
결과 상당히 그럴듯한 결과물이 만들어졌다
“하지만 이래서야 그냥 수작업인 것 아닙니까?”
자연지형의생성 절차적 생성 시뮬레이션 생성 방법들 수작업 혼합 실제 데이터 기반 이미지 기반 생성
관광지나 유명한 곳의 DEM 소스는 비교적 많다
이 고생을 할 바에야 실제 지형을 가져다 쓰자
10m 해상도의 오아후 섬 DEM
벡터 형태의 도로 정보
90 DEM과 도로 정보를 결합
여기까지는 웹 서핑 10분만에 충분히 가능하지만…
도로를 놓을 수 있도록 DEM을 수정
표지판, 전신주, 나무…
……
지형 생성은 느리고 비사실적이고 맘대로 되지도 않는다
실제 DEM을 오려 붙이는 건 어떨까?
Case Study: Terrain Synthesis from Digital Elevation Models
소스가 되는 DEM
능선을 무조건 연결 100
선으로 정리
잔선을 정리한 결과
결과를 부품으로 추출
…
능선이 없는 부분에는 매우 약하다
여기서 완성이 아니다
땅위에는 항상 식물이 있다 110
수분도 분석
토양 분석
나무 배치
1.근처에 큰 나무가 있으면 죽는다 2.종마다 성장 한계가 있다 3.매 턴마다 성장한다
결론
절차적 생성의 필요성 게임의 대형화 취할 수 있는 접근 수작업의 비중에 따라 자연물의 배치 비교적 손쉽게 자동화 가능
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”
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/
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/
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/
Questions? 끝
View 절차적 지형 생성 방식 트렌드 리뷰 : 크기와 품질 on Notist.
Dismiss
절차적 지형 생성 및 식생 배치에 사용할 수 있는 방법을 서베이한 결과를 공유합니다.