SlideShare a Scribd company logo
1 of 52
Recast 네비메쉬

      돼지고기(구경원)
        데브루키
1. Recast 소개
 -개발자
 크라이시스 “리드 AI 프로그래머”
 Mikko Mononen.
 -랜더링
 OpenGL
 -UI
 SDL
- 자동으로 네비게이션 메쉬를 만들어 준다.

- 레벨 디자이너들에게 효율적인 편의성을 제
  공 해주기 위한 툴이다.

- 오픈소스이며, 개발자 마음대로 수정하여 사
  용할 수 있다.

- 다운로드 및 Wiki를 통한 피드백 가능.
http://code.google.com/p/recastnaviga
  tion/
Recast 를 사용하면 무엇이 좋은가
            요?
기존 네비메쉬 제작.
레벨 디자이너들이 지형모형에 맞추어서 한
 땀 한땀 만들어 나가는 장인정신의 결실.

Recast 툴 사용.
옵션 설정으로 다양한 지형에 대해서 버튼
 한번 클릭으로 누구나 쉽게 메쉬를 생성할
 수 있다. 작업 효율의 증가.
어느 장르 게임에 어울리나요?

권장사항.
FPS, 존 방식의 게임.
적은 지형을 필요로 하는 게임.

그외사항.
MMORPG와 같은 넓은 필드도 가능.
2. Recast 구성
 Detour
 A-Star 알고리즘의 길찾기 소스
 Recast
 복셀을 이용한 네비게이션 메쉬 만드는 소스
 RecastDemo
 샘플 프로그램 소스
3. Recast 기능
Rasterization
CellSize
- 복셀 필드를 구성하는 Cell의 넓이.
- 셀 조절 = 해상도 조절
- 낮은 값으로 생성하면 지형 메쉬에 컬리티
  높은 네비게이션 메쉬를 생성할 수 있다.
  하지만 처리비용이 높아지고 메모리를 많
  이 필요로 한다.
낮은 값




높은 값
Rasterization
CellHeight
- 복셀 필드를 구성하는 Cell의 높이.
- 셀조절 = 해상도 조절
- 낮은 값으로 생성하면 지형 메쉬에 근접한
  높이를 가지는 네비게이션 메쉬를 생성할
  수 있다. 하지만 처리비용이 높아지지만
  메모리 사용량은 크게 증가하지 않는다.
높은 값




낮은 값
Agent
Height
- 가상의 객체의 높이.
- 낮은 값으로 생성하면 낮은 값의 높이가
  지나갈 수 있는 부분의 지역에 네비게이션
  메쉬를 생성 해준다.
낮은 값




높은 값
Agent
Radius
- 가상의 객체의 둘레.
- 둘레의 수치를 조절하여 실제로 지역의 경
  계면에 플레이어가 움직일 수 있는 범위만
  큼 네비게이션 메쉬를 생성한다.
높은 값




낮은 값
Agent
Max Climb
- 가상의 객체의 올라갈 수 있는 높이.
- 수치를 높이면 Height 와는 다르게 객체
  의 올라갈수 있는 높이만큼 네비게이션 메
  쉬가 생성된다.
낮은 값




높은 값
Agent
Max Slope
- 가상의 객체의 올라갈 수 있는 경사도.
- 경사도가 있는 지형에 네비게이션 메쉬를
  생성하고자 할 때에 수치를 높여주면 된
  다.
높은 값




낮은 값
Region
Min Region Size
- 연결되여 있지 않은 부분에 대해서 독립적
  인 네비게이션 메쉬를 생성해준다.
낮은 값




높은 값
Region
Merged Region Size
- 작은 영역의 수를 주위의 큰 지역에 병합
  시켜 준다.
- 작은 영역에서 발생하는 대각선 경로의 문
  제를 해결해준다.
- 값이 작을수록 일부분에서 얇고 긴 삼각형
  이 생성된다.
낮은 값




높은 값
Polygonization
Max Edge Length
- 네비게이션 메쉬의 경계를 나타내는 다각
  형 가장자리의 최대길이를 조절할 수 있
  다.
- 값을 0으로 하면 비활성화 된다.
낮은 값




높은 값
Polygonization
Max Edge Error
- 네비게이션 메쉬의 가장자리를 최대한 지
  형 메쉬의 윤곽에 따라 만들어 준다.
- 값이 낮을수록 다각형의 개수가 많이 지므
  로 제로 값은 권장하지 않는다.
낮은 값




높은 값
Polygonization
Verts Per Poly
- 다각형을 이루는 정점들의 수.
- 높은 값은 처리비용은 증가하지만 좀더 나
  은 네비게이션 메쉬를 생성할 수 있다.
- 일반적으로 6이상의 사용은 권하지 않는
  다.
높은 값(6)




낮은 값(3)
Detail Mesh
Sample Distance
- 지형메쉬의 표면에 네비게이션 메쉬를 일
  치시킬 때 사용하는 샘플링 거리를 설정한
  다.
- 낮은 값을 사용할수록 지형메쉬에 디테일
  하게 삼각형들이 생성되지만 연산이 높아
  진다.
높은 값




낮은 값
Detail Mesh
Max Sample Error
- Sample Distance에서 발생할 수 있는
  부족한 부분을 좀 더 디테일하게 만들어
  주는 역할을 한다.
- 값이 낮을수록 연산량이 많아지지만 디텔
  일은 높아진다.
- 0의 사용은 권장하지 않는다.
높은 값




낮은 값
• 툴 시연
4. 추가기능



 툴에서 생성된 네비게이션 메쉬에 직접
 A*알고리즘을 테스트 할 수 있다.
네비메쉬 다각형마다 플래그를 지정해
서 원하는 옵션을 줄 수 있다.
떨어져 있는 두 메쉬 간의 공간을 가상
으로 연결해주는 기능을 제공한다.
(포탈기능)
• 툴 시연
주의사항
• 메쉬당 버텍스 수가 65536개로 제한되여
  있다.

• -4000 ~ 4000 사이의 좌표 안에 해당하
  는 메쉬에 대해서 높은 정확성을 가질 수
  있다.
주의사항
• 너무 디테일하게 네비메쉬를 생성하려고
  하면 상당히 많은 메모리를 필요로 해서
  생성이 안되거나 오류가 날 수 도 있다.

• 또한 너무 느슨하게 생성하면 중복된 좌표
  로 인한 네비메쉬 겹침 현상이 발생할 수
  도 있다.
3. 작업

 • 사용 확장자 *.obj

 • Meshes 폴더에 넣어두면 자동으로 툴의
   목록에 읽혀진다.

 • *.obj 내부는 TXT 형태로 상당히 심플하
   게 구성 되여 있다.
.obj 해부




v 버텍스 좌표
f 인덱스 번호
사용 순서
지형 툴에서
           .obj      Recast 에서
정점 데이터                 랜더링
          파일 생성
  추출




          생성된 네비메
  사용      쉬 정점 데이터   네비메쉬 생성
             추출
레벨 디테일
Tile Mesh
- 넓은 지형을 일정한 크기의 타일로 나누어
  서 부분 타일마다 네비게이션 메쉬를 생성
  한다.
- 부분 적으로 연산이 필요하기 때문에 메모
  리 사용량도 부분적이다.
- 타일메쉬를 사용하면 저장기능도 제공한
  다.
•Q&A
•END

More Related Content

What's hot

[0122 구경원]게임에서의 충돌처리
[0122 구경원]게임에서의 충돌처리[0122 구경원]게임에서의 충돌처리
[0122 구경원]게임에서의 충돌처리KyeongWon Koo
 
나만의 엔진 개발하기
나만의 엔진 개발하기나만의 엔진 개발하기
나만의 엔진 개발하기YEONG-CHEON YOU
 
08_게임 물리 프로그래밍 가이드
08_게임 물리 프로그래밍 가이드08_게임 물리 프로그래밍 가이드
08_게임 물리 프로그래밍 가이드noerror
 
레퍼런스만 알면 언리얼 엔진이 제대로 보인다
레퍼런스만 알면 언리얼 엔진이 제대로 보인다레퍼런스만 알면 언리얼 엔진이 제대로 보인다
레퍼런스만 알면 언리얼 엔진이 제대로 보인다Lee Dustin
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012devCAT Studio, NEXON
 
게임 분산 서버 구조
게임 분산 서버 구조게임 분산 서버 구조
게임 분산 서버 구조Hyunjik Bae
 
[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화
[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화
[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화Jaeseung Ha
 
멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)Bongseok Cho
 
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019devCAT Studio, NEXON
 
C++20에서 리플렉션 기능 구현
C++20에서 리플렉션 기능 구현C++20에서 리플렉션 기능 구현
C++20에서 리플렉션 기능 구현Bongseok Cho
 
빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술YEONG-CHEON YOU
 
임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013devCAT Studio, NEXON
 
실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략YEONG-CHEON YOU
 
Unreal python
Unreal pythonUnreal python
Unreal pythonTonyCms
 
GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리
GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리
GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리YEONG-CHEON YOU
 
Game Physics Engine Development (게임 물리 엔진 개발)
Game Physics Engine Development (게임 물리 엔진 개발)Game Physics Engine Development (게임 물리 엔진 개발)
Game Physics Engine Development (게임 물리 엔진 개발)Bongseok Cho
 
NDC2012_마비노기 영웅전 카이 포스트모템_시선을 사로잡는 캐릭터 카이 그 시도와 성공의 구현 일지
NDC2012_마비노기 영웅전 카이 포스트모템_시선을 사로잡는 캐릭터 카이 그 시도와 성공의 구현 일지NDC2012_마비노기 영웅전 카이 포스트모템_시선을 사로잡는 캐릭터 카이 그 시도와 성공의 구현 일지
NDC2012_마비노기 영웅전 카이 포스트모템_시선을 사로잡는 캐릭터 카이 그 시도와 성공의 구현 일지영준 박
 
Multiplayer Game Sync Techniques through CAP theorem
Multiplayer Game Sync Techniques through CAP theoremMultiplayer Game Sync Techniques through CAP theorem
Multiplayer Game Sync Techniques through CAP theoremSeungmo Koo
 
리플렉션과 가비지 컬렉션
리플렉션과 가비지 컬렉션리플렉션과 가비지 컬렉션
리플렉션과 가비지 컬렉션QooJuice
 
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018devCAT Studio, NEXON
 

What's hot (20)

[0122 구경원]게임에서의 충돌처리
[0122 구경원]게임에서의 충돌처리[0122 구경원]게임에서의 충돌처리
[0122 구경원]게임에서의 충돌처리
 
나만의 엔진 개발하기
나만의 엔진 개발하기나만의 엔진 개발하기
나만의 엔진 개발하기
 
08_게임 물리 프로그래밍 가이드
08_게임 물리 프로그래밍 가이드08_게임 물리 프로그래밍 가이드
08_게임 물리 프로그래밍 가이드
 
레퍼런스만 알면 언리얼 엔진이 제대로 보인다
레퍼런스만 알면 언리얼 엔진이 제대로 보인다레퍼런스만 알면 언리얼 엔진이 제대로 보인다
레퍼런스만 알면 언리얼 엔진이 제대로 보인다
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012
 
게임 분산 서버 구조
게임 분산 서버 구조게임 분산 서버 구조
게임 분산 서버 구조
 
[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화
[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화
[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화
 
멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)
 
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
 
C++20에서 리플렉션 기능 구현
C++20에서 리플렉션 기능 구현C++20에서 리플렉션 기능 구현
C++20에서 리플렉션 기능 구현
 
빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술
 
임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013
 
실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략
 
Unreal python
Unreal pythonUnreal python
Unreal python
 
GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리
GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리
GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리
 
Game Physics Engine Development (게임 물리 엔진 개발)
Game Physics Engine Development (게임 물리 엔진 개발)Game Physics Engine Development (게임 물리 엔진 개발)
Game Physics Engine Development (게임 물리 엔진 개발)
 
NDC2012_마비노기 영웅전 카이 포스트모템_시선을 사로잡는 캐릭터 카이 그 시도와 성공의 구현 일지
NDC2012_마비노기 영웅전 카이 포스트모템_시선을 사로잡는 캐릭터 카이 그 시도와 성공의 구현 일지NDC2012_마비노기 영웅전 카이 포스트모템_시선을 사로잡는 캐릭터 카이 그 시도와 성공의 구현 일지
NDC2012_마비노기 영웅전 카이 포스트모템_시선을 사로잡는 캐릭터 카이 그 시도와 성공의 구현 일지
 
Multiplayer Game Sync Techniques through CAP theorem
Multiplayer Game Sync Techniques through CAP theoremMultiplayer Game Sync Techniques through CAP theorem
Multiplayer Game Sync Techniques through CAP theorem
 
리플렉션과 가비지 컬렉션
리플렉션과 가비지 컬렉션리플렉션과 가비지 컬렉션
리플렉션과 가비지 컬렉션
 
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
 

Similar to [0903 구경원] recast 네비메쉬

15_TextureAtlas
15_TextureAtlas15_TextureAtlas
15_TextureAtlasnoerror
 
[IGC 2017] 에픽게임즈 최용훈 - 밤낮으로 부수고 짓고 액션 빌딩 게임 만들기 - 포트나이트
[IGC 2017] 에픽게임즈 최용훈 - 밤낮으로 부수고 짓고 액션 빌딩 게임 만들기 - 포트나이트[IGC 2017] 에픽게임즈 최용훈 - 밤낮으로 부수고 짓고 액션 빌딩 게임 만들기 - 포트나이트
[IGC 2017] 에픽게임즈 최용훈 - 밤낮으로 부수고 짓고 액션 빌딩 게임 만들기 - 포트나이트강 민우
 
Kgc2014 jplee allegorithmic
Kgc2014 jplee allegorithmicKgc2014 jplee allegorithmic
Kgc2014 jplee allegorithmicLee Jungpyo
 
실전프로젝트 정서경 양현찬
실전프로젝트 정서경 양현찬실전프로젝트 정서경 양현찬
실전프로젝트 정서경 양현찬현찬 양
 
텐서플로우 2.0 튜토리얼 - CNN
텐서플로우 2.0 튜토리얼 - CNN텐서플로우 2.0 튜토리얼 - CNN
텐서플로우 2.0 튜토리얼 - CNNHwanhee Kim
 
Voxel based game_optimazation_relelase
Voxel based game_optimazation_relelaseVoxel based game_optimazation_relelase
Voxel based game_optimazation_relelaseYEONG-CHEON YOU
 
[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법
[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법
[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법강 민우
 
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others
 [컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others [컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Othersjdo
 
[Kgc2013] 모바일 엔진 개발기
[Kgc2013] 모바일 엔진 개발기[Kgc2013] 모바일 엔진 개발기
[Kgc2013] 모바일 엔진 개발기changehee lee
 
[211]대규모 시스템 시각화 현동석김광림
[211]대규모 시스템 시각화 현동석김광림[211]대규모 시스템 시각화 현동석김광림
[211]대규모 시스템 시각화 현동석김광림NAVER D2
 
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례SangYun Yi
 
엔지니어링비젼_언리얼엔진4_커스텀______________________
엔지니어링비젼_언리얼엔진4_커스텀______________________엔지니어링비젼_언리얼엔진4_커스텀______________________
엔지니어링비젼_언리얼엔진4_커스텀______________________Kyoung Seok(경석) Ko(고)
 
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 3 - GoogLeNet
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 3 - GoogLeNet[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 3 - GoogLeNet
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 3 - GoogLeNetjdo
 
노동진 Mega splatting
노동진 Mega splatting노동진 Mega splatting
노동진 Mega splattingdrandom
 
글꼴 렌더링 이야기
글꼴 렌더링 이야기글꼴 렌더링 이야기
글꼴 렌더링 이야기Young-jun Jeong
 
Summary in recent advances in deep learning for object detection
Summary in recent advances in deep learning for object detectionSummary in recent advances in deep learning for object detection
Summary in recent advances in deep learning for object detection창기 문
 
Summary in recent advances in deep learning for object detection
Summary in recent advances in deep learning for object detectionSummary in recent advances in deep learning for object detection
Summary in recent advances in deep learning for object detection창기 문
 
09_Voxel rendering
09_Voxel rendering09_Voxel rendering
09_Voxel renderingnoerror
 

Similar to [0903 구경원] recast 네비메쉬 (20)

15_TextureAtlas
15_TextureAtlas15_TextureAtlas
15_TextureAtlas
 
[IGC 2017] 에픽게임즈 최용훈 - 밤낮으로 부수고 짓고 액션 빌딩 게임 만들기 - 포트나이트
[IGC 2017] 에픽게임즈 최용훈 - 밤낮으로 부수고 짓고 액션 빌딩 게임 만들기 - 포트나이트[IGC 2017] 에픽게임즈 최용훈 - 밤낮으로 부수고 짓고 액션 빌딩 게임 만들기 - 포트나이트
[IGC 2017] 에픽게임즈 최용훈 - 밤낮으로 부수고 짓고 액션 빌딩 게임 만들기 - 포트나이트
 
Feature Pyramid Network, FPN
Feature Pyramid Network, FPNFeature Pyramid Network, FPN
Feature Pyramid Network, FPN
 
Kgc2014 jplee allegorithmic
Kgc2014 jplee allegorithmicKgc2014 jplee allegorithmic
Kgc2014 jplee allegorithmic
 
실전프로젝트 정서경 양현찬
실전프로젝트 정서경 양현찬실전프로젝트 정서경 양현찬
실전프로젝트 정서경 양현찬
 
텐서플로우 2.0 튜토리얼 - CNN
텐서플로우 2.0 튜토리얼 - CNN텐서플로우 2.0 튜토리얼 - CNN
텐서플로우 2.0 튜토리얼 - CNN
 
Voxel based game_optimazation_relelase
Voxel based game_optimazation_relelaseVoxel based game_optimazation_relelase
Voxel based game_optimazation_relelase
 
[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법
[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법
[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법
 
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others
 [컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others [컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others
 
[Kgc2013] 모바일 엔진 개발기
[Kgc2013] 모바일 엔진 개발기[Kgc2013] 모바일 엔진 개발기
[Kgc2013] 모바일 엔진 개발기
 
[211]대규모 시스템 시각화 현동석김광림
[211]대규모 시스템 시각화 현동석김광림[211]대규모 시스템 시각화 현동석김광림
[211]대규모 시스템 시각화 현동석김광림
 
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
 
엔지니어링 비젼_동영상제거.pptx
엔지니어링 비젼_동영상제거.pptx엔지니어링 비젼_동영상제거.pptx
엔지니어링 비젼_동영상제거.pptx
 
엔지니어링비젼_언리얼엔진4_커스텀______________________
엔지니어링비젼_언리얼엔진4_커스텀______________________엔지니어링비젼_언리얼엔진4_커스텀______________________
엔지니어링비젼_언리얼엔진4_커스텀______________________
 
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 3 - GoogLeNet
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 3 - GoogLeNet[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 3 - GoogLeNet
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 3 - GoogLeNet
 
노동진 Mega splatting
노동진 Mega splatting노동진 Mega splatting
노동진 Mega splatting
 
글꼴 렌더링 이야기
글꼴 렌더링 이야기글꼴 렌더링 이야기
글꼴 렌더링 이야기
 
Summary in recent advances in deep learning for object detection
Summary in recent advances in deep learning for object detectionSummary in recent advances in deep learning for object detection
Summary in recent advances in deep learning for object detection
 
Summary in recent advances in deep learning for object detection
Summary in recent advances in deep learning for object detectionSummary in recent advances in deep learning for object detection
Summary in recent advances in deep learning for object detection
 
09_Voxel rendering
09_Voxel rendering09_Voxel rendering
09_Voxel rendering
 

More from KyeongWon Koo

빌드 속도를 올려보자
빌드 속도를 올려보자빌드 속도를 올려보자
빌드 속도를 올려보자KyeongWon Koo
 
[Gpg2권]4.7 인쇄해상도의 스크린샷 만들기
[Gpg2권]4.7 인쇄해상도의 스크린샷 만들기[Gpg2권]4.7 인쇄해상도의 스크린샷 만들기
[Gpg2권]4.7 인쇄해상도의 스크린샷 만들기KyeongWon Koo
 
[0204 구경원] sse 병렬 프로그래밍
[0204 구경원] sse 병렬 프로그래밍[0204 구경원] sse 병렬 프로그래밍
[0204 구경원] sse 병렬 프로그래밍KyeongWon Koo
 
[Gpg2권 구경원] 3.4 rts 게임의 명령 큐잉을 위한 기반 구조
[Gpg2권 구경원] 3.4 rts 게임의 명령 큐잉을 위한 기반 구조[Gpg2권 구경원] 3.4 rts 게임의 명령 큐잉을 위한 기반 구조
[Gpg2권 구경원] 3.4 rts 게임의 명령 큐잉을 위한 기반 구조KyeongWon Koo
 
[Gpg2권 구경원] 3.1 ai전략
[Gpg2권 구경원] 3.1 ai전략[Gpg2권 구경원] 3.1 ai전략
[Gpg2권 구경원] 3.1 ai전략KyeongWon Koo
 
선형연립방정식 가우스소거법
선형연립방정식 가우스소거법선형연립방정식 가우스소거법
선형연립방정식 가우스소거법KyeongWon Koo
 
제5장 스태틱 메쉬
제5장 스태틱 메쉬제5장 스태틱 메쉬
제5장 스태틱 메쉬KyeongWon Koo
 
[기초수학] 미분 적분학
[기초수학] 미분 적분학[기초수학] 미분 적분학
[기초수학] 미분 적분학KyeongWon Koo
 
[Gpg2권]1.1 c++ 게임의 최적화
[Gpg2권]1.1 c++ 게임의 최적화[Gpg2권]1.1 c++ 게임의 최적화
[Gpg2권]1.1 c++ 게임의 최적화KyeongWon Koo
 
[0618구경원]초보 게임프로그래머를 위한 c++
[0618구경원]초보 게임프로그래머를 위한 c++[0618구경원]초보 게임프로그래머를 위한 c++
[0618구경원]초보 게임프로그래머를 위한 c++KyeongWon Koo
 
역동적인 애니메이션 Ik
역동적인 애니메이션 Ik역동적인 애니메이션 Ik
역동적인 애니메이션 IkKyeongWon Koo
 
[페차쿠차] 3월 19일 아이디어에 미쳐보자!
[페차쿠차] 3월 19일 아이디어에 미쳐보자![페차쿠차] 3월 19일 아이디어에 미쳐보자!
[페차쿠차] 3월 19일 아이디어에 미쳐보자!KyeongWon Koo
 

More from KyeongWon Koo (13)

빌드 속도를 올려보자
빌드 속도를 올려보자빌드 속도를 올려보자
빌드 속도를 올려보자
 
[Gpg2권]4.7 인쇄해상도의 스크린샷 만들기
[Gpg2권]4.7 인쇄해상도의 스크린샷 만들기[Gpg2권]4.7 인쇄해상도의 스크린샷 만들기
[Gpg2권]4.7 인쇄해상도의 스크린샷 만들기
 
[데브루키] FOG
[데브루키] FOG[데브루키] FOG
[데브루키] FOG
 
[0204 구경원] sse 병렬 프로그래밍
[0204 구경원] sse 병렬 프로그래밍[0204 구경원] sse 병렬 프로그래밍
[0204 구경원] sse 병렬 프로그래밍
 
[Gpg2권 구경원] 3.4 rts 게임의 명령 큐잉을 위한 기반 구조
[Gpg2권 구경원] 3.4 rts 게임의 명령 큐잉을 위한 기반 구조[Gpg2권 구경원] 3.4 rts 게임의 명령 큐잉을 위한 기반 구조
[Gpg2권 구경원] 3.4 rts 게임의 명령 큐잉을 위한 기반 구조
 
[Gpg2권 구경원] 3.1 ai전략
[Gpg2권 구경원] 3.1 ai전략[Gpg2권 구경원] 3.1 ai전략
[Gpg2권 구경원] 3.1 ai전략
 
선형연립방정식 가우스소거법
선형연립방정식 가우스소거법선형연립방정식 가우스소거법
선형연립방정식 가우스소거법
 
제5장 스태틱 메쉬
제5장 스태틱 메쉬제5장 스태틱 메쉬
제5장 스태틱 메쉬
 
[기초수학] 미분 적분학
[기초수학] 미분 적분학[기초수학] 미분 적분학
[기초수학] 미분 적분학
 
[Gpg2권]1.1 c++ 게임의 최적화
[Gpg2권]1.1 c++ 게임의 최적화[Gpg2권]1.1 c++ 게임의 최적화
[Gpg2권]1.1 c++ 게임의 최적화
 
[0618구경원]초보 게임프로그래머를 위한 c++
[0618구경원]초보 게임프로그래머를 위한 c++[0618구경원]초보 게임프로그래머를 위한 c++
[0618구경원]초보 게임프로그래머를 위한 c++
 
역동적인 애니메이션 Ik
역동적인 애니메이션 Ik역동적인 애니메이션 Ik
역동적인 애니메이션 Ik
 
[페차쿠차] 3월 19일 아이디어에 미쳐보자!
[페차쿠차] 3월 19일 아이디어에 미쳐보자![페차쿠차] 3월 19일 아이디어에 미쳐보자!
[페차쿠차] 3월 19일 아이디어에 미쳐보자!
 

[0903 구경원] recast 네비메쉬

  • 1. Recast 네비메쉬 돼지고기(구경원) 데브루키
  • 2. 1. Recast 소개 -개발자 크라이시스 “리드 AI 프로그래머” Mikko Mononen. -랜더링 OpenGL -UI SDL
  • 3. - 자동으로 네비게이션 메쉬를 만들어 준다. - 레벨 디자이너들에게 효율적인 편의성을 제 공 해주기 위한 툴이다. - 오픈소스이며, 개발자 마음대로 수정하여 사 용할 수 있다. - 다운로드 및 Wiki를 통한 피드백 가능. http://code.google.com/p/recastnaviga tion/
  • 4. Recast 를 사용하면 무엇이 좋은가 요? 기존 네비메쉬 제작. 레벨 디자이너들이 지형모형에 맞추어서 한 땀 한땀 만들어 나가는 장인정신의 결실. Recast 툴 사용. 옵션 설정으로 다양한 지형에 대해서 버튼 한번 클릭으로 누구나 쉽게 메쉬를 생성할 수 있다. 작업 효율의 증가.
  • 5. 어느 장르 게임에 어울리나요? 권장사항. FPS, 존 방식의 게임. 적은 지형을 필요로 하는 게임. 그외사항. MMORPG와 같은 넓은 필드도 가능.
  • 6. 2. Recast 구성 Detour A-Star 알고리즘의 길찾기 소스 Recast 복셀을 이용한 네비게이션 메쉬 만드는 소스 RecastDemo 샘플 프로그램 소스
  • 8. Rasterization CellSize - 복셀 필드를 구성하는 Cell의 넓이. - 셀 조절 = 해상도 조절 - 낮은 값으로 생성하면 지형 메쉬에 컬리티 높은 네비게이션 메쉬를 생성할 수 있다. 하지만 처리비용이 높아지고 메모리를 많 이 필요로 한다.
  • 9.
  • 11. Rasterization CellHeight - 복셀 필드를 구성하는 Cell의 높이. - 셀조절 = 해상도 조절 - 낮은 값으로 생성하면 지형 메쉬에 근접한 높이를 가지는 네비게이션 메쉬를 생성할 수 있다. 하지만 처리비용이 높아지지만 메모리 사용량은 크게 증가하지 않는다.
  • 13. Agent Height - 가상의 객체의 높이. - 낮은 값으로 생성하면 낮은 값의 높이가 지나갈 수 있는 부분의 지역에 네비게이션 메쉬를 생성 해준다.
  • 15. Agent Radius - 가상의 객체의 둘레. - 둘레의 수치를 조절하여 실제로 지역의 경 계면에 플레이어가 움직일 수 있는 범위만 큼 네비게이션 메쉬를 생성한다.
  • 17. Agent Max Climb - 가상의 객체의 올라갈 수 있는 높이. - 수치를 높이면 Height 와는 다르게 객체 의 올라갈수 있는 높이만큼 네비게이션 메 쉬가 생성된다.
  • 19. Agent Max Slope - 가상의 객체의 올라갈 수 있는 경사도. - 경사도가 있는 지형에 네비게이션 메쉬를 생성하고자 할 때에 수치를 높여주면 된 다.
  • 21. Region Min Region Size - 연결되여 있지 않은 부분에 대해서 독립적 인 네비게이션 메쉬를 생성해준다.
  • 23. Region Merged Region Size - 작은 영역의 수를 주위의 큰 지역에 병합 시켜 준다. - 작은 영역에서 발생하는 대각선 경로의 문 제를 해결해준다. - 값이 작을수록 일부분에서 얇고 긴 삼각형 이 생성된다.
  • 25. Polygonization Max Edge Length - 네비게이션 메쉬의 경계를 나타내는 다각 형 가장자리의 최대길이를 조절할 수 있 다. - 값을 0으로 하면 비활성화 된다.
  • 27. Polygonization Max Edge Error - 네비게이션 메쉬의 가장자리를 최대한 지 형 메쉬의 윤곽에 따라 만들어 준다. - 값이 낮을수록 다각형의 개수가 많이 지므 로 제로 값은 권장하지 않는다.
  • 29. Polygonization Verts Per Poly - 다각형을 이루는 정점들의 수. - 높은 값은 처리비용은 증가하지만 좀더 나 은 네비게이션 메쉬를 생성할 수 있다. - 일반적으로 6이상의 사용은 권하지 않는 다.
  • 31. Detail Mesh Sample Distance - 지형메쉬의 표면에 네비게이션 메쉬를 일 치시킬 때 사용하는 샘플링 거리를 설정한 다. - 낮은 값을 사용할수록 지형메쉬에 디테일 하게 삼각형들이 생성되지만 연산이 높아 진다.
  • 33. Detail Mesh Max Sample Error - Sample Distance에서 발생할 수 있는 부족한 부분을 좀 더 디테일하게 만들어 주는 역할을 한다. - 값이 낮을수록 연산량이 많아지지만 디텔 일은 높아진다. - 0의 사용은 권장하지 않는다.
  • 36. 4. 추가기능 툴에서 생성된 네비게이션 메쉬에 직접 A*알고리즘을 테스트 할 수 있다.
  • 37.
  • 38.
  • 39. 네비메쉬 다각형마다 플래그를 지정해 서 원하는 옵션을 줄 수 있다.
  • 40.
  • 41. 떨어져 있는 두 메쉬 간의 공간을 가상 으로 연결해주는 기능을 제공한다. (포탈기능)
  • 42.
  • 44. 주의사항 • 메쉬당 버텍스 수가 65536개로 제한되여 있다. • -4000 ~ 4000 사이의 좌표 안에 해당하 는 메쉬에 대해서 높은 정확성을 가질 수 있다.
  • 45. 주의사항 • 너무 디테일하게 네비메쉬를 생성하려고 하면 상당히 많은 메모리를 필요로 해서 생성이 안되거나 오류가 날 수 도 있다. • 또한 너무 느슨하게 생성하면 중복된 좌표 로 인한 네비메쉬 겹침 현상이 발생할 수 도 있다.
  • 46. 3. 작업 • 사용 확장자 *.obj • Meshes 폴더에 넣어두면 자동으로 툴의 목록에 읽혀진다. • *.obj 내부는 TXT 형태로 상당히 심플하 게 구성 되여 있다.
  • 47. .obj 해부 v 버텍스 좌표 f 인덱스 번호
  • 48. 사용 순서 지형 툴에서 .obj Recast 에서 정점 데이터 랜더링 파일 생성 추출 생성된 네비메 사용 쉬 정점 데이터 네비메쉬 생성 추출
  • 50. Tile Mesh - 넓은 지형을 일정한 크기의 타일로 나누어 서 부분 타일마다 네비게이션 메쉬를 생성 한다. - 부분 적으로 연산이 필요하기 때문에 메모 리 사용량도 부분적이다. - 타일메쉬를 사용하면 저장기능도 제공한 다.