SlideShare uma empresa Scribd logo
1 de 35
게임 최적화게임 최적화
강태영강태영
하드웨어의 구성하드웨어의 구성 (( 컴퓨터컴퓨터 ,, 모바일 동일모바일 동일 ))
• CPU
• GPU
• MEMORY
CPUCPU 가 하는 일은가 하는 일은 ??
GPUGPU 가 하는 일은가 하는 일은 ??
메모리가 하는 일은메모리가 하는 일은 ??
• CPUCPU 에서 만든 생산물들을 보내서 저장해 두는 곳 – 주 기억장치에서 만든 생산물들을 보내서 저장해 두는 곳 – 주 기억장치 (( 업무를 진행하는업무를 진행하는
사무실사무실 ) ,) , 하드는 보조기억장치하드는 보조기억장치 (( 창고창고 ), CPU), CPU 와 독대하는 유일한 존재가와 독대하는 유일한 존재가 RAM.RAM.
• Random Access Memory –Random Access Memory – 임의 접근 기억장치임의 접근 기억장치 .. 테이프처럼 처음부터 감아서 찾는테이프처럼 처음부터 감아서 찾는
방식이 아닌 레코드처럼 임의 장소로 바로 접근할 수 있는 방식방식이 아닌 레코드처럼 임의 장소로 바로 접근할 수 있는 방식 .. 램은 사용자가 원램은 사용자가 원
하는 곳 어디라도 곧바로 이동이 가능한 부품하는 곳 어디라도 곧바로 이동이 가능한 부품 ..
• 22 진법으로 작동하는 메모리진법으로 작동하는 메모리 .. 메모리의 주소메모리의 주소 (Address)(Address) 에 할당되게 되고에 할당되게 되고 ,, 필요할때필요할때
꺼내 쓰는 형식꺼내 쓰는 형식 ..
• 메모리가 적으면 로딩에 직접적인 영향을 주며 메모리가 감당할 수 없는 만큼메모리가 적으면 로딩에 직접적인 영향을 주며 메모리가 감당할 수 없는 만큼 CPUCPU
가 일을 하게 되면 다운되는 현상이 벌어진다가 일을 하게 되면 다운되는 현상이 벌어진다 ..
* Bottle Neck!!
병목 지점 (Bottle Neck) 이 뭔데 ?
• 게임의 처리 속도에서 가장 부하가 걸리는 지점게임의 처리 속도에서 가장 부하가 걸리는 지점
• 특정 부분에 부하가 걸려 있기 때문에특정 부분에 부하가 걸려 있기 때문에 ,, 이 지점을 파악하고이 지점을 파악하고 ,, 수정하지 않으면 다른수정하지 않으면 다른
부분을 아무리 수정해도 전체적인 속도 향상의 효과가 없다부분을 아무리 수정해도 전체적인 속도 향상의 효과가 없다 ..
• 병의 내용물이 아무리 많다 해도병의 내용물이 아무리 많다 해도 ,, 병의 목부분의 넓이가 전체의 내용물을 쏟아내는병의 목부분의 넓이가 전체의 내용물을 쏟아내는
속도속도 (( 시간시간 )) 를 결정한다를 결정한다 ..
• 효율적인 최적화 전략이란효율적인 최적화 전략이란 ,, 이 보틀넥을 정확히 파악하여 집중적으로 최적화 시키는이 보틀넥을 정확히 파악하여 집중적으로 최적화 시키는
것것
• CPU(CPU( 프로그램프로그램 )) 와와 GPU(GPU( 렌더링렌더링 )) 의 처리속도의 처리속도 ,, 버스버스 ,, 대역폭 등에 의해서 보틀넥이대역폭 등에 의해서 보틀넥이
발생한다발생한다 ..
최적화의 시작은 병목 파악부터
CPUCPU
•너무 많은너무 많은 DP CALLDP CALL
•복잡한 스크립트나 물리 연산복잡한 스크립트나 물리 연산
Vertex ProcessingVertex Processing
•너무 많은 버텍스들너무 많은 버텍스들
•버텍스당 너무 많은 연산버텍스당 너무 많은 연산 (( 버텍스 셰이더버텍스 셰이더 ))
Fragment ProcessingFragment Processing
•너무 많은 픽셀너무 많은 픽셀 ,, 오버 드로우오버 드로우 (OverDraw)(OverDraw)
•프래그먼트당 너무 많은 연산프래그먼트당 너무 많은 연산 (( 프래그먼트 셰이더프래그먼트 셰이더 // 픽셀 셰이더픽셀 셰이더 ))
Band WidthBand Width
•크고크고 ,, 압축되지 않은 텍스쳐압축되지 않은 텍스쳐
•고해상도 프레임 버퍼고해상도 프레임 버퍼
드로우콜 감소를 위한 방식 –드로우콜 감소를 위한 방식 – 1.1. 텍스쳐텍스쳐
메모리 사용량을 늘리고 드로우
콜을 줄일것인지 , 드로우콜을
늘리고 메모리를 줄일것인지 기
기 사양에 따른 선택이 필요함 .
메모리보다 GPU 성능이 좋다면
텍스쳐를 나누는 것이 좋고 ,
GPU 성능보다 메모리가 좋다면 ,
한장으로 처리하는게 이득
메모리 최적화를 위해 텍스쳐는 무조건 2 의 제곱이어야 한다 .
텍스쳐텍스쳐
•텍스쳐 사이즈는 무조건텍스쳐 사이즈는 무조건 22 의 제곱이어야 한다의 제곱이어야 한다 ..
•POT(Power of Two)POT(Power of Two)
•POTPOT 가 아닌 경우가 아닌 경우 POTPOT 텍스쳐로 변환되어 로딩 된다텍스쳐로 변환되어 로딩 된다 ..
•900900
Vertex ProcessingVertex Processing
•너무 많은 버텍스들너무 많은 버텍스들
•버텍스당 너무 많은 연산버텍스당 너무 많은 연산 (( 버텍스 셰이더버텍스 셰이더 ))
Fragment ProcessingFragment Processing
•너무 많은 픽셀너무 많은 픽셀 ,, 오버 드로우오버 드로우 (OverDraw)(OverDraw)
•프래그먼트당 너무 많은 연산프래그먼트당 너무 많은 연산 (( 프래그먼트 셰이더프래그먼트 셰이더 // 픽셀 셰이더픽셀 셰이더 ))
Band WidthBand Width
•크고크고 ,, 압축되지 않은 텍스쳐압축되지 않은 텍스쳐
•고해상도 프레임 버퍼고해상도 프레임 버퍼
드로우콜 감소를 위한 방식드로우콜 감소를 위한 방식 2 – 2.2 – 2. 배칭배칭
Static BatchStatic Batch
•Edit > Project Setting > PlayerEdit > Project Setting > Player 에서 설정에서 설정
•움직이지 않는 오브젝트들은움직이지 않는 오브젝트들은 staticstatic 으로 설정해서으로 설정해서 ,, 배칭이 되게 한다배칭이 되게 한다 ..
•StaticStatic 으로 설정된 게임 오브젝트에서 동일한 재질을 사용 할 경우으로 설정된 게임 오브젝트에서 동일한 재질을 사용 할 경우 ,, 자동으자동으
로 통합로 통합
•통합되는 오브젝트를 모두 하나의 커다란 메쉬로만들어서 따로 저장통합되는 오브젝트를 모두 하나의 커다란 메쉬로만들어서 따로 저장 (( 메로메로
리 사용량 증가리 사용량 증가 ))
Dynamic BatchDynamic Batch
•움직이는 물체를 대상으로 동일한 재질을 사용하는움직이는 물체를 대상으로 동일한 재질을 사용하는
경우경우 ,, 자동으로 통합자동으로 통합
•동적 배칭은 계산량이 많으므로동적 배칭은 계산량이 많으므로 ,, 정점이정점이 900900 개 미만개 미만
인 오브젝트만 대상이 됨인 오브젝트만 대상이 됨
모바일모바일 GPUGPU 의 이해의 이해
• Mobile GPU –Mobile GPU – 스마트폰 및 태블릿에 사용되는스마트폰 및 태블릿에 사용되는 AP(Application Processor)AP(Application Processor) 칩에 내칩에 내
장되는장되는 GPUGPU
• 기존기존 GPUGPU 와의 차이 – 기존 하이엔드와 데스크톱 제품과 비교하여 전력효율성이와의 차이 – 기존 하이엔드와 데스크톱 제품과 비교하여 전력효율성이
대두되는대두되는 GPUGPU
모바일모바일 GPU ARCHITECTUREGPU ARCHITECTURE
GPU – geometry , rasterization, composite 으로 구성
렌더링 파이프라인의 이해
- http://egloos.zum.com/chulin28ho/v/5241665
Fixed Graphics Pipeline
-Geometry 기능을 transform, lighting, clipping 으로
구분 .
-Composite 을 texture Mapping, texture combine,
blending 으로 구분 .
Programmable
- Vertex shader, pixel shader 로 구성하여 3D 효
과에 어울리도록 변화
Unified shader
- 버텍스연산과 픽셀연산을 같은 로직에서 수행하도
록 하여 같은 수의 shader 장착시 좀 더 많은
shader 를 동시에 이용할 수 있어 영상 품질을 높일
수 있게 되었다 .
모바일모바일 GPUGPU 사용 기술사용 기술
• Tiled Based Rendering(TBR)
- 기존 데스크탑의 GPU 의 렌더링 파이프 라인인 Immediate Mode Rendering(IMR) 과 비교
하여 rasterization 전에 tiling 작업이 들어간다 .
- 시스템 메모리에서 읽어 와야 하는 정보가 tile 단위로 줄어들게 되어 모든 정보를 on-
chip-memory 에 둘 수가 있어 시스템 메모리로의 잦은 read-write-modify 액세스가 줄어
들게 되는 장점이 있다 .
- 이는 폴리곤 단위 병렬보다 시스템 메모리로 인한 병목 현상이 없기에 병렬처리 효율성을
높일 수 있다 .
TEXTURE COMPRESSION USING LOW-TEXTURE COMPRESSION USING LOW-
FREQUENCY SIGNALFREQUENCY SIGNAL
MODULATION(PVRTC)MODULATION(PVRTC)
3D 장면을 렌더링하는 동안 계속해서 Texture Data 를 읽어
야 하기에 내부 RAM 사용을 증가 시키고 memory bus 의
사용률을 높인다 .
Mobile GPU 에서는 texture compression 을 사용하고 있으며
다음의 사항이 고려되어 설계되어 있다 .
- Decoding speed
-Random access
-Compression rate and visual quality
-Encoding speed
모바일은 배터리와 발열이란 변수가 있다모바일은 배터리와 발열이란 변수가 있다 ....
• 배터리가 일정이상 떨어지면 강제로 프레임을 낮추고배터리가 일정이상 떨어지면 강제로 프레임을 낮추고 CPUCPU 사용량을 줄여버림사용량을 줄여버림 ..
• VsyncVsync 유무로 프레임을 올릴것인지 프레임에 제약을 두고 배터리 생명을 늘릴것인유무로 프레임을 올릴것인지 프레임에 제약을 두고 배터리 생명을 늘릴것인
지지 ....
• 스로틀링을 통해 발열을 제어하게 된다스로틀링을 통해 발열을 제어하게 된다 ..
스로틀링에 의한 배터리 관리스로틀링에 의한 배터리 관리
쓰로틀링은 모두 통일되는 것이 아니라 각
제조사에서 설계 과정시 적용하는 기준에 따
라 약간씩 차이가 있으며 , 온도가 일정 기준
으로 넘어갈 때 프로세서 , GPU 등의 성능을
낮춥니다 .
루팅을 통해 스로틀링 해제가 가능하지만 , 핸드폰의 수명이 급격히 짧아지는 문제가
있다 .
모바일모바일 GPUGPU 의 실제 성능은 어느정도 인가의 실제 성능은 어느정도 인가 ??
최소사양의 기준인 갤럭시최소사양의 기준인 갤럭시 S3 GPUS3 GPU 성능은성능은 ??
• 1010 년전 발표된 데스크탑 비디오카드 정도의 수준년전 발표된 데스크탑 비디오카드 정도의 수준 ....
리니지 2 – 캐릭터 버텍스 1500~2000 개정도
, 캐릭터 텍스쳐 256 , 배경 텍스쳐 128 이
하
릴온라인 – 캐릭터 버텍스 1000~1200 개정
도 , 캐릭터 텍스쳐 256 , 배경 텍스쳐 128
이하
갤럭시갤럭시 S3S3 를 최저로 삼고 있는를 최저로 삼고 있는 ARTART 규약규약
-- 캐릭터 버텍스캐릭터 버텍스 30003000
-- 캐릭터 텍스쳐캐릭터 텍스쳐 512512
-- 배경배경 10241024 통맵통맵 , 256, 256 타일맵타일맵
-- 다양한 후처리 적용다양한 후처리 적용
-- 후처리나 그림자 같은 비싼 기술은 고사양후처리나 그림자 같은 비싼 기술은 고사양
에서만 나오도록 처리에서만 나오도록 처리 (S5(S5 이상이상 ))
최적화 기술 발달로
같은 GPU 성능에
서 더 많은 효과를
줄 수 있게 됐음 ..
하지만 태생적 한계
는 어쩔수 없음 ..
<- Low 퀄리티
(S3 기반 )
High 퀄리티 (S6 기반 )
->
모바일 게임의 필수 – 퀄리티 셋팅모바일 게임의 필수 – 퀄리티 셋팅
• 기기 사양별로 퀄리티를 나눠 고사양에서는 멋지게 나오도록 하고 저사양에서는 프기기 사양별로 퀄리티를 나눠 고사양에서는 멋지게 나오도록 하고 저사양에서는 프
레임이 떨어지지 않도록 퀄리티를 낮추는 방식레임이 떨어지지 않도록 퀄리티를 낮추는 방식
• 최근 출시한최근 출시한 HIT,HIT, 레이븐 등 대부분의 게임에 적용되어 있음레이븐 등 대부분의 게임에 적용되어 있음
• 영군에도 적용하려고 했으나 해외 버전 용량 이슈로 최저사양으로만 출시됨영군에도 적용하려고 했으나 해외 버전 용량 이슈로 최저사양으로만 출시됨
• KCKC 와와 ARTART 에서는 현재 일부 도입되어 있고 일괄 적용 예정에서는 현재 일부 도입되어 있고 일괄 적용 예정
셰이더셰이더 LODLOD 적극 활용적극 활용
• 기종별로 후처리 제어기종별로 후처리 제어 (( 예예 :: 림라이트림라이트 ,, 스스
펙큘러펙큘러 ,, 버텍스 애니등등버텍스 애니등등 ..)..)
• KCKC 같은 경우 캐릭터의 림라이트 유무같은 경우 캐릭터의 림라이트 유무 ,,
물 셰이더의 파도와 퀄리티 유무물 셰이더의 파도와 퀄리티 유무
• 셰이더 코드에셰이더 코드에 600/400/200600/400/200 순으로 코순으로 코
드를 추가하여 등급별로 셰이더가 출력드를 추가하여 등급별로 셰이더가 출력
되도록 셋팅되도록 셋팅
--- pow, exp, log, cos, sin, tan 같은 수학 함수들은 고비
용이다 .
셰이더 LOD200 셰이더 LOD600
곱하기보다 나누기가 10 배 무겁다
나누기보다 삼각함수가 10 배 무겁다
모바일에서모바일에서 PBR(PBR( 물리기반셰이더물리기반셰이더 )) 이 가능할까이 가능할까 ??
• 라이트맵이나 라이트프로브 베라이트맵이나 라이트프로브 베
이킹을 활용하여 비슷하게 따라이킹을 활용하여 비슷하게 따라
하는 것은 가능하지만 실시간하는 것은 가능하지만 실시간
연산은 아직까지는 불가능하다연산은 아직까지는 불가능하다 ..
- 프레넬 법칙 사용
- 미세 표면 거칠기 공식 사용
- IBL 라이트 사용 ( 브이레이같은 ..)
- 디퍼드 렌디렁 기반
- Oren Nayar 조명 모델 사용
- 링크
그 외에 최적화할 수 있는 요소들그 외에 최적화할 수 있는 요소들
• 스켈레톤 메쉬의 본 영향 개수 변화스켈레톤 메쉬의 본 영향 개수 변화
• 화면에 뿌려지는 이펙트 개수 제한화면에 뿌려지는 이펙트 개수 제한
• 모델링모델링 LOD ->LOD -> 메모리 이슈가 있어 모바일에서는 비효율적메모리 이슈가 있어 모바일에서는 비효율적
• 스크립트 최적화스크립트 최적화
• 가비지 컬렉터 제어가비지 컬렉터 제어
• 사운드 최적화사운드 최적화
• 폰트 리소스 최적화폰트 리소스 최적화
• 문서 참조문서 참조

Mais conteúdo relacionado

Mais procurados

게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPUYEONG-CHEON YOU
 
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기강 민우
 
[NDC 2009] 행동 트리로 구현하는 인공지능
[NDC 2009] 행동 트리로 구현하는 인공지능[NDC 2009] 행동 트리로 구현하는 인공지능
[NDC 2009] 행동 트리로 구현하는 인공지능Yongha Kim
 
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기MinGeun Park
 
언리얼을 활용한 오브젝트 풀링
언리얼을 활용한 오브젝트 풀링언리얼을 활용한 오브젝트 풀링
언리얼을 활용한 오브젝트 풀링TonyCms
 
그래픽 최적화로 가...가버렷! (부제: 배치! 배칭을 보자!) , Batch! Let's take a look at Batching! -...
그래픽 최적화로 가...가버렷! (부제: 배치! 배칭을 보자!) , Batch! Let's take a look at Batching! -...그래픽 최적화로 가...가버렷! (부제: 배치! 배칭을 보자!) , Batch! Let's take a look at Batching! -...
그래픽 최적화로 가...가버렷! (부제: 배치! 배칭을 보자!) , Batch! Let's take a look at Batching! -...ozlael ozlael
 
멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)Bongseok Cho
 
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례SangYun Yi
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012devCAT Studio, NEXON
 
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012devCAT Studio, NEXON
 
UI아트 작업자를 위한 언리얼엔진4 UMG #1
UI아트 작업자를 위한 언리얼엔진4 UMG #1UI아트 작업자를 위한 언리얼엔진4 UMG #1
UI아트 작업자를 위한 언리얼엔진4 UMG #1Hong-Gi Joe
 
AAA게임_UI_최적화_및_빌드하기.pptx
AAA게임_UI_최적화_및_빌드하기.pptxAAA게임_UI_최적화_및_빌드하기.pptx
AAA게임_UI_최적화_및_빌드하기.pptxTonyCms
 
Unreal_GameAbilitySystem.pptx
Unreal_GameAbilitySystem.pptxUnreal_GameAbilitySystem.pptx
Unreal_GameAbilitySystem.pptxTonyCms
 
감마가 어디감마
감마가 어디감마감마가 어디감마
감마가 어디감마JP Jung
 
MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현YEONG-CHEON YOU
 
나만의 엔진 개발하기
나만의 엔진 개발하기나만의 엔진 개발하기
나만의 엔진 개발하기YEONG-CHEON YOU
 
Ndc2012 최지호 텍스쳐 압축 기법 소개
Ndc2012 최지호 텍스쳐 압축 기법 소개Ndc2012 최지호 텍스쳐 압축 기법 소개
Ndc2012 최지호 텍스쳐 압축 기법 소개Jiho Choi
 
Ndc12 이창희 render_pipeline
Ndc12 이창희 render_pipelineNdc12 이창희 render_pipeline
Ndc12 이창희 render_pipelinechangehee lee
 
Unity3D로 풀3D web mmorpg 만들기
Unity3D로 풀3D web mmorpg 만들기Unity3D로 풀3D web mmorpg 만들기
Unity3D로 풀3D web mmorpg 만들기JP Jung
 

Mais procurados (20)

게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU
 
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
 
[NDC 2009] 행동 트리로 구현하는 인공지능
[NDC 2009] 행동 트리로 구현하는 인공지능[NDC 2009] 행동 트리로 구현하는 인공지능
[NDC 2009] 행동 트리로 구현하는 인공지능
 
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
 
언리얼을 활용한 오브젝트 풀링
언리얼을 활용한 오브젝트 풀링언리얼을 활용한 오브젝트 풀링
언리얼을 활용한 오브젝트 풀링
 
그래픽 최적화로 가...가버렷! (부제: 배치! 배칭을 보자!) , Batch! Let's take a look at Batching! -...
그래픽 최적화로 가...가버렷! (부제: 배치! 배칭을 보자!) , Batch! Let's take a look at Batching! -...그래픽 최적화로 가...가버렷! (부제: 배치! 배칭을 보자!) , Batch! Let's take a look at Batching! -...
그래픽 최적화로 가...가버렷! (부제: 배치! 배칭을 보자!) , Batch! Let's take a look at Batching! -...
 
멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)멀티스레드 렌더링 (Multithreaded rendering)
멀티스레드 렌더링 (Multithreaded rendering)
 
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012
 
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
 
Motion blur
Motion blurMotion blur
Motion blur
 
UI아트 작업자를 위한 언리얼엔진4 UMG #1
UI아트 작업자를 위한 언리얼엔진4 UMG #1UI아트 작업자를 위한 언리얼엔진4 UMG #1
UI아트 작업자를 위한 언리얼엔진4 UMG #1
 
AAA게임_UI_최적화_및_빌드하기.pptx
AAA게임_UI_최적화_및_빌드하기.pptxAAA게임_UI_최적화_및_빌드하기.pptx
AAA게임_UI_최적화_및_빌드하기.pptx
 
Unreal_GameAbilitySystem.pptx
Unreal_GameAbilitySystem.pptxUnreal_GameAbilitySystem.pptx
Unreal_GameAbilitySystem.pptx
 
감마가 어디감마
감마가 어디감마감마가 어디감마
감마가 어디감마
 
MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현
 
나만의 엔진 개발하기
나만의 엔진 개발하기나만의 엔진 개발하기
나만의 엔진 개발하기
 
Ndc2012 최지호 텍스쳐 압축 기법 소개
Ndc2012 최지호 텍스쳐 압축 기법 소개Ndc2012 최지호 텍스쳐 압축 기법 소개
Ndc2012 최지호 텍스쳐 압축 기법 소개
 
Ndc12 이창희 render_pipeline
Ndc12 이창희 render_pipelineNdc12 이창희 render_pipeline
Ndc12 이창희 render_pipeline
 
Unity3D로 풀3D web mmorpg 만들기
Unity3D로 풀3D web mmorpg 만들기Unity3D로 풀3D web mmorpg 만들기
Unity3D로 풀3D web mmorpg 만들기
 

Semelhante a 모바일 게임 최적화

니시카와젠지의 3 d 게임 팬을 위한 ps4
니시카와젠지의 3 d 게임 팬을 위한 ps4니시카와젠지의 3 d 게임 팬을 위한 ps4
니시카와젠지의 3 d 게임 팬을 위한 ps4민웅 이
 
[Kgc2013] 모바일 엔진 개발기
[Kgc2013] 모바일 엔진 개발기[Kgc2013] 모바일 엔진 개발기
[Kgc2013] 모바일 엔진 개발기changehee lee
 
진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전
진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전
진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전Sukwoo Lee
 
Mapreduce tuning
Mapreduce tuningMapreduce tuning
Mapreduce tuningGruter
 
CUDA를 게임 프로젝트에 적용하기
CUDA를 게임 프로젝트에 적용하기CUDA를 게임 프로젝트에 적용하기
CUDA를 게임 프로젝트에 적용하기YEONG-CHEON YOU
 
[박민근] 3 d렌더링 옵티마이징_nv_perfhud
[박민근] 3 d렌더링 옵티마이징_nv_perfhud[박민근] 3 d렌더링 옵티마이징_nv_perfhud
[박민근] 3 d렌더링 옵티마이징_nv_perfhudMinGeun Park
 
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101)
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101) 모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101)
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101) YoungSu Son
 
3D Engine (ICON 2007)
3D Engine (ICON 2007)3D Engine (ICON 2007)
3D Engine (ICON 2007)SeongWan Kim
 
Modern gpu optimize blog
Modern gpu optimize blogModern gpu optimize blog
Modern gpu optimize blogozlael ozlael
 
Optimizing the graphics_pipeline_
Optimizing the graphics_pipeline_Optimizing the graphics_pipeline_
Optimizing the graphics_pipeline_ozlael ozlael
 
091106kofpublic 091108170852-phpapp02 (번역본)
091106kofpublic 091108170852-phpapp02 (번역본)091106kofpublic 091108170852-phpapp02 (번역본)
091106kofpublic 091108170852-phpapp02 (번역본)Taegil Heo
 
안드로이드 Oreo의 변화와 모바일 앱/플랫폼의 적합한 성능 측정 방법
안드로이드 Oreo의 변화와  모바일 앱/플랫폼의 적합한 성능 측정 방법안드로이드 Oreo의 변화와  모바일 앱/플랫폼의 적합한 성능 측정 방법
안드로이드 Oreo의 변화와 모바일 앱/플랫폼의 적합한 성능 측정 방법YoungSu Son
 
프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기Chang W. Doh
 
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기Chang W. Doh
 
더 빠른 게임시스템을 위하여 개선된 서비스들 - 김병수 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019
더 빠른 게임시스템을 위하여 개선된 서비스들 - 김병수 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019더 빠른 게임시스템을 위하여 개선된 서비스들 - 김병수 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019
더 빠른 게임시스템을 위하여 개선된 서비스들 - 김병수 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019Amazon Web Services Korea
 
Java와 go 간의 병렬 프로그램 성능 비교
Java와 go 간의 병렬 프로그램 성능 비교Java와 go 간의 병렬 프로그램 성능 비교
Java와 go 간의 병렬 프로그램 성능 비교Daniel Lim
 
[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트
[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트
[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트OpenStack Korea Community
 
[NDC08] 최적화와 프로파일링 - 송창규
[NDC08] 최적화와 프로파일링 - 송창규[NDC08] 최적화와 프로파일링 - 송창규
[NDC08] 최적화와 프로파일링 - 송창규ChangKyu Song
 
유니티 게임 그래픽스 아트 개발 사례 분석
유니티 게임 그래픽스 아트 개발 사례 분석유니티 게임 그래픽스 아트 개발 사례 분석
유니티 게임 그래픽스 아트 개발 사례 분석SangYun Yi
 

Semelhante a 모바일 게임 최적화 (20)

니시카와젠지의 3 d 게임 팬을 위한 ps4
니시카와젠지의 3 d 게임 팬을 위한 ps4니시카와젠지의 3 d 게임 팬을 위한 ps4
니시카와젠지의 3 d 게임 팬을 위한 ps4
 
[Kgc2013] 모바일 엔진 개발기
[Kgc2013] 모바일 엔진 개발기[Kgc2013] 모바일 엔진 개발기
[Kgc2013] 모바일 엔진 개발기
 
진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전
진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전
진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전
 
Mapreduce tuning
Mapreduce tuningMapreduce tuning
Mapreduce tuning
 
CUDA를 게임 프로젝트에 적용하기
CUDA를 게임 프로젝트에 적용하기CUDA를 게임 프로젝트에 적용하기
CUDA를 게임 프로젝트에 적용하기
 
[박민근] 3 d렌더링 옵티마이징_nv_perfhud
[박민근] 3 d렌더링 옵티마이징_nv_perfhud[박민근] 3 d렌더링 옵티마이징_nv_perfhud
[박민근] 3 d렌더링 옵티마이징_nv_perfhud
 
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101)
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101) 모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101)
모바일 앱 성능 분석 방법 101 (Mobile Application Performance Analysis Methodology 101)
 
3D Engine (ICON 2007)
3D Engine (ICON 2007)3D Engine (ICON 2007)
3D Engine (ICON 2007)
 
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
 
Optimizing the graphics_pipeline_
Optimizing the graphics_pipeline_Optimizing the graphics_pipeline_
Optimizing the graphics_pipeline_
 
091106kofpublic 091108170852-phpapp02 (번역본)
091106kofpublic 091108170852-phpapp02 (번역본)091106kofpublic 091108170852-phpapp02 (번역본)
091106kofpublic 091108170852-phpapp02 (번역본)
 
안드로이드 Oreo의 변화와 모바일 앱/플랫폼의 적합한 성능 측정 방법
안드로이드 Oreo의 변화와  모바일 앱/플랫폼의 적합한 성능 측정 방법안드로이드 Oreo의 변화와  모바일 앱/플랫폼의 적합한 성능 측정 방법
안드로이드 Oreo의 변화와 모바일 앱/플랫폼의 적합한 성능 측정 방법
 
프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기
 
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기
 
더 빠른 게임시스템을 위하여 개선된 서비스들 - 김병수 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019
더 빠른 게임시스템을 위하여 개선된 서비스들 - 김병수 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019더 빠른 게임시스템을 위하여 개선된 서비스들 - 김병수 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019
더 빠른 게임시스템을 위하여 개선된 서비스들 - 김병수 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019
 
Java와 go 간의 병렬 프로그램 성능 비교
Java와 go 간의 병렬 프로그램 성능 비교Java와 go 간의 병렬 프로그램 성능 비교
Java와 go 간의 병렬 프로그램 성능 비교
 
[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트
[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트
[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트
 
[NDC08] 최적화와 프로파일링 - 송창규
[NDC08] 최적화와 프로파일링 - 송창규[NDC08] 최적화와 프로파일링 - 송창규
[NDC08] 최적화와 프로파일링 - 송창규
 
유니티 게임 그래픽스 아트 개발 사례 분석
유니티 게임 그래픽스 아트 개발 사례 분석유니티 게임 그래픽스 아트 개발 사례 분석
유니티 게임 그래픽스 아트 개발 사례 분석
 

모바일 게임 최적화

  • 2. 하드웨어의 구성하드웨어의 구성 (( 컴퓨터컴퓨터 ,, 모바일 동일모바일 동일 )) • CPU • GPU • MEMORY
  • 3. CPUCPU 가 하는 일은가 하는 일은 ??
  • 4. GPUGPU 가 하는 일은가 하는 일은 ??
  • 5. 메모리가 하는 일은메모리가 하는 일은 ?? • CPUCPU 에서 만든 생산물들을 보내서 저장해 두는 곳 – 주 기억장치에서 만든 생산물들을 보내서 저장해 두는 곳 – 주 기억장치 (( 업무를 진행하는업무를 진행하는 사무실사무실 ) ,) , 하드는 보조기억장치하드는 보조기억장치 (( 창고창고 ), CPU), CPU 와 독대하는 유일한 존재가와 독대하는 유일한 존재가 RAM.RAM. • Random Access Memory –Random Access Memory – 임의 접근 기억장치임의 접근 기억장치 .. 테이프처럼 처음부터 감아서 찾는테이프처럼 처음부터 감아서 찾는 방식이 아닌 레코드처럼 임의 장소로 바로 접근할 수 있는 방식방식이 아닌 레코드처럼 임의 장소로 바로 접근할 수 있는 방식 .. 램은 사용자가 원램은 사용자가 원 하는 곳 어디라도 곧바로 이동이 가능한 부품하는 곳 어디라도 곧바로 이동이 가능한 부품 .. • 22 진법으로 작동하는 메모리진법으로 작동하는 메모리 .. 메모리의 주소메모리의 주소 (Address)(Address) 에 할당되게 되고에 할당되게 되고 ,, 필요할때필요할때 꺼내 쓰는 형식꺼내 쓰는 형식 .. • 메모리가 적으면 로딩에 직접적인 영향을 주며 메모리가 감당할 수 없는 만큼메모리가 적으면 로딩에 직접적인 영향을 주며 메모리가 감당할 수 없는 만큼 CPUCPU 가 일을 하게 되면 다운되는 현상이 벌어진다가 일을 하게 되면 다운되는 현상이 벌어진다 ..
  • 7. 병목 지점 (Bottle Neck) 이 뭔데 ? • 게임의 처리 속도에서 가장 부하가 걸리는 지점게임의 처리 속도에서 가장 부하가 걸리는 지점 • 특정 부분에 부하가 걸려 있기 때문에특정 부분에 부하가 걸려 있기 때문에 ,, 이 지점을 파악하고이 지점을 파악하고 ,, 수정하지 않으면 다른수정하지 않으면 다른 부분을 아무리 수정해도 전체적인 속도 향상의 효과가 없다부분을 아무리 수정해도 전체적인 속도 향상의 효과가 없다 .. • 병의 내용물이 아무리 많다 해도병의 내용물이 아무리 많다 해도 ,, 병의 목부분의 넓이가 전체의 내용물을 쏟아내는병의 목부분의 넓이가 전체의 내용물을 쏟아내는 속도속도 (( 시간시간 )) 를 결정한다를 결정한다 .. • 효율적인 최적화 전략이란효율적인 최적화 전략이란 ,, 이 보틀넥을 정확히 파악하여 집중적으로 최적화 시키는이 보틀넥을 정확히 파악하여 집중적으로 최적화 시키는 것것 • CPU(CPU( 프로그램프로그램 )) 와와 GPU(GPU( 렌더링렌더링 )) 의 처리속도의 처리속도 ,, 버스버스 ,, 대역폭 등에 의해서 보틀넥이대역폭 등에 의해서 보틀넥이 발생한다발생한다 ..
  • 8. 최적화의 시작은 병목 파악부터 CPUCPU •너무 많은너무 많은 DP CALLDP CALL •복잡한 스크립트나 물리 연산복잡한 스크립트나 물리 연산 Vertex ProcessingVertex Processing •너무 많은 버텍스들너무 많은 버텍스들 •버텍스당 너무 많은 연산버텍스당 너무 많은 연산 (( 버텍스 셰이더버텍스 셰이더 )) Fragment ProcessingFragment Processing •너무 많은 픽셀너무 많은 픽셀 ,, 오버 드로우오버 드로우 (OverDraw)(OverDraw) •프래그먼트당 너무 많은 연산프래그먼트당 너무 많은 연산 (( 프래그먼트 셰이더프래그먼트 셰이더 // 픽셀 셰이더픽셀 셰이더 )) Band WidthBand Width •크고크고 ,, 압축되지 않은 텍스쳐압축되지 않은 텍스쳐 •고해상도 프레임 버퍼고해상도 프레임 버퍼
  • 9.
  • 10.
  • 11.
  • 12. 드로우콜 감소를 위한 방식 –드로우콜 감소를 위한 방식 – 1.1. 텍스쳐텍스쳐 메모리 사용량을 늘리고 드로우 콜을 줄일것인지 , 드로우콜을 늘리고 메모리를 줄일것인지 기 기 사양에 따른 선택이 필요함 . 메모리보다 GPU 성능이 좋다면 텍스쳐를 나누는 것이 좋고 , GPU 성능보다 메모리가 좋다면 , 한장으로 처리하는게 이득
  • 13. 메모리 최적화를 위해 텍스쳐는 무조건 2 의 제곱이어야 한다 . 텍스쳐텍스쳐 •텍스쳐 사이즈는 무조건텍스쳐 사이즈는 무조건 22 의 제곱이어야 한다의 제곱이어야 한다 .. •POT(Power of Two)POT(Power of Two) •POTPOT 가 아닌 경우가 아닌 경우 POTPOT 텍스쳐로 변환되어 로딩 된다텍스쳐로 변환되어 로딩 된다 .. •900900 Vertex ProcessingVertex Processing •너무 많은 버텍스들너무 많은 버텍스들 •버텍스당 너무 많은 연산버텍스당 너무 많은 연산 (( 버텍스 셰이더버텍스 셰이더 )) Fragment ProcessingFragment Processing •너무 많은 픽셀너무 많은 픽셀 ,, 오버 드로우오버 드로우 (OverDraw)(OverDraw) •프래그먼트당 너무 많은 연산프래그먼트당 너무 많은 연산 (( 프래그먼트 셰이더프래그먼트 셰이더 // 픽셀 셰이더픽셀 셰이더 )) Band WidthBand Width •크고크고 ,, 압축되지 않은 텍스쳐압축되지 않은 텍스쳐 •고해상도 프레임 버퍼고해상도 프레임 버퍼
  • 14. 드로우콜 감소를 위한 방식드로우콜 감소를 위한 방식 2 – 2.2 – 2. 배칭배칭 Static BatchStatic Batch •Edit > Project Setting > PlayerEdit > Project Setting > Player 에서 설정에서 설정 •움직이지 않는 오브젝트들은움직이지 않는 오브젝트들은 staticstatic 으로 설정해서으로 설정해서 ,, 배칭이 되게 한다배칭이 되게 한다 .. •StaticStatic 으로 설정된 게임 오브젝트에서 동일한 재질을 사용 할 경우으로 설정된 게임 오브젝트에서 동일한 재질을 사용 할 경우 ,, 자동으자동으 로 통합로 통합 •통합되는 오브젝트를 모두 하나의 커다란 메쉬로만들어서 따로 저장통합되는 오브젝트를 모두 하나의 커다란 메쉬로만들어서 따로 저장 (( 메로메로 리 사용량 증가리 사용량 증가 )) Dynamic BatchDynamic Batch •움직이는 물체를 대상으로 동일한 재질을 사용하는움직이는 물체를 대상으로 동일한 재질을 사용하는 경우경우 ,, 자동으로 통합자동으로 통합 •동적 배칭은 계산량이 많으므로동적 배칭은 계산량이 많으므로 ,, 정점이정점이 900900 개 미만개 미만 인 오브젝트만 대상이 됨인 오브젝트만 대상이 됨
  • 15. 모바일모바일 GPUGPU 의 이해의 이해 • Mobile GPU –Mobile GPU – 스마트폰 및 태블릿에 사용되는스마트폰 및 태블릿에 사용되는 AP(Application Processor)AP(Application Processor) 칩에 내칩에 내 장되는장되는 GPUGPU • 기존기존 GPUGPU 와의 차이 – 기존 하이엔드와 데스크톱 제품과 비교하여 전력효율성이와의 차이 – 기존 하이엔드와 데스크톱 제품과 비교하여 전력효율성이 대두되는대두되는 GPUGPU
  • 16. 모바일모바일 GPU ARCHITECTUREGPU ARCHITECTURE GPU – geometry , rasterization, composite 으로 구성 렌더링 파이프라인의 이해 - http://egloos.zum.com/chulin28ho/v/5241665 Fixed Graphics Pipeline -Geometry 기능을 transform, lighting, clipping 으로 구분 . -Composite 을 texture Mapping, texture combine, blending 으로 구분 . Programmable - Vertex shader, pixel shader 로 구성하여 3D 효 과에 어울리도록 변화 Unified shader - 버텍스연산과 픽셀연산을 같은 로직에서 수행하도 록 하여 같은 수의 shader 장착시 좀 더 많은 shader 를 동시에 이용할 수 있어 영상 품질을 높일 수 있게 되었다 .
  • 17. 모바일모바일 GPUGPU 사용 기술사용 기술 • Tiled Based Rendering(TBR) - 기존 데스크탑의 GPU 의 렌더링 파이프 라인인 Immediate Mode Rendering(IMR) 과 비교 하여 rasterization 전에 tiling 작업이 들어간다 . - 시스템 메모리에서 읽어 와야 하는 정보가 tile 단위로 줄어들게 되어 모든 정보를 on- chip-memory 에 둘 수가 있어 시스템 메모리로의 잦은 read-write-modify 액세스가 줄어 들게 되는 장점이 있다 . - 이는 폴리곤 단위 병렬보다 시스템 메모리로 인한 병목 현상이 없기에 병렬처리 효율성을 높일 수 있다 .
  • 18. TEXTURE COMPRESSION USING LOW-TEXTURE COMPRESSION USING LOW- FREQUENCY SIGNALFREQUENCY SIGNAL MODULATION(PVRTC)MODULATION(PVRTC) 3D 장면을 렌더링하는 동안 계속해서 Texture Data 를 읽어 야 하기에 내부 RAM 사용을 증가 시키고 memory bus 의 사용률을 높인다 . Mobile GPU 에서는 texture compression 을 사용하고 있으며 다음의 사항이 고려되어 설계되어 있다 . - Decoding speed -Random access -Compression rate and visual quality -Encoding speed
  • 19.
  • 20. 모바일은 배터리와 발열이란 변수가 있다모바일은 배터리와 발열이란 변수가 있다 .... • 배터리가 일정이상 떨어지면 강제로 프레임을 낮추고배터리가 일정이상 떨어지면 강제로 프레임을 낮추고 CPUCPU 사용량을 줄여버림사용량을 줄여버림 .. • VsyncVsync 유무로 프레임을 올릴것인지 프레임에 제약을 두고 배터리 생명을 늘릴것인유무로 프레임을 올릴것인지 프레임에 제약을 두고 배터리 생명을 늘릴것인 지지 .... • 스로틀링을 통해 발열을 제어하게 된다스로틀링을 통해 발열을 제어하게 된다 ..
  • 21. 스로틀링에 의한 배터리 관리스로틀링에 의한 배터리 관리 쓰로틀링은 모두 통일되는 것이 아니라 각 제조사에서 설계 과정시 적용하는 기준에 따 라 약간씩 차이가 있으며 , 온도가 일정 기준 으로 넘어갈 때 프로세서 , GPU 등의 성능을 낮춥니다 .
  • 22. 루팅을 통해 스로틀링 해제가 가능하지만 , 핸드폰의 수명이 급격히 짧아지는 문제가 있다 .
  • 23. 모바일모바일 GPUGPU 의 실제 성능은 어느정도 인가의 실제 성능은 어느정도 인가 ??
  • 24.
  • 25. 최소사양의 기준인 갤럭시최소사양의 기준인 갤럭시 S3 GPUS3 GPU 성능은성능은 ?? • 1010 년전 발표된 데스크탑 비디오카드 정도의 수준년전 발표된 데스크탑 비디오카드 정도의 수준 .... 리니지 2 – 캐릭터 버텍스 1500~2000 개정도 , 캐릭터 텍스쳐 256 , 배경 텍스쳐 128 이 하 릴온라인 – 캐릭터 버텍스 1000~1200 개정 도 , 캐릭터 텍스쳐 256 , 배경 텍스쳐 128 이하
  • 26. 갤럭시갤럭시 S3S3 를 최저로 삼고 있는를 최저로 삼고 있는 ARTART 규약규약 -- 캐릭터 버텍스캐릭터 버텍스 30003000 -- 캐릭터 텍스쳐캐릭터 텍스쳐 512512 -- 배경배경 10241024 통맵통맵 , 256, 256 타일맵타일맵 -- 다양한 후처리 적용다양한 후처리 적용 -- 후처리나 그림자 같은 비싼 기술은 고사양후처리나 그림자 같은 비싼 기술은 고사양 에서만 나오도록 처리에서만 나오도록 처리 (S5(S5 이상이상 )) 최적화 기술 발달로 같은 GPU 성능에 서 더 많은 효과를 줄 수 있게 됐음 .. 하지만 태생적 한계 는 어쩔수 없음 .. <- Low 퀄리티 (S3 기반 ) High 퀄리티 (S6 기반 ) ->
  • 27. 모바일 게임의 필수 – 퀄리티 셋팅모바일 게임의 필수 – 퀄리티 셋팅 • 기기 사양별로 퀄리티를 나눠 고사양에서는 멋지게 나오도록 하고 저사양에서는 프기기 사양별로 퀄리티를 나눠 고사양에서는 멋지게 나오도록 하고 저사양에서는 프 레임이 떨어지지 않도록 퀄리티를 낮추는 방식레임이 떨어지지 않도록 퀄리티를 낮추는 방식 • 최근 출시한최근 출시한 HIT,HIT, 레이븐 등 대부분의 게임에 적용되어 있음레이븐 등 대부분의 게임에 적용되어 있음 • 영군에도 적용하려고 했으나 해외 버전 용량 이슈로 최저사양으로만 출시됨영군에도 적용하려고 했으나 해외 버전 용량 이슈로 최저사양으로만 출시됨 • KCKC 와와 ARTART 에서는 현재 일부 도입되어 있고 일괄 적용 예정에서는 현재 일부 도입되어 있고 일괄 적용 예정
  • 28.
  • 29.
  • 30.
  • 31. 셰이더셰이더 LODLOD 적극 활용적극 활용 • 기종별로 후처리 제어기종별로 후처리 제어 (( 예예 :: 림라이트림라이트 ,, 스스 펙큘러펙큘러 ,, 버텍스 애니등등버텍스 애니등등 ..)..) • KCKC 같은 경우 캐릭터의 림라이트 유무같은 경우 캐릭터의 림라이트 유무 ,, 물 셰이더의 파도와 퀄리티 유무물 셰이더의 파도와 퀄리티 유무 • 셰이더 코드에셰이더 코드에 600/400/200600/400/200 순으로 코순으로 코 드를 추가하여 등급별로 셰이더가 출력드를 추가하여 등급별로 셰이더가 출력 되도록 셋팅되도록 셋팅 --- pow, exp, log, cos, sin, tan 같은 수학 함수들은 고비 용이다 .
  • 33. 곱하기보다 나누기가 10 배 무겁다 나누기보다 삼각함수가 10 배 무겁다
  • 34. 모바일에서모바일에서 PBR(PBR( 물리기반셰이더물리기반셰이더 )) 이 가능할까이 가능할까 ?? • 라이트맵이나 라이트프로브 베라이트맵이나 라이트프로브 베 이킹을 활용하여 비슷하게 따라이킹을 활용하여 비슷하게 따라 하는 것은 가능하지만 실시간하는 것은 가능하지만 실시간 연산은 아직까지는 불가능하다연산은 아직까지는 불가능하다 .. - 프레넬 법칙 사용 - 미세 표면 거칠기 공식 사용 - IBL 라이트 사용 ( 브이레이같은 ..) - 디퍼드 렌디렁 기반 - Oren Nayar 조명 모델 사용 - 링크
  • 35. 그 외에 최적화할 수 있는 요소들그 외에 최적화할 수 있는 요소들 • 스켈레톤 메쉬의 본 영향 개수 변화스켈레톤 메쉬의 본 영향 개수 변화 • 화면에 뿌려지는 이펙트 개수 제한화면에 뿌려지는 이펙트 개수 제한 • 모델링모델링 LOD ->LOD -> 메모리 이슈가 있어 모바일에서는 비효율적메모리 이슈가 있어 모바일에서는 비효율적 • 스크립트 최적화스크립트 최적화 • 가비지 컬렉터 제어가비지 컬렉터 제어 • 사운드 최적화사운드 최적화 • 폰트 리소스 최적화폰트 리소스 최적화 • 문서 참조문서 참조