SlideShare a Scribd company logo
프레임레이트 향상을 위한 공간분할프레임레이트 향상을 위한 공간분할
및 오브젝트 컬링 기법및 오브젝트 컬링 기법
유영천유영천
nhn gamesnhn games
SlushSlush 팀 팀장팀 팀장 // 리드 프로그래머리드 프로그래머
프레임 레이트를 높이려면프레임 레이트를 높이려면 ??
 최신형 그래픽 카드를 장착하게 한다최신형 그래픽 카드를 장착하게 한다 ..
 그래픽 리소스의 퀄리티를 대폭 떨어뜨린그래픽 리소스의 퀄리티를 대폭 떨어뜨린
다다 ..
 불필요한 오브젝트를 렌더링하지 않도록불필요한 오브젝트를 렌더링하지 않도록
프로그래밍한다프로그래밍한다 ..
보이지 않는 오브젝트 그리지 않기보이지 않는 오브젝트 그리지 않기
컬링없음컬링없음 .. 가속기 완전 의존가속기 완전 의존
View
Frustum
장점장점 // 단점단점
 만들기 쉽다만들기 쉽다 ..  무한대의 성능을 자랑무한대의 성능을 자랑
하는 그래픽 카드가 나하는 그래픽 카드가 나
오면 게임을 출시할 수오면 게임을 출시할 수
있다있다 ..
OnlyOnly 뷰프러스텀 컬링뷰프러스텀 컬링
View
Frustum
장점장점 // 단점단점
 만들기 쉽다만들기 쉽다 ..
 그래픽 카드의 부담은그래픽 카드의 부담은
상당히 줄여준다상당히 줄여준다 ..
 모든 오브젝트들에 대모든 오브젝트들에 대
해서 뷰프러스텀에 들해서 뷰프러스텀에 들
어가는지를 검사해야어가는지를 검사해야
하므로하므로 cpucpu 자원을 많자원을 많
이 잡아먹는다이 잡아먹는다
뷰프러스텀 컬링뷰프러스텀 컬링 ++ 쿼드트리 또는 옥트리쿼드트리 또는 옥트리
View
Frustum
장점장점 // 단점단점
 비교적 만들기 쉽다비교적 만들기 쉽다 ..
 뷰프러스텀 검사를 할뷰프러스텀 검사를 할
대상들을 대폭 줄여주대상들을 대폭 줄여주
므로므로 cpucpu 자원을 상당자원을 상당
히 아낄 수 있다히 아낄 수 있다 ..
 실외지형에서는 과거실외지형에서는 과거
에나 현재에나 상당히에나 현재에나 상당히
효과적이다효과적이다 ..
 차폐물에차폐물에 (( 벽벽 ,, 산 등산 등 ))
가려진 오브젝트들에가려진 오브젝트들에
대한 컬링은 여전히 불대한 컬링은 여전히 불
가능하다가능하다 ..
뷰프러스텀뷰프러스텀 ++ 쿼드트리쿼드트리 ++ 오클루젼오클루젼
View
Frustum
장점장점 // 단점단점
 비교적 만들기 쉽다비교적 만들기 쉽다 ..
 뷰프러스텀 검사를 할 대뷰프러스텀 검사를 할 대
상들을 대폭 줄여주므로상들을 대폭 줄여주므로
cpucpu 자원을 상당히 아낄자원을 상당히 아낄
수 있다수 있다 ..
 실외지형에서는 과거에나실외지형에서는 과거에나
현재에나 상당히 효과적현재에나 상당히 효과적
이다이다 ..
 차폐물에 가려진 오브젝차폐물에 가려진 오브젝
트들을 렌더링 파이프라트들을 렌더링 파이프라
인에서 제거할 수 있다인에서 제거할 수 있다 ..
 특성상 정밀한 컬링은 어특성상 정밀한 컬링은 어
렵다렵다 ..
 H/WH/W 오클루젼 컬링의 경오클루젼 컬링의 경
우 검사에 소모되는우 검사에 소모되는
CPU/GPUCPU/GPU 클럭을 무시할클럭을 무시할
수 없다수 없다 ..
 S/WS/W 오클루젼 컬링의 경오클루젼 컬링의 경
우 오클루젼이 많아지면우 오클루젼이 많아지면
그 자체로 오클루젼 검색그 자체로 오클루젼 검색
을 위한을 위한 CPUCPU 클럭을 소모클럭을 소모
한다한다 ..
BSP/PORTAL/PVS +BSP/PORTAL/PVS + 뷰프러스텀컬링뷰프러스텀컬링
장점장점 // 단점단점
 실내에 한해서 차폐물실내에 한해서 차폐물
에 대한 컬링은 거의에 대한 컬링은 거의
완벽하다완벽하다 .. 따라서 매따라서 매
우 훌륭한 퍼포먼스를우 훌륭한 퍼포먼스를
보여준다보여준다 (quake(quake 시리시리
즈즈 ))
 BSP/PORTALBSP/PORTAL 을 이용을 이용
해서해서 PVSPVS 를를 [[ 제대제대
로로 ]] 구현했다면 자랑구현했다면 자랑
할만하다할만하다 ..
 만들기 어렵다만들기 어렵다
 닫힌 공간에서만 사용닫힌 공간에서만 사용
할 수 있다할 수 있다 .. 따라서 실따라서 실
외처리가 어렵다외처리가 어렵다 ..
 실내가 아닌 실외실내가 아닌 실외 (( 광광
대역 지형대역 지형 )) 에서는 거에서는 거
의 이득을 볼 수 없다의 이득을 볼 수 없다 ..
완벽한 방법은 없었다완벽한 방법은 없었다 ..
절충안은절충안은 ??
PORTAL +PORTAL + 뷰프러스텀뷰프러스텀 ++ 전용툴을 이용한 컬링전용툴을 이용한 컬링
기본컨셉기본컨셉 (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 로 연결시켜줄 수 있는 모델링 툴이로 연결시켜줄 수 있는 모델링 툴이
필요하다필요하다 ..
기본컨셉기본컨셉 (2)(2)
기본컨셉기본컨셉 (3)(3)
전용 툴을 사용하는 이유전용 툴을 사용하는 이유
 완벽하게 정밀한 컬링이 필요한 것은 아님완벽하게 정밀한 컬링이 필요한 것은 아님
 BSPBSP 트리 노드와트리 노드와 PORTALPORTAL 을 개수를 제어할 필요가 있을 개수를 제어할 필요가 있
음음
 3DSMAX3DSMAX 와 같은 툴로는 규칙에 맞는와 같은 툴로는 규칙에 맞는 (( 닫힌 매쉬닫힌 매쉬 )) 매쉬매쉬
를 제작하기 어려움를 제작하기 어려움
그래픽 작업수순그래픽 작업수순
 가이드 매쉬 제작가이드 매쉬 제작
 3DSMAX3DSMAX 로의 임포트로의 임포트
 3DSMAX3DSMAX 에의 모델링에의 모델링
 가이드 매쉬의가이드 매쉬의 BSPBSP 트리 빌드트리 빌드
 3DSMAX3DSMAX 에서 만들어진 데이터의 삽임에서 만들어진 데이터의 삽임
1.1. 전용 툴을 사용해서전용 툴을 사용해서 BSPBSP 빌드용 매쉬를 모델링빌드용 매쉬를 모델링
2. 3DSMAX2. 3DSMAX 로 임포트하여 건물모델링로 임포트하여 건물모델링 (1)(1)
2. 3DSMAX2. 3DSMAX 로 임포트하여 건물모델링로 임포트하여 건물모델링 (2)(2)
3. SP3. SP 매쉬를매쉬를 BSPBSP 트리로 빌드트리로 빌드
4.4. 맥스에서 만든 모델을 트리에 삽입맥스에서 만든 모델을 트리에 삽입
장점장점 // 단점단점
 프로그래밍 작업이 쉽지프로그래밍 작업이 쉽지
는 않다는 않다 ..
 폴리곤의 불린연산이 가폴리곤의 불린연산이 가
능한 툴을 제작해야한다능한 툴을 제작해야한다 ..
 디자이너는 맥스 이외의디자이너는 맥스 이외의
툴툴 (( 어쩌면 버그투성이어쩌면 버그투성이
의의 )) 을 사용하여 추가의을 사용하여 추가의
매쉬를 제작해야한다매쉬를 제작해야한다 ..
 약간은 디자인상의 제약약간은 디자인상의 제약
이 생긴다이 생긴다 ..
 카메라가 실외 공간에 있카메라가 실외 공간에 있
을때 효율이 떨어지는 것을때 효율이 떨어지는 것
을 획기적으로 개선시키을 획기적으로 개선시키
지는 못한다지는 못한다 ..
 카메라가 실내 공간에 있카메라가 실내 공간에 있
을때는 상당한 퍼포먼스을때는 상당한 퍼포먼스
를 보장한다를 보장한다 ..
 오클루젼 컬링을 병행하오클루젼 컬링을 병행하
지 않더라도 실외처리에지 않더라도 실외처리에
서 유리하다서 유리하다 ..
보완해야할 점보완해야할 점
 인간 친화적인인간 친화적인 UIUI 로의 개선로의 개선
 육면체 이외의 브러쉬 지원육면체 이외의 브러쉬 지원
 맥스에서 만든 모델로부터의 임포트 기능맥스에서 만든 모델로부터의 임포트 기능
 자동화된 오클루젼 생성기능자동화된 오클루젼 생성기능

More Related Content

What's hot

중앙 서버 없는 게임 로직
중앙 서버 없는 게임 로직중앙 서버 없는 게임 로직
중앙 서버 없는 게임 로직
Hoyoung Choi
 
Hierachical z Map Occlusion Culling
Hierachical z Map Occlusion CullingHierachical z Map Occlusion Culling
Hierachical z Map Occlusion CullingYEONG-CHEON YOU
 
DirectStroage프로그래밍소개
DirectStroage프로그래밍소개DirectStroage프로그래밍소개
DirectStroage프로그래밍소개
YEONG-CHEON YOU
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012devCAT Studio, NEXON
 
리플렉션과 가비지 컬렉션
리플렉션과 가비지 컬렉션리플렉션과 가비지 컬렉션
리플렉션과 가비지 컬렉션
QooJuice
 
멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)
Bongseok Cho
 
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
Ki Hyunwoo
 
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템
QooJuice
 
NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현
noerror
 
Compute shader DX11
Compute shader DX11Compute shader DX11
Compute shader DX11
민웅 이
 
언리얼을 활용한 오브젝트 풀링
언리얼을 활용한 오브젝트 풀링언리얼을 활용한 오브젝트 풀링
언리얼을 활용한 오브젝트 풀링
TonyCms
 
GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리
GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리
GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리
YEONG-CHEON YOU
 
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
강 민우
 
Visual Studio를 이용한 어셈블리어 학습 part 1
Visual Studio를 이용한 어셈블리어 학습 part 1Visual Studio를 이용한 어셈블리어 학습 part 1
Visual Studio를 이용한 어셈블리어 학습 part 1
YEONG-CHEON YOU
 
AAA게임_UI_최적화_및_빌드하기.pptx
AAA게임_UI_최적화_및_빌드하기.pptxAAA게임_UI_최적화_및_빌드하기.pptx
AAA게임_UI_최적화_및_빌드하기.pptx
TonyCms
 
빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술
YEONG-CHEON YOU
 
임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013devCAT Studio, NEXON
 
게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU
YEONG-CHEON YOU
 
Cascade Shadow Mapping
Cascade Shadow MappingCascade Shadow Mapping
Cascade Shadow Mapping
Sukwoo Lee
 
[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shading[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shadingMinGeun Park
 

What's hot (20)

중앙 서버 없는 게임 로직
중앙 서버 없는 게임 로직중앙 서버 없는 게임 로직
중앙 서버 없는 게임 로직
 
Hierachical z Map Occlusion Culling
Hierachical z Map Occlusion CullingHierachical z Map Occlusion Culling
Hierachical z Map Occlusion Culling
 
DirectStroage프로그래밍소개
DirectStroage프로그래밍소개DirectStroage프로그래밍소개
DirectStroage프로그래밍소개
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012
 
리플렉션과 가비지 컬렉션
리플렉션과 가비지 컬렉션리플렉션과 가비지 컬렉션
리플렉션과 가비지 컬렉션
 
멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)
 
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
 
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템
 
NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현
 
Compute shader DX11
Compute shader DX11Compute shader DX11
Compute shader DX11
 
언리얼을 활용한 오브젝트 풀링
언리얼을 활용한 오브젝트 풀링언리얼을 활용한 오브젝트 풀링
언리얼을 활용한 오브젝트 풀링
 
GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리
GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리
GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리
 
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
 
Visual Studio를 이용한 어셈블리어 학습 part 1
Visual Studio를 이용한 어셈블리어 학습 part 1Visual Studio를 이용한 어셈블리어 학습 part 1
Visual Studio를 이용한 어셈블리어 학습 part 1
 
AAA게임_UI_최적화_및_빌드하기.pptx
AAA게임_UI_최적화_및_빌드하기.pptxAAA게임_UI_최적화_및_빌드하기.pptx
AAA게임_UI_최적화_및_빌드하기.pptx
 
빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술
 
임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013
 
게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU
 
Cascade Shadow Mapping
Cascade Shadow MappingCascade Shadow Mapping
Cascade Shadow Mapping
 
[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shading[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shading
 

Similar to 프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법

모바일 게임 최적화
모바일 게임 최적화 모바일 게임 최적화
모바일 게임 최적화
tartist
 
[2B2]기계 친화성을 중심으로 접근한 최적화 기법
[2B2]기계 친화성을 중심으로 접근한 최적화 기법[2B2]기계 친화성을 중심으로 접근한 최적화 기법
[2B2]기계 친화성을 중심으로 접근한 최적화 기법
NAVER D2
 
Kgc2014 jplee allegorithmic
Kgc2014 jplee allegorithmicKgc2014 jplee allegorithmic
Kgc2014 jplee allegorithmic
Lee Jungpyo
 
[Kgc2013] 모바일 엔진 개발기
[Kgc2013] 모바일 엔진 개발기[Kgc2013] 모바일 엔진 개발기
[Kgc2013] 모바일 엔진 개발기
changehee lee
 
[NDC08] 최적화와 프로파일링 - 송창규
[NDC08] 최적화와 프로파일링 - 송창규[NDC08] 최적화와 프로파일링 - 송창규
[NDC08] 최적화와 프로파일링 - 송창규ChangKyu Song
 
Ndc12 이창희 render_pipeline
Ndc12 이창희 render_pipelineNdc12 이창희 render_pipeline
Ndc12 이창희 render_pipeline
changehee lee
 
니시카와젠지의 3 d 게임 팬을 위한 ps4
니시카와젠지의 3 d 게임 팬을 위한 ps4니시카와젠지의 3 d 게임 팬을 위한 ps4
니시카와젠지의 3 d 게임 팬을 위한 ps4
민웅 이
 
20140514 team blender_v01 (Korean)
20140514 team blender_v01 (Korean)20140514 team blender_v01 (Korean)
20140514 team blender_v01 (Korean)
Dongho Kim
 
Modern gpu optimize blog
Modern gpu optimize blogModern gpu optimize blog
Modern gpu optimize blog
ozlael ozlael
 
Modern gpu optimize
Modern gpu optimizeModern gpu optimize
Modern gpu optimize
ozlael ozlael
 
[박민근] 3 d렌더링 옵티마이징_2
[박민근] 3 d렌더링 옵티마이징_2[박민근] 3 d렌더링 옵티마이징_2
[박민근] 3 d렌더링 옵티마이징_2MinGeun Park
 
multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트
multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트
multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트JP Jung
 
Gametech2015
Gametech2015Gametech2015
Gametech2015
SangYun Yi
 
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012devCAT Studio, NEXON
 
KGC 2007 소프트웨어 렌더러 개발
KGC 2007  소프트웨어 렌더러 개발KGC 2007  소프트웨어 렌더러 개발
KGC 2007 소프트웨어 렌더러 개발
SeongWan Kim
 
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
SangYun Yi
 
[KGC2014] 울프나이츠 엔진 프로그래밍 기록
[KGC2014] 울프나이츠 엔진 프로그래밍 기록 [KGC2014] 울프나이츠 엔진 프로그래밍 기록
[KGC2014] 울프나이츠 엔진 프로그래밍 기록
JiUng Choi
 
[조진현] [Kgc2011]direct x11 이야기
[조진현] [Kgc2011]direct x11 이야기[조진현] [Kgc2011]direct x11 이야기
[조진현] [Kgc2011]direct x11 이야기진현 조
 
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기
Chang W. Doh
 
프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기
Chang W. Doh
 

Similar to 프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법 (20)

모바일 게임 최적화
모바일 게임 최적화 모바일 게임 최적화
모바일 게임 최적화
 
[2B2]기계 친화성을 중심으로 접근한 최적화 기법
[2B2]기계 친화성을 중심으로 접근한 최적화 기법[2B2]기계 친화성을 중심으로 접근한 최적화 기법
[2B2]기계 친화성을 중심으로 접근한 최적화 기법
 
Kgc2014 jplee allegorithmic
Kgc2014 jplee allegorithmicKgc2014 jplee allegorithmic
Kgc2014 jplee allegorithmic
 
[Kgc2013] 모바일 엔진 개발기
[Kgc2013] 모바일 엔진 개발기[Kgc2013] 모바일 엔진 개발기
[Kgc2013] 모바일 엔진 개발기
 
[NDC08] 최적화와 프로파일링 - 송창규
[NDC08] 최적화와 프로파일링 - 송창규[NDC08] 최적화와 프로파일링 - 송창규
[NDC08] 최적화와 프로파일링 - 송창규
 
Ndc12 이창희 render_pipeline
Ndc12 이창희 render_pipelineNdc12 이창희 render_pipeline
Ndc12 이창희 render_pipeline
 
니시카와젠지의 3 d 게임 팬을 위한 ps4
니시카와젠지의 3 d 게임 팬을 위한 ps4니시카와젠지의 3 d 게임 팬을 위한 ps4
니시카와젠지의 3 d 게임 팬을 위한 ps4
 
20140514 team blender_v01 (Korean)
20140514 team blender_v01 (Korean)20140514 team blender_v01 (Korean)
20140514 team blender_v01 (Korean)
 
Modern gpu optimize blog
Modern gpu optimize blogModern gpu optimize blog
Modern gpu optimize blog
 
Modern gpu optimize
Modern gpu optimizeModern gpu optimize
Modern gpu optimize
 
[박민근] 3 d렌더링 옵티마이징_2
[박민근] 3 d렌더링 옵티마이징_2[박민근] 3 d렌더링 옵티마이징_2
[박민근] 3 d렌더링 옵티마이징_2
 
multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트
multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트
multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트
 
Gametech2015
Gametech2015Gametech2015
Gametech2015
 
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
 
KGC 2007 소프트웨어 렌더러 개발
KGC 2007  소프트웨어 렌더러 개발KGC 2007  소프트웨어 렌더러 개발
KGC 2007 소프트웨어 렌더러 개발
 
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
 
[KGC2014] 울프나이츠 엔진 프로그래밍 기록
[KGC2014] 울프나이츠 엔진 프로그래밍 기록 [KGC2014] 울프나이츠 엔진 프로그래밍 기록
[KGC2014] 울프나이츠 엔진 프로그래밍 기록
 
[조진현] [Kgc2011]direct x11 이야기
[조진현] [Kgc2011]direct x11 이야기[조진현] [Kgc2011]direct x11 이야기
[조진현] [Kgc2011]direct x11 이야기
 
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기
 
프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기
 

More from YEONG-CHEON YOU

CUDA Raytracing을 이용한 Voxel오브젝트 가시성 테스트
CUDA Raytracing을 이용한 Voxel오브젝트 가시성 테스트CUDA Raytracing을 이용한 Voxel오브젝트 가시성 테스트
CUDA Raytracing을 이용한 Voxel오브젝트 가시성 테스트
YEONG-CHEON YOU
 
Visual Studio를 이용한 어셈블리어 학습 part 2
Visual Studio를 이용한 어셈블리어 학습 part 2Visual Studio를 이용한 어셈블리어 학습 part 2
Visual Studio를 이용한 어셈블리어 학습 part 2
YEONG-CHEON YOU
 
XDK없이 XBOX게임 개발하기(UWP on XBOX)
XDK없이 XBOX게임 개발하기(UWP on XBOX)XDK없이 XBOX게임 개발하기(UWP on XBOX)
XDK없이 XBOX게임 개발하기(UWP on XBOX)
YEONG-CHEON YOU
 
Introduction to DirectX 12 Programming , Ver 1.5
Introduction to DirectX 12 Programming , Ver 1.5Introduction to DirectX 12 Programming , Ver 1.5
Introduction to DirectX 12 Programming , Ver 1.5
YEONG-CHEON YOU
 
Voxelizaition with GPU
Voxelizaition with GPUVoxelizaition with GPU
Voxelizaition with GPU
YEONG-CHEON YOU
 
Voxel based game_optimazation_relelase
Voxel based game_optimazation_relelaseVoxel based game_optimazation_relelase
Voxel based game_optimazation_relelase
YEONG-CHEON YOU
 
Sw occlusion culling
Sw occlusion cullingSw occlusion culling
Sw occlusion culling
YEONG-CHEON YOU
 
CUDA를 게임 프로젝트에 적용하기
CUDA를 게임 프로젝트에 적용하기CUDA를 게임 프로젝트에 적용하기
CUDA를 게임 프로젝트에 적용하기
YEONG-CHEON YOU
 
서버와 클라이언트 같은 엔진 사용하기
서버와 클라이언트 같은 엔진 사용하기서버와 클라이언트 같은 엔진 사용하기
서버와 클라이언트 같은 엔진 사용하기
YEONG-CHEON YOU
 
win32 app에서 UWP API호출하기
win32 app에서 UWP API호출하기win32 app에서 UWP API호출하기
win32 app에서 UWP API호출하기
YEONG-CHEON YOU
 
Azure로 MMO게임 서비스하기
Azure로 MMO게임 서비스하기Azure로 MMO게임 서비스하기
Azure로 MMO게임 서비스하기
YEONG-CHEON YOU
 
Development AR App with C++ and Windows Holographic API
Development AR App with C++ and Windows Holographic APIDevelopment AR App with C++ and Windows Holographic API
Development AR App with C++ and Windows Holographic API
YEONG-CHEON YOU
 
빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)
YEONG-CHEON YOU
 
Tips and experience_of_dx12_engine_development._ver_1.2
Tips and experience_of_dx12_engine_development._ver_1.2Tips and experience_of_dx12_engine_development._ver_1.2
Tips and experience_of_dx12_engine_development._ver_1.2
YEONG-CHEON YOU
 
Implements Cascaded Shadow Maps with using Texture Array
Implements Cascaded Shadow Maps with using Texture ArrayImplements Cascaded Shadow Maps with using Texture Array
Implements Cascaded Shadow Maps with using Texture Array
YEONG-CHEON YOU
 
Porting direct x 11 desktop game to uwp app
Porting direct x 11 desktop game to uwp appPorting direct x 11 desktop game to uwp app
Porting direct x 11 desktop game to uwp app
YEONG-CHEON YOU
 
프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~
프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~
프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~
YEONG-CHEON YOU
 
DirectX + C++을 이용한 WindowsStore App과 Windows Phone용 게임 개발
DirectX + C++을 이용한  WindowsStore App과 Windows Phone용 게임 개발DirectX + C++을 이용한  WindowsStore App과 Windows Phone용 게임 개발
DirectX + C++을 이용한 WindowsStore App과 Windows Phone용 게임 개발
YEONG-CHEON YOU
 

More from YEONG-CHEON YOU (18)

CUDA Raytracing을 이용한 Voxel오브젝트 가시성 테스트
CUDA Raytracing을 이용한 Voxel오브젝트 가시성 테스트CUDA Raytracing을 이용한 Voxel오브젝트 가시성 테스트
CUDA Raytracing을 이용한 Voxel오브젝트 가시성 테스트
 
Visual Studio를 이용한 어셈블리어 학습 part 2
Visual Studio를 이용한 어셈블리어 학습 part 2Visual Studio를 이용한 어셈블리어 학습 part 2
Visual Studio를 이용한 어셈블리어 학습 part 2
 
XDK없이 XBOX게임 개발하기(UWP on XBOX)
XDK없이 XBOX게임 개발하기(UWP on XBOX)XDK없이 XBOX게임 개발하기(UWP on XBOX)
XDK없이 XBOX게임 개발하기(UWP on XBOX)
 
Introduction to DirectX 12 Programming , Ver 1.5
Introduction to DirectX 12 Programming , Ver 1.5Introduction to DirectX 12 Programming , Ver 1.5
Introduction to DirectX 12 Programming , Ver 1.5
 
Voxelizaition with GPU
Voxelizaition with GPUVoxelizaition with GPU
Voxelizaition with GPU
 
Voxel based game_optimazation_relelase
Voxel based game_optimazation_relelaseVoxel based game_optimazation_relelase
Voxel based game_optimazation_relelase
 
Sw occlusion culling
Sw occlusion cullingSw occlusion culling
Sw occlusion culling
 
CUDA를 게임 프로젝트에 적용하기
CUDA를 게임 프로젝트에 적용하기CUDA를 게임 프로젝트에 적용하기
CUDA를 게임 프로젝트에 적용하기
 
서버와 클라이언트 같은 엔진 사용하기
서버와 클라이언트 같은 엔진 사용하기서버와 클라이언트 같은 엔진 사용하기
서버와 클라이언트 같은 엔진 사용하기
 
win32 app에서 UWP API호출하기
win32 app에서 UWP API호출하기win32 app에서 UWP API호출하기
win32 app에서 UWP API호출하기
 
Azure로 MMO게임 서비스하기
Azure로 MMO게임 서비스하기Azure로 MMO게임 서비스하기
Azure로 MMO게임 서비스하기
 
Development AR App with C++ and Windows Holographic API
Development AR App with C++ and Windows Holographic APIDevelopment AR App with C++ and Windows Holographic API
Development AR App with C++ and Windows Holographic API
 
빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)
 
Tips and experience_of_dx12_engine_development._ver_1.2
Tips and experience_of_dx12_engine_development._ver_1.2Tips and experience_of_dx12_engine_development._ver_1.2
Tips and experience_of_dx12_engine_development._ver_1.2
 
Implements Cascaded Shadow Maps with using Texture Array
Implements Cascaded Shadow Maps with using Texture ArrayImplements Cascaded Shadow Maps with using Texture Array
Implements Cascaded Shadow Maps with using Texture Array
 
Porting direct x 11 desktop game to uwp app
Porting direct x 11 desktop game to uwp appPorting direct x 11 desktop game to uwp app
Porting direct x 11 desktop game to uwp app
 
프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~
프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~
프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~
 
DirectX + C++을 이용한 WindowsStore App과 Windows Phone용 게임 개발
DirectX + C++을 이용한  WindowsStore App과 Windows Phone용 게임 개발DirectX + C++을 이용한  WindowsStore App과 Windows Phone용 게임 개발
DirectX + C++을 이용한 WindowsStore App과 Windows Phone용 게임 개발
 

프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법

  • 1. 프레임레이트 향상을 위한 공간분할프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법및 오브젝트 컬링 기법 유영천유영천 nhn gamesnhn games SlushSlush 팀 팀장팀 팀장 // 리드 프로그래머리드 프로그래머
  • 2. 프레임 레이트를 높이려면프레임 레이트를 높이려면 ??  최신형 그래픽 카드를 장착하게 한다최신형 그래픽 카드를 장착하게 한다 ..  그래픽 리소스의 퀄리티를 대폭 떨어뜨린그래픽 리소스의 퀄리티를 대폭 떨어뜨린 다다 ..  불필요한 오브젝트를 렌더링하지 않도록불필요한 오브젝트를 렌더링하지 않도록 프로그래밍한다프로그래밍한다 ..
  • 3. 보이지 않는 오브젝트 그리지 않기보이지 않는 오브젝트 그리지 않기
  • 4. 컬링없음컬링없음 .. 가속기 완전 의존가속기 완전 의존 View Frustum
  • 5. 장점장점 // 단점단점  만들기 쉽다만들기 쉽다 ..  무한대의 성능을 자랑무한대의 성능을 자랑 하는 그래픽 카드가 나하는 그래픽 카드가 나 오면 게임을 출시할 수오면 게임을 출시할 수 있다있다 ..
  • 7. 장점장점 // 단점단점  만들기 쉽다만들기 쉽다 ..  그래픽 카드의 부담은그래픽 카드의 부담은 상당히 줄여준다상당히 줄여준다 ..  모든 오브젝트들에 대모든 오브젝트들에 대 해서 뷰프러스텀에 들해서 뷰프러스텀에 들 어가는지를 검사해야어가는지를 검사해야 하므로하므로 cpucpu 자원을 많자원을 많 이 잡아먹는다이 잡아먹는다
  • 8. 뷰프러스텀 컬링뷰프러스텀 컬링 ++ 쿼드트리 또는 옥트리쿼드트리 또는 옥트리 View Frustum
  • 9. 장점장점 // 단점단점  비교적 만들기 쉽다비교적 만들기 쉽다 ..  뷰프러스텀 검사를 할뷰프러스텀 검사를 할 대상들을 대폭 줄여주대상들을 대폭 줄여주 므로므로 cpucpu 자원을 상당자원을 상당 히 아낄 수 있다히 아낄 수 있다 ..  실외지형에서는 과거실외지형에서는 과거 에나 현재에나 상당히에나 현재에나 상당히 효과적이다효과적이다 ..  차폐물에차폐물에 (( 벽벽 ,, 산 등산 등 )) 가려진 오브젝트들에가려진 오브젝트들에 대한 컬링은 여전히 불대한 컬링은 여전히 불 가능하다가능하다 ..
  • 10. 뷰프러스텀뷰프러스텀 ++ 쿼드트리쿼드트리 ++ 오클루젼오클루젼 View Frustum
  • 11. 장점장점 // 단점단점  비교적 만들기 쉽다비교적 만들기 쉽다 ..  뷰프러스텀 검사를 할 대뷰프러스텀 검사를 할 대 상들을 대폭 줄여주므로상들을 대폭 줄여주므로 cpucpu 자원을 상당히 아낄자원을 상당히 아낄 수 있다수 있다 ..  실외지형에서는 과거에나실외지형에서는 과거에나 현재에나 상당히 효과적현재에나 상당히 효과적 이다이다 ..  차폐물에 가려진 오브젝차폐물에 가려진 오브젝 트들을 렌더링 파이프라트들을 렌더링 파이프라 인에서 제거할 수 있다인에서 제거할 수 있다 ..  특성상 정밀한 컬링은 어특성상 정밀한 컬링은 어 렵다렵다 ..  H/WH/W 오클루젼 컬링의 경오클루젼 컬링의 경 우 검사에 소모되는우 검사에 소모되는 CPU/GPUCPU/GPU 클럭을 무시할클럭을 무시할 수 없다수 없다 ..  S/WS/W 오클루젼 컬링의 경오클루젼 컬링의 경 우 오클루젼이 많아지면우 오클루젼이 많아지면 그 자체로 오클루젼 검색그 자체로 오클루젼 검색 을 위한을 위한 CPUCPU 클럭을 소모클럭을 소모 한다한다 ..
  • 12. BSP/PORTAL/PVS +BSP/PORTAL/PVS + 뷰프러스텀컬링뷰프러스텀컬링
  • 13. 장점장점 // 단점단점  실내에 한해서 차폐물실내에 한해서 차폐물 에 대한 컬링은 거의에 대한 컬링은 거의 완벽하다완벽하다 .. 따라서 매따라서 매 우 훌륭한 퍼포먼스를우 훌륭한 퍼포먼스를 보여준다보여준다 (quake(quake 시리시리 즈즈 ))  BSP/PORTALBSP/PORTAL 을 이용을 이용 해서해서 PVSPVS 를를 [[ 제대제대 로로 ]] 구현했다면 자랑구현했다면 자랑 할만하다할만하다 ..  만들기 어렵다만들기 어렵다  닫힌 공간에서만 사용닫힌 공간에서만 사용 할 수 있다할 수 있다 .. 따라서 실따라서 실 외처리가 어렵다외처리가 어렵다 ..  실내가 아닌 실외실내가 아닌 실외 (( 광광 대역 지형대역 지형 )) 에서는 거에서는 거 의 이득을 볼 수 없다의 이득을 볼 수 없다 ..
  • 14. 완벽한 방법은 없었다완벽한 방법은 없었다 .. 절충안은절충안은 ??
  • 15. PORTAL +PORTAL + 뷰프러스텀뷰프러스텀 ++ 전용툴을 이용한 컬링전용툴을 이용한 컬링
  • 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 빌드용 매쉬를 모델링빌드용 매쉬를 모델링
  • 22. 2. 3DSMAX2. 3DSMAX 로 임포트하여 건물모델링로 임포트하여 건물모델링 (1)(1)
  • 23. 2. 3DSMAX2. 3DSMAX 로 임포트하여 건물모델링로 임포트하여 건물모델링 (2)(2)
  • 24. 3. SP3. SP 매쉬를매쉬를 BSPBSP 트리로 빌드트리로 빌드
  • 25. 4.4. 맥스에서 만든 모델을 트리에 삽입맥스에서 만든 모델을 트리에 삽입
  • 26. 장점장점 // 단점단점  프로그래밍 작업이 쉽지프로그래밍 작업이 쉽지 는 않다는 않다 ..  폴리곤의 불린연산이 가폴리곤의 불린연산이 가 능한 툴을 제작해야한다능한 툴을 제작해야한다 ..  디자이너는 맥스 이외의디자이너는 맥스 이외의 툴툴 (( 어쩌면 버그투성이어쩌면 버그투성이 의의 )) 을 사용하여 추가의을 사용하여 추가의 매쉬를 제작해야한다매쉬를 제작해야한다 ..  약간은 디자인상의 제약약간은 디자인상의 제약 이 생긴다이 생긴다 ..  카메라가 실외 공간에 있카메라가 실외 공간에 있 을때 효율이 떨어지는 것을때 효율이 떨어지는 것 을 획기적으로 개선시키을 획기적으로 개선시키 지는 못한다지는 못한다 ..  카메라가 실내 공간에 있카메라가 실내 공간에 있 을때는 상당한 퍼포먼스을때는 상당한 퍼포먼스 를 보장한다를 보장한다 ..  오클루젼 컬링을 병행하오클루젼 컬링을 병행하 지 않더라도 실외처리에지 않더라도 실외처리에 서 유리하다서 유리하다 ..
  • 27. 보완해야할 점보완해야할 점  인간 친화적인인간 친화적인 UIUI 로의 개선로의 개선  육면체 이외의 브러쉬 지원육면체 이외의 브러쉬 지원  맥스에서 만든 모델로부터의 임포트 기능맥스에서 만든 모델로부터의 임포트 기능  자동화된 오클루젼 생성기능자동화된 오클루젼 생성기능