[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기강 민우
펄어비스의 MMORPG, 검은사막에 적용되어있는 AI 네비게이션 기능은 VOXEL 기반으로 자체 개발한 엔진을 이용해 구현되어 있습니다. 기존의 대다수 상용 라이브러리들이 네비 메쉬라고 하는 이동가능한 평면을 표현하는 폴리곤 기반의 데이터를 이용해 길찾기를 수행해주는 것에 비해 근간이 다릅니다. 이 강연에서는 검은사막의 네비게이션 엔진을 구현하고, 서버 / 클라이언트에 적용하면서 얻게된 노하우와 적용된 결과물들을 소개합니다.
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기강 민우
펄어비스의 MMORPG, 검은사막에 적용되어있는 AI 네비게이션 기능은 VOXEL 기반으로 자체 개발한 엔진을 이용해 구현되어 있습니다. 기존의 대다수 상용 라이브러리들이 네비 메쉬라고 하는 이동가능한 평면을 표현하는 폴리곤 기반의 데이터를 이용해 길찾기를 수행해주는 것에 비해 근간이 다릅니다. 이 강연에서는 검은사막의 네비게이션 엔진을 구현하고, 서버 / 클라이언트에 적용하면서 얻게된 노하우와 적용된 결과물들을 소개합니다.
프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~YEONG-CHEON YOU
Windows 10의 UWP 앱을 개발하면 모든 Windows 10 디바이스에서 앱을 작동할 수 있습니다.
이 UWP 앱을 C++로 개발할 수 있습니다. C++로 앱을 개발하면 크로스 플랫폼 지원의 유리함, 기존 코드의 재활용, 성능향상 등의 이점이 있습니다. 본 세션에서는 몇 가지 예를 들어 C++로 UWP 앱을 개발하는 방법을 소개하며 특히 win32와 C++을 사용하던 개발자가 쉽게 UWP 앱 개발에 적응할 수 있도록 돕습니다.
DirectX + C++을 이용한 WindowsStore App과 Windows Phone용 게임 개발
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
1. 프레임레이트 향상을 위한 공간분할프레임레이트 향상을 위한 공간분할
및 오브젝트 컬링 기법및 오브젝트 컬링 기법
유영천유영천
nhn gamesnhn games
SlushSlush 팀 팀장팀 팀장 // 리드 프로그래머리드 프로그래머
2. 프레임 레이트를 높이려면프레임 레이트를 높이려면 ??
최신형 그래픽 카드를 장착하게 한다최신형 그래픽 카드를 장착하게 한다 ..
그래픽 리소스의 퀄리티를 대폭 떨어뜨린그래픽 리소스의 퀄리티를 대폭 떨어뜨린
다다 ..
불필요한 오브젝트를 렌더링하지 않도록불필요한 오브젝트를 렌더링하지 않도록
프로그래밍한다프로그래밍한다 ..
7. 장점장점 // 단점단점
만들기 쉽다만들기 쉽다 ..
그래픽 카드의 부담은그래픽 카드의 부담은
상당히 줄여준다상당히 줄여준다 ..
모든 오브젝트들에 대모든 오브젝트들에 대
해서 뷰프러스텀에 들해서 뷰프러스텀에 들
어가는지를 검사해야어가는지를 검사해야
하므로하므로 cpucpu 자원을 많자원을 많
이 잡아먹는다이 잡아먹는다
9. 장점장점 // 단점단점
비교적 만들기 쉽다비교적 만들기 쉽다 ..
뷰프러스텀 검사를 할뷰프러스텀 검사를 할
대상들을 대폭 줄여주대상들을 대폭 줄여주
므로므로 cpucpu 자원을 상당자원을 상당
히 아낄 수 있다히 아낄 수 있다 ..
실외지형에서는 과거실외지형에서는 과거
에나 현재에나 상당히에나 현재에나 상당히
효과적이다효과적이다 ..
차폐물에차폐물에 (( 벽벽 ,, 산 등산 등 ))
가려진 오브젝트들에가려진 오브젝트들에
대한 컬링은 여전히 불대한 컬링은 여전히 불
가능하다가능하다 ..
11. 장점장점 // 단점단점
비교적 만들기 쉽다비교적 만들기 쉽다 ..
뷰프러스텀 검사를 할 대뷰프러스텀 검사를 할 대
상들을 대폭 줄여주므로상들을 대폭 줄여주므로
cpucpu 자원을 상당히 아낄자원을 상당히 아낄
수 있다수 있다 ..
실외지형에서는 과거에나실외지형에서는 과거에나
현재에나 상당히 효과적현재에나 상당히 효과적
이다이다 ..
차폐물에 가려진 오브젝차폐물에 가려진 오브젝
트들을 렌더링 파이프라트들을 렌더링 파이프라
인에서 제거할 수 있다인에서 제거할 수 있다 ..
특성상 정밀한 컬링은 어특성상 정밀한 컬링은 어
렵다렵다 ..
H/WH/W 오클루젼 컬링의 경오클루젼 컬링의 경
우 검사에 소모되는우 검사에 소모되는
CPU/GPUCPU/GPU 클럭을 무시할클럭을 무시할
수 없다수 없다 ..
S/WS/W 오클루젼 컬링의 경오클루젼 컬링의 경
우 오클루젼이 많아지면우 오클루젼이 많아지면
그 자체로 오클루젼 검색그 자체로 오클루젼 검색
을 위한을 위한 CPUCPU 클럭을 소모클럭을 소모
한다한다 ..
13. 장점장점 // 단점단점
실내에 한해서 차폐물실내에 한해서 차폐물
에 대한 컬링은 거의에 대한 컬링은 거의
완벽하다완벽하다 .. 따라서 매따라서 매
우 훌륭한 퍼포먼스를우 훌륭한 퍼포먼스를
보여준다보여준다 (quake(quake 시리시리
즈즈 ))
BSP/PORTALBSP/PORTAL 을 이용을 이용
해서해서 PVSPVS 를를 [[ 제대제대
로로 ]] 구현했다면 자랑구현했다면 자랑
할만하다할만하다 ..
만들기 어렵다만들기 어렵다
닫힌 공간에서만 사용닫힌 공간에서만 사용
할 수 있다할 수 있다 .. 따라서 실따라서 실
외처리가 어렵다외처리가 어렵다 ..
실내가 아닌 실외실내가 아닌 실외 (( 광광
대역 지형대역 지형 )) 에서는 거에서는 거
의 이득을 볼 수 없다의 이득을 볼 수 없다 ..
16. 기본컨셉기본컨셉 (1)(1)
ROOMROOM 단위로 공간을 나눈다단위로 공간을 나눈다 ..
[[ 바깥바깥 ]] 은 오직 한 개의은 오직 한 개의 Exterior RoomExterior Room 으로 정의한다으로 정의한다 ..
ROOMROOM 과과 ROOMROOM 은은 PORTALPORTAL 로서 연결된로서 연결된
다다 .EXTERIOR ROOM.EXTERIOR ROOM 도도 ROOMROOM 이므로 포탈로서 연결이므로 포탈로서 연결
된다된다 ..
바깥과 안을 구분하기 위해바깥과 안을 구분하기 위해 Interior WallInterior Wall 과과 Exterior WallExterior Wall
을 정의한다을 정의한다 ..
카메라가 어느카메라가 어느 ROOMROOM 에 속하는지는에 속하는지는 BSPBSP 트리를 탐색트리를 탐색
하여 알 수 있다하여 알 수 있다 ..
임의의임의의 ROOMROOM 에서는에서는 ROOMROOM 과 연결된과 연결된 PORTALPORTAL 을 통을 통
과하여과하여 ROOMROOM 바깥의 공간을 볼 수 있다바깥의 공간을 볼 수 있다 ..
구현을 위해서는구현을 위해서는 Exterior RoomExterior Room 과과 Interior RoomInterior Room 을 모을 모
델링하고델링하고 PORTALPORTAL 로 연결시켜줄 수 있는 모델링 툴이로 연결시켜줄 수 있는 모델링 툴이
필요하다필요하다 ..
19. 전용 툴을 사용하는 이유전용 툴을 사용하는 이유
완벽하게 정밀한 컬링이 필요한 것은 아님완벽하게 정밀한 컬링이 필요한 것은 아님
BSPBSP 트리 노드와트리 노드와 PORTALPORTAL 을 개수를 제어할 필요가 있을 개수를 제어할 필요가 있
음음
3DSMAX3DSMAX 와 같은 툴로는 규칙에 맞는와 같은 툴로는 규칙에 맞는 (( 닫힌 매쉬닫힌 매쉬 )) 매쉬매쉬
를 제작하기 어려움를 제작하기 어려움
20. 그래픽 작업수순그래픽 작업수순
가이드 매쉬 제작가이드 매쉬 제작
3DSMAX3DSMAX 로의 임포트로의 임포트
3DSMAX3DSMAX 에의 모델링에의 모델링
가이드 매쉬의가이드 매쉬의 BSPBSP 트리 빌드트리 빌드
3DSMAX3DSMAX 에서 만들어진 데이터의 삽임에서 만들어진 데이터의 삽임
21. 1.1. 전용 툴을 사용해서전용 툴을 사용해서 BSPBSP 빌드용 매쉬를 모델링빌드용 매쉬를 모델링
26. 장점장점 // 단점단점
프로그래밍 작업이 쉽지프로그래밍 작업이 쉽지
는 않다는 않다 ..
폴리곤의 불린연산이 가폴리곤의 불린연산이 가
능한 툴을 제작해야한다능한 툴을 제작해야한다 ..
디자이너는 맥스 이외의디자이너는 맥스 이외의
툴툴 (( 어쩌면 버그투성이어쩌면 버그투성이
의의 )) 을 사용하여 추가의을 사용하여 추가의
매쉬를 제작해야한다매쉬를 제작해야한다 ..
약간은 디자인상의 제약약간은 디자인상의 제약
이 생긴다이 생긴다 ..
카메라가 실외 공간에 있카메라가 실외 공간에 있
을때 효율이 떨어지는 것을때 효율이 떨어지는 것
을 획기적으로 개선시키을 획기적으로 개선시키
지는 못한다지는 못한다 ..
카메라가 실내 공간에 있카메라가 실내 공간에 있
을때는 상당한 퍼포먼스을때는 상당한 퍼포먼스
를 보장한다를 보장한다 ..
오클루젼 컬링을 병행하오클루젼 컬링을 병행하
지 않더라도 실외처리에지 않더라도 실외처리에
서 유리하다서 유리하다 ..
27. 보완해야할 점보완해야할 점
인간 친화적인인간 친화적인 UIUI 로의 개선로의 개선
육면체 이외의 브러쉬 지원육면체 이외의 브러쉬 지원
맥스에서 만든 모델로부터의 임포트 기능맥스에서 만든 모델로부터의 임포트 기능
자동화된 오클루젼 생성기능자동화된 오클루젼 생성기능