[0903 구경원] recast 네비메쉬

52
Recast 네네네네 네네네네 ( 네네네 ) 네네네네

Upload: kyeongwon-koo

Post on 26-May-2015

2.038 views

Category:

Documents


16 download

TRANSCRIPT

Page 1: [0903 구경원] recast 네비메쉬

Recast 네비메쉬

돼지고기 ( 구경원 )데브루키

Page 2: [0903 구경원] recast 네비메쉬

1. Recast 소개- 개발자 크라이시스 “리드 AI 프로그래머”Mikko Mononen.

- 랜더링OpenGL

-UISDL

Page 3: [0903 구경원] recast 네비메쉬

- 자동으로 네비게이션 메쉬를 만들어 준다 .

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

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

- 다운로드 및 Wiki 를 통한 피드백 가능 .

http://code.google.com/p/recastnavigation/

Page 4: [0903 구경원] recast 네비메쉬

Recast 를 사용하면 무엇이 좋은가요 ?

기존 네비메쉬 제작 .레벨 디자이너들이 지형모형에 맞추어서

한땀 한땀 만들어 나가는 장인정신의 결실 .

Recast 툴 사용 .옵션 설정으로 다양한 지형에 대해서 버튼

한번 클릭으로 누구나 쉽게 메쉬를 생성할 수 있다 . 작업 효율의 증가 .

Page 5: [0903 구경원] recast 네비메쉬

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

그외사항 .MMORPG 와 같은 넓은 필드도 가능 .

어느 장르 게임에 어울리나요 ?

Page 6: [0903 구경원] recast 네비메쉬

Detour A-Star 알고리즘의 길찾기 소스Recast복셀을 이용한 네비게이션 메쉬 만드는 소스RecastDemo 샘플 프로그램 소스

2. Recast 구성

Page 7: [0903 구경원] recast 네비메쉬

3. Recast 기능

Page 8: [0903 구경원] recast 네비메쉬

Rasterization

CellSize - 복셀 필드를 구성하는 Cell 의 넓이 . - 셀 조절 = 해상도 조절- 낮은 값으로 생성하면 지형 메쉬에 컬리티

높은 네비게이션 메쉬를 생성할 수 있다 . 하지만 처리비용이 높아지고 메모리를 많이 필요로 한다 .

Page 10: [0903 구경원] recast 네비메쉬

낮은 값

높은 값

Page 11: [0903 구경원] recast 네비메쉬

Rasterization

CellHeight- 복셀 필드를 구성하는 Cell 의 높이 . - 셀조절 = 해상도 조절- 낮은 값으로 생성하면 지형 메쉬에 근접한

높이를 가지는 네비게이션 메쉬를 생성할 수 있다 . 하지만 처리비용이 높아지지만 메모리 사용량은 크게 증가하지 않는다 .

Page 12: [0903 구경원] recast 네비메쉬

높은 값

낮은 값

Page 13: [0903 구경원] recast 네비메쉬

Agent

Height- 가상의 객체의 높이 .- 낮은 값으로 생성하면 낮은 값의 높이가

지나갈 수 있는 부분의 지역에 네비게이션 메쉬를 생성 해준다 .

Page 14: [0903 구경원] recast 네비메쉬

낮은 값

높은 값

Page 15: [0903 구경원] recast 네비메쉬

Agent

Radius- 가상의 객체의 둘레 .- 둘레의 수치를 조절하여 실제로 지역의

경계면에 플레이어가 움직일 수 있는 범위만큼 네비게이션 메쉬를 생성한다 .

Page 16: [0903 구경원] recast 네비메쉬

높은 값

낮은 값

Page 17: [0903 구경원] recast 네비메쉬

Agent

Max Climb- 가상의 객체의 올라갈 수 있는 높이 .- 수치를 높이면 Height 와는 다르게

객체의 올라갈수 있는 높이만큼 네비게이션 메쉬가 생성된다 .

Page 18: [0903 구경원] recast 네비메쉬

낮은 값

높은 값

Page 19: [0903 구경원] recast 네비메쉬

Agent

Max Slope- 가상의 객체의 올라갈 수 있는 경사도 .- 경사도가 있는 지형에 네비게이션 메쉬를

생성하고자 할 때에 수치를 높여주면 된다 .

Page 20: [0903 구경원] recast 네비메쉬

높은 값

낮은 값

Page 21: [0903 구경원] recast 네비메쉬

Region

Min Region Size- 연결되여 있지 않은 부분에 대해서

독립적인 네비게이션 메쉬를 생성해준다 .

Page 22: [0903 구경원] recast 네비메쉬

낮은 값

높은 값

Page 23: [0903 구경원] recast 네비메쉬

Region

Merged Region Size- 작은 영역의 수를 주위의 큰 지역에

병합시켜 준다 . - 작은 영역에서 발생하는 대각선 경로의

문제를 해결해준다 .- 값이 작을수록 일부분에서 얇고 긴

삼각형이 생성된다 .

Page 24: [0903 구경원] recast 네비메쉬

낮은 값

높은 값

Page 25: [0903 구경원] recast 네비메쉬

Polygonization

Max Edge Length- 네비게이션 메쉬의 경계를 나타내는

다각형 가장자리의 최대길이를 조절할 수 있다 .

- 값을 0 으로 하면 비활성화 된다 .

Page 26: [0903 구경원] recast 네비메쉬

낮은 값

높은 값

Page 27: [0903 구경원] recast 네비메쉬

Polygonization

Max Edge Error- 네비게이션 메쉬의 가장자리를 최대한

지형 메쉬의 윤곽에 따라 만들어 준다 .- 값이 낮을수록 다각형의 개수가 많이

지므로 제로 값은 권장하지 않는다 .

Page 28: [0903 구경원] recast 네비메쉬

낮은 값

높은 값

Page 29: [0903 구경원] recast 네비메쉬

Polygonization

Verts Per Poly- 다각형을 이루는 정점들의 수 .- 높은 값은 처리비용은 증가하지만 좀더

나은 네비게이션 메쉬를 생성할 수 있다 . - 일반적으로 6 이상의 사용은 권하지

않는다 .

Page 30: [0903 구경원] recast 네비메쉬

높은 값 (6)

낮은 값 (3)

Page 31: [0903 구경원] recast 네비메쉬

Detail Mesh

Sample Distance- 지형메쉬의 표면에 네비게이션 메쉬를

일치시킬 때 사용하는 샘플링 거리를 설정한다 .

- 낮은 값을 사용할수록 지형메쉬에 디테일하게 삼각형들이 생성되지만 연산이 높아진다 .

Page 32: [0903 구경원] recast 네비메쉬

높은 값

낮은 값

Page 33: [0903 구경원] recast 네비메쉬

Detail Mesh

Max Sample Error- Sample Distance 에서 발생할 수 있는

부족한 부분을 좀 더 디테일하게 만들어 주는 역할을 한다 .

- 값이 낮을수록 연산량이 많아지지만 디텔일은 높아진다 .

- 0 의 사용은 권장하지 않는다 .

Page 34: [0903 구경원] recast 네비메쉬

낮은 값

높은 값

Page 35: [0903 구경원] recast 네비메쉬

•툴 시연

Page 36: [0903 구경원] recast 네비메쉬

4. 추가기능

툴에서 생성된 네비게이션 메쉬에 직접

A* 알고리즘을 테스트 할 수 있다 .

Page 37: [0903 구경원] recast 네비메쉬
Page 38: [0903 구경원] recast 네비메쉬
Page 39: [0903 구경원] recast 네비메쉬

네비메쉬 다각형마다 플래그를

지정해서 원하는 옵션을 줄 수 있다 .

Page 40: [0903 구경원] recast 네비메쉬
Page 41: [0903 구경원] recast 네비메쉬

떨어져 있는 두 메쉬 간의 공간을

가상으로 연결해주는 기능을

제공한다 . ( 포탈기능 )

Page 42: [0903 구경원] recast 네비메쉬
Page 43: [0903 구경원] recast 네비메쉬

•툴 시연

Page 44: [0903 구경원] recast 네비메쉬

주의사항• 메쉬당 버텍스 수가 65536 개로 제한되여

있다 .

• -4000 ~ 4000 사이의 좌표 안에 해당하는 메쉬에 대해서 높은 정확성을 가질 수 있다 .

Page 45: [0903 구경원] recast 네비메쉬

• 너무 디테일하게 네비메쉬를 생성하려고 하면 상당히 많은 메모리를 필요로 해서 생성이 안되거나 오류가 날 수 도 있다 .

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

주의사항

Page 46: [0903 구경원] recast 네비메쉬

3. 작업

• 사용 확장자 *.obj

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

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

Page 47: [0903 구경원] recast 네비메쉬

.obj 해부

v 버텍스 좌표 f 인덱스 번호

Page 48: [0903 구경원] recast 네비메쉬

지형 툴에서 정점 데이터

추출.obj

파일 생성Recast 에서

랜더링

네비메쉬 생성생성된 네비메쉬

정점 데이터 추출

사용

사용 순서

Page 49: [0903 구경원] recast 네비메쉬

레벨 디테일

Page 50: [0903 구경원] recast 네비메쉬

- 넓은 지형을 일정한 크기의 타일로 나누어서 부분 타일마다 네비게이션 메쉬를 생성한다 .

- 부분 적으로 연산이 필요하기 때문에 메모리 사용량도 부분적이다 .

- 타일메쉬를 사용하면 저장기능도 제공한다 .

Tile Mesh

Page 51: [0903 구경원] recast 네비메쉬

•Q&A

Page 52: [0903 구경원] recast 네비메쉬

•END