SlideShare a Scribd company logo
최적화 / 가속화
   렌더링이란 무엇인가?

   그래픽 카드에서 렌더링이
    되는 과정에 대해 배워 보자

                       Render
   과정을 외울 것 까지는 없고,
    용어와 과정, 개념을        미국·영국 [|rendə(r)]
    이해하도록 하자
                       1. (어떤 상태가 되게) 만들다

   아, 용어는 외워야지.       출처: 네이버 어학사전
    용어는 유용하다.
   렌더링 파이프라인 / 아키텍쳐
   정점 데이터 / 삼각형 분할
   변환 (Transform)
     Local
     World
       Camera
       Projection (투영)
   변환 (Transform)
       Local
       World
     Camera
     Projection (투영)




                        + 추가적인 Vertex shader연산 가능
   렌더링 파이프라인
Clipping   Back face Culling   Rasterizing
   렌더링 파이프라인
http://game.dongguk.ac.kr/new/members/cke/class/2006-2/cgp/Part2_chap8.pdf
   렌더링 파이프라인
   최적화란? : 쓸데없는 낭비를 줄인다
   최적화의 방법은?
   최적화를 하면 좋은 점과 나쁜 점은?
http://www.alexrruiz.com/                             http://hydramist.net/blog/hardware-old-and-new/




                                                                   http://www.diytrade.com/china/4/products/2877282/graphic_card.html




http://blog.naver.com/xmgortk66/110017163160
                                                           http://www.myce.com/news/hdd-evolution-may-force-windows-xp-retirement-27042/
   CPU          GPU
   GPU       Graphic Card

                             B
                Memory

   물리 메모리
   그래픽 메모리                  U
    하드 디스크
                 CPU         S




   BUS       Memory
   병목 현상
              Hard Disk
   http://developer.nvidia.com/docs/IO/8230/BatchBatchBatch.pdf




   타겟 하드웨어 결정
   게임 특징을 고려한 공간관리 기법 결정
   파트별 오브젝트/폴리곤/용량 배분
   파트별 사용량을 즉각 카운팅 가능하게 해주는 도구 제작 후 배포
   이 모든 것들을 프로그램&3D 디자이너들에게 스파르타 교육
   http://grayogre.egloos.com/
   그래픽이 할 수 있는 일반적인 최적화
    : 줄여라 줄여라 줄여라

       DP Call 을 줄여라!!!
         = DrawPrimitive( ) / 드로우 콜 ?
         오브젝트 개수를 줄여라
         텍스쳐 개수를 줄이거나 합쳐라
       텍스쳐 사이즈를 줄여라
       Bone을 줄여라
       폴리곤을 줄여라
   가속화란? : 더욱 빨리 돌아가게 만든다.
   가속화의 방법은?
   가속화를 하면 좋은 점과 나쁜 점은?
 LOD   / 빌보드
   공간 자료 구조
   선별 기법
   LOD (Level of Detail)
     오브젝트 LOD
     Bone LOD
     Shader LOD
     Static LOD / 지형 LOD
     Update LOD


   빌보드 (Billboard)
       (굳이 따지자면) 가속화 기법은 아님
     LOD (Level of Detail)
           오브젝트 LOD




http://www.opensg.org/wiki/Tutorial/OpenSG2/NodeCores
   LOD (Level of Detail)
       오브젝트 LOD




                http://blenderartists.org/forum/showthread.php?t=117868
   가속화 기법
       LOD (Level of Detail)
         오브젝트 LOD
   LOD (Level of Detail)
       Bone LOD




            http://udn.epicgames.com/Three/CreatingAnimations.html
   LOD (Level of Detail)
       Bone LOD
   LOD (Level of Detail)
       Shader LOD




            적절한 예는 아니지만…
   LOD (Level of Detail)
       Shader LOD




                            http://artmouse.egloos.com/3642745#
   LOD (Level of Detail)
       Static LOD / 지형 LOD
   LOD (Level of Detail)
       Update LOD
         업데이트를 하지 않음.
         프레임을 저하시키는 느낌
   빌보드 (Billboard)
       엄밀히 따져서 가속화 기법은 아님
   빌보드 (Billboard)
                  엄밀히 따져서 가속화 기법은 아님




http://www.cgarchitect.com/news/Reviews/Review011_1.asp
    빌보드 (Billboard)
                    가속화 기법으로 사용될 수도 있음




http://vegetation.icandy.dk/
   빌보드 (Billboard)
                  가속화 기법은 아님




http://ps3media.ign.com/ps3/image/article/614/614786/vision-gran-turismo-20050516072907456.jpg
   빌보드 (Billboard)
                   가속화 기법은 아님




http://systemlink.gamersguidetolife.com/2010/09/loch-ness-monster-invades-gran-turismo.html
    빌보드 (Billboard)
                          가속화 기법은 아님




http://www.ingame.de/files/2010/08/gran-turismo-5-rome-6.jpg
    빌보드 (Billboard)
        가속화 기법은 아님




http://www.ingame.de/files/2010/08/gran-turismo-5-rome-6.jpg
   LOD / 빌보드

 공간     자료 구조
   선별 기법
   공간 자료 구조

       BVH (바운딩 볼륨 계층구조 : Bounding Volume
        Hierarchies)
         바운딩 박스

       BSP Tree (이진 공간 분할 처리: Binary space
        partitioning tree)
         쿼드트리
         옥트리
   BVH (바운딩 볼륨 계층구조 : Bounding Volume
    Hierarchies)
       바운딩 박스
            마우스 피킹
            이동충돌
            카메라 충돌
            렌더링
   BVH (바운딩 볼륨 계층구조 : Bounding Volume
    Hierarchies)
     바운딩 박스
        마우스 피킹
        이동충돌
        카메라 충돌
        렌더링
   BSP Tree (이진 공간 분할 처리: Binary space
    partitioning tree)
       쿼드트리
       옥트리
   BSP Tree (이진 공간 분할 처리: Binary space
    partitioning tree)
       쿼드트리
       옥트리
   LOD / 빌보드
   공간 자료 구조

 선별     기법
   선별 기법
       Culling
         Frustum Culling (시각 절두체)
         Backface Culling (후면)
         Occlusion Culling (차폐)
         Hierarchical View Frustum Culling (계층)
         Potal


       Clipping
   Culling
       Frustum Culling (시각 절두체)
       Backface Culling (후면)
       Occlusion Culling (차폐)




        http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi?coll=0650&db=bks&fname=/SGI_Developer/Optimizer_PG/ch05.html
          Culling
                                 Frustum Culling (시각 절두체)
                                 Backface Culling (후면)
                                 Occlusion Culling (차폐)




http://vr.kaist.ac.kr/_r011.htm
   Culling
     Frustum Culling
      (시각 절두체)
     Backface Culling
      (후면)
     Occlusion Culling
      (차폐)
     Hierarchical View
      Frustum Culling
      (계층)
     Potal
   Clipping
       진짜로 자른다!

More Related Content

What's hot

스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
포프 김
 
Unity3D로 풀3D web mmorpg 만들기
Unity3D로 풀3D web mmorpg 만들기Unity3D로 풀3D web mmorpg 만들기
Unity3D로 풀3D web mmorpg 만들기JP Jung
 
[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shading[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shadingMinGeun Park
 
[1023 박민수] 깊이_버퍼_그림자_1
[1023 박민수] 깊이_버퍼_그림자_1[1023 박민수] 깊이_버퍼_그림자_1
[1023 박민수] 깊이_버퍼_그림자_1MoonLightMS
 
게임 개발을 위한 렌더링 기법 한성환
게임 개발을 위한 렌더링 기법   한성환게임 개발을 위한 렌더링 기법   한성환
게임 개발을 위한 렌더링 기법 한성환Yggdrasil610
 
유니티 게임 그래픽스 아트 개발 사례 분석
유니티 게임 그래픽스 아트 개발 사례 분석유니티 게임 그래픽스 아트 개발 사례 분석
유니티 게임 그래픽스 아트 개발 사례 분석
SangYun Yi
 
2018.12.22 깊이 버퍼 그림자 매핑
2018.12.22 깊이 버퍼 그림자 매핑2018.12.22 깊이 버퍼 그림자 매핑
2018.12.22 깊이 버퍼 그림자 매핑
Sukwoo Lee
 
[1023 박민수] 깊이_버퍼_그림자
[1023 박민수] 깊이_버퍼_그림자[1023 박민수] 깊이_버퍼_그림자
[1023 박민수] 깊이_버퍼_그림자
MoonLightMS
 
Game Visual Art Technologies
Game Visual Art TechnologiesGame Visual Art Technologies
Game Visual Art Technologies
SangYun Yi
 
[0107 박민근] 쉽게 배우는 hdr과 톤맵핑
[0107 박민근] 쉽게 배우는 hdr과 톤맵핑[0107 박민근] 쉽게 배우는 hdr과 톤맵핑
[0107 박민근] 쉽게 배우는 hdr과 톤맵핑MinGeun Park
 
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
SangYun Yi
 
Brdf기반 사전정의 스킨 셰이더
Brdf기반 사전정의 스킨 셰이더Brdf기반 사전정의 스킨 셰이더
Brdf기반 사전정의 스킨 셰이더동석 김
 
Gametech2015
Gametech2015Gametech2015
Gametech2015
SangYun Yi
 
후처리알아보기
후처리알아보기후처리알아보기
후처리알아보기종규 우
 
Shadow mapping 정리
Shadow mapping 정리Shadow mapping 정리
Shadow mapping 정리
changehee lee
 
Devtree illu
Devtree illuDevtree illu
Devtree illu
SangYun Yi
 
Motion blur
Motion blurMotion blur
Motion blur
changehee lee
 
스키닝 애니메이션
스키닝 애니메이션스키닝 애니메이션
스키닝 애니메이션
sung suk seo
 

What's hot (19)

스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
 
Unity3D로 풀3D web mmorpg 만들기
Unity3D로 풀3D web mmorpg 만들기Unity3D로 풀3D web mmorpg 만들기
Unity3D로 풀3D web mmorpg 만들기
 
[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shading[Ndc11 박민근] deferred shading
[Ndc11 박민근] deferred shading
 
[1023 박민수] 깊이_버퍼_그림자_1
[1023 박민수] 깊이_버퍼_그림자_1[1023 박민수] 깊이_버퍼_그림자_1
[1023 박민수] 깊이_버퍼_그림자_1
 
게임 개발을 위한 렌더링 기법 한성환
게임 개발을 위한 렌더링 기법   한성환게임 개발을 위한 렌더링 기법   한성환
게임 개발을 위한 렌더링 기법 한성환
 
유니티 게임 그래픽스 아트 개발 사례 분석
유니티 게임 그래픽스 아트 개발 사례 분석유니티 게임 그래픽스 아트 개발 사례 분석
유니티 게임 그래픽스 아트 개발 사례 분석
 
2018.12.22 깊이 버퍼 그림자 매핑
2018.12.22 깊이 버퍼 그림자 매핑2018.12.22 깊이 버퍼 그림자 매핑
2018.12.22 깊이 버퍼 그림자 매핑
 
[1023 박민수] 깊이_버퍼_그림자
[1023 박민수] 깊이_버퍼_그림자[1023 박민수] 깊이_버퍼_그림자
[1023 박민수] 깊이_버퍼_그림자
 
Game Visual Art Technologies
Game Visual Art TechnologiesGame Visual Art Technologies
Game Visual Art Technologies
 
[0107 박민근] 쉽게 배우는 hdr과 톤맵핑
[0107 박민근] 쉽게 배우는 hdr과 톤맵핑[0107 박민근] 쉽게 배우는 hdr과 톤맵핑
[0107 박민근] 쉽게 배우는 hdr과 톤맵핑
 
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
 
Brdf기반 사전정의 스킨 셰이더
Brdf기반 사전정의 스킨 셰이더Brdf기반 사전정의 스킨 셰이더
Brdf기반 사전정의 스킨 셰이더
 
그림자 이야기
그림자 이야기그림자 이야기
그림자 이야기
 
Gametech2015
Gametech2015Gametech2015
Gametech2015
 
후처리알아보기
후처리알아보기후처리알아보기
후처리알아보기
 
Shadow mapping 정리
Shadow mapping 정리Shadow mapping 정리
Shadow mapping 정리
 
Devtree illu
Devtree illuDevtree illu
Devtree illu
 
Motion blur
Motion blurMotion blur
Motion blur
 
스키닝 애니메이션
스키닝 애니메이션스키닝 애니메이션
스키닝 애니메이션
 

Viewers also liked

[박민근] 3 d렌더링 옵티마이징_5 최적화 전략
[박민근] 3 d렌더링 옵티마이징_5 최적화 전략[박민근] 3 d렌더링 옵티마이징_5 최적화 전략
[박민근] 3 d렌더링 옵티마이징_5 최적화 전략MinGeun Park
 
게임수학 강의노트 1부
게임수학 강의노트 1부게임수학 강의노트 1부
게임수학 강의노트 1부
Young-Min kang
 
물리기반 모델링 기초 - 강의노트
물리기반 모델링 기초 - 강의노트물리기반 모델링 기초 - 강의노트
물리기반 모델링 기초 - 강의노트
Young-Min kang
 
Ndc12 이창희 render_pipeline
Ndc12 이창희 render_pipelineNdc12 이창희 render_pipeline
Ndc12 이창희 render_pipeline
changehee lee
 
Algorithms summary korean
Algorithms summary koreanAlgorithms summary korean
Algorithms summary korean
Young-Min kang
 
[IGC 2016] 액션스퀘어 문의주 - 언리얼4 아티스트를 위한 실용적인 PBR 가이드
[IGC 2016] 액션스퀘어 문의주 - 언리얼4 아티스트를 위한 실용적인 PBR 가이드[IGC 2016] 액션스퀘어 문의주 - 언리얼4 아티스트를 위한 실용적인 PBR 가이드
[IGC 2016] 액션스퀘어 문의주 - 언리얼4 아티스트를 위한 실용적인 PBR 가이드
강 민우
 
[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기
[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기
[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기
강 민우
 
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다 공개용
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다  공개용물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다  공개용
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다 공개용
JP Jung
 

Viewers also liked (8)

[박민근] 3 d렌더링 옵티마이징_5 최적화 전략
[박민근] 3 d렌더링 옵티마이징_5 최적화 전략[박민근] 3 d렌더링 옵티마이징_5 최적화 전략
[박민근] 3 d렌더링 옵티마이징_5 최적화 전략
 
게임수학 강의노트 1부
게임수학 강의노트 1부게임수학 강의노트 1부
게임수학 강의노트 1부
 
물리기반 모델링 기초 - 강의노트
물리기반 모델링 기초 - 강의노트물리기반 모델링 기초 - 강의노트
물리기반 모델링 기초 - 강의노트
 
Ndc12 이창희 render_pipeline
Ndc12 이창희 render_pipelineNdc12 이창희 render_pipeline
Ndc12 이창희 render_pipeline
 
Algorithms summary korean
Algorithms summary koreanAlgorithms summary korean
Algorithms summary korean
 
[IGC 2016] 액션스퀘어 문의주 - 언리얼4 아티스트를 위한 실용적인 PBR 가이드
[IGC 2016] 액션스퀘어 문의주 - 언리얼4 아티스트를 위한 실용적인 PBR 가이드[IGC 2016] 액션스퀘어 문의주 - 언리얼4 아티스트를 위한 실용적인 PBR 가이드
[IGC 2016] 액션스퀘어 문의주 - 언리얼4 아티스트를 위한 실용적인 PBR 가이드
 
[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기
[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기
[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기
 
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다 공개용
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다  공개용물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다  공개용
물리 기반 셰이더의 허와 실:물리기반 셰이더를 가르쳐 봤습니다 공개용
 

Similar to 10강최적화 가속화

프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
YEONG-CHEON YOU
 
모바일 앱 성능 분석 방법 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
 
[0326 박민근] deferred shading
[0326 박민근] deferred shading[0326 박민근] deferred shading
[0326 박민근] deferred shadingMinGeun Park
 
프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기
Chang W. Doh
 
전형규, Vertex Post-Processing Framework, NDC2011
전형규, Vertex Post-Processing Framework, NDC2011전형규, Vertex Post-Processing Framework, NDC2011
전형규, Vertex Post-Processing Framework, NDC2011devCAT Studio, NEXON
 
NDC2015 유니티 정적 라이팅 이게 최선인가요
NDC2015 유니티 정적 라이팅 이게 최선인가요  NDC2015 유니티 정적 라이팅 이게 최선인가요
NDC2015 유니티 정적 라이팅 이게 최선인가요
Wuwon Yu
 
Android 성능 지표와 Oreo 의 개선사항
Android 성능 지표와  Oreo 의 개선사항 Android 성능 지표와  Oreo 의 개선사항
Android 성능 지표와 Oreo 의 개선사항
YoungSu Son
 
MGS 툴세미나
MGS 툴세미나MGS 툴세미나
MGS 툴세미나
Bonex Gu
 
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기
Chang W. Doh
 
안드로이드 Oreo의 변화와 모바일 앱/플랫폼의 적합한 성능 측정 방법
안드로이드 Oreo의 변화와  모바일 앱/플랫폼의 적합한 성능 측정 방법안드로이드 Oreo의 변화와  모바일 앱/플랫폼의 적합한 성능 측정 방법
안드로이드 Oreo의 변화와 모바일 앱/플랫폼의 적합한 성능 측정 방법
YoungSu Son
 
빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술
YEONG-CHEON YOU
 
모바일 게임 최적화
모바일 게임 최적화 모바일 게임 최적화
모바일 게임 최적화
tartist
 
리소스 중심의 서든어택2 실시간 메모리 프로파일링 시스템 개발기
리소스 중심의 서든어택2 실시간 메모리 프로파일링 시스템 개발기리소스 중심의 서든어택2 실시간 메모리 프로파일링 시스템 개발기
리소스 중심의 서든어택2 실시간 메모리 프로파일링 시스템 개발기
Wonha Ryu
 
아두이노와 Fpga를 이용한 로봇제작
아두이노와 Fpga를 이용한 로봇제작아두이노와 Fpga를 이용한 로봇제작
아두이노와 Fpga를 이용한 로봇제작
chcbaram
 
20140514 team blender_v01 (Korean)
20140514 team blender_v01 (Korean)20140514 team blender_v01 (Korean)
20140514 team blender_v01 (Korean)
Dongho Kim
 
Python과 Tensorflow를 활용한 AI Chatbot 개발 및 실무 적용
Python과 Tensorflow를 활용한  AI Chatbot 개발 및 실무 적용Python과 Tensorflow를 활용한  AI Chatbot 개발 및 실무 적용
Python과 Tensorflow를 활용한 AI Chatbot 개발 및 실무 적용
Susang Kim
 
Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)
Minsu Park
 
Vid2vid
Vid2vidVid2vid
Vid2vid
seop kim
 
[NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가
[NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가[NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가
[NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가
Hwanhee Kim
 

Similar to 10강최적화 가속화 (20)

프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
 
모바일 앱 성능 분석 방법 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)
 
[0326 박민근] deferred shading
[0326 박민근] deferred shading[0326 박민근] deferred shading
[0326 박민근] deferred shading
 
프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기
 
전형규, Vertex Post-Processing Framework, NDC2011
전형규, Vertex Post-Processing Framework, NDC2011전형규, Vertex Post-Processing Framework, NDC2011
전형규, Vertex Post-Processing Framework, NDC2011
 
NDC2015 유니티 정적 라이팅 이게 최선인가요
NDC2015 유니티 정적 라이팅 이게 최선인가요  NDC2015 유니티 정적 라이팅 이게 최선인가요
NDC2015 유니티 정적 라이팅 이게 최선인가요
 
Android 성능 지표와 Oreo 의 개선사항
Android 성능 지표와  Oreo 의 개선사항 Android 성능 지표와  Oreo 의 개선사항
Android 성능 지표와 Oreo 의 개선사항
 
MGS 툴세미나
MGS 툴세미나MGS 툴세미나
MGS 툴세미나
 
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기
 
안드로이드 Oreo의 변화와 모바일 앱/플랫폼의 적합한 성능 측정 방법
안드로이드 Oreo의 변화와  모바일 앱/플랫폼의 적합한 성능 측정 방법안드로이드 Oreo의 변화와  모바일 앱/플랫폼의 적합한 성능 측정 방법
안드로이드 Oreo의 변화와 모바일 앱/플랫폼의 적합한 성능 측정 방법
 
빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술
 
모바일 게임 최적화
모바일 게임 최적화 모바일 게임 최적화
모바일 게임 최적화
 
리소스 중심의 서든어택2 실시간 메모리 프로파일링 시스템 개발기
리소스 중심의 서든어택2 실시간 메모리 프로파일링 시스템 개발기리소스 중심의 서든어택2 실시간 메모리 프로파일링 시스템 개발기
리소스 중심의 서든어택2 실시간 메모리 프로파일링 시스템 개발기
 
아두이노와 Fpga를 이용한 로봇제작
아두이노와 Fpga를 이용한 로봇제작아두이노와 Fpga를 이용한 로봇제작
아두이노와 Fpga를 이용한 로봇제작
 
20140514 team blender_v01 (Korean)
20140514 team blender_v01 (Korean)20140514 team blender_v01 (Korean)
20140514 team blender_v01 (Korean)
 
Python과 Tensorflow를 활용한 AI Chatbot 개발 및 실무 적용
Python과 Tensorflow를 활용한  AI Chatbot 개발 및 실무 적용Python과 Tensorflow를 활용한  AI Chatbot 개발 및 실무 적용
Python과 Tensorflow를 활용한 AI Chatbot 개발 및 실무 적용
 
Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)
 
Vid2vid
Vid2vidVid2vid
Vid2vid
 
Modern android
Modern androidModern android
Modern android
 
[NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가
[NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가[NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가
[NDC2016] 신경망은컨텐츠자동생성의꿈을꾸는가
 

More from JP Jung

Unite2019 _ 학교에서 배우는 게임개발이란
Unite2019 _ 학교에서 배우는 게임개발이란Unite2019 _ 학교에서 배우는 게임개발이란
Unite2019 _ 학교에서 배우는 게임개발이란
JP Jung
 
감마가 어디감마
감마가 어디감마감마가 어디감마
감마가 어디감마
JP Jung
 
6강 light shadow 기초
6강 light shadow 기초6강 light shadow 기초
6강 light shadow 기초JP Jung
 
5강 알파와알파소팅
5강 알파와알파소팅5강 알파와알파소팅
5강 알파와알파소팅JP Jung
 
4강 shader fx 기초실습_텍스쳐 조작2
4강 shader fx 기초실습_텍스쳐 조작24강 shader fx 기초실습_텍스쳐 조작2
4강 shader fx 기초실습_텍스쳐 조작2JP Jung
 
3강 shader fx 기초실습_텍스쳐 조작
3강 shader fx 기초실습_텍스쳐 조작3강 shader fx 기초실습_텍스쳐 조작
3강 shader fx 기초실습_텍스쳐 조작JP Jung
 
2강 텍스쳐 포맷과 기초 / 오타수정
2강 텍스쳐 포맷과 기초 / 오타수정2강 텍스쳐 포맷과 기초 / 오타수정
2강 텍스쳐 포맷과 기초 / 오타수정JP Jung
 
2강 텍스쳐 포맷과 기초
2강 텍스쳐 포맷과 기초2강 텍스쳐 포맷과 기초
2강 텍스쳐 포맷과 기초JP Jung
 
6강 light shadow 기초
6강 light shadow 기초6강 light shadow 기초
6강 light shadow 기초JP Jung
 
정종필 팀장이됐어요(더저용량)
정종필 팀장이됐어요(더저용량)정종필 팀장이됐어요(더저용량)
정종필 팀장이됐어요(더저용량)JP Jung
 

More from JP Jung (10)

Unite2019 _ 학교에서 배우는 게임개발이란
Unite2019 _ 학교에서 배우는 게임개발이란Unite2019 _ 학교에서 배우는 게임개발이란
Unite2019 _ 학교에서 배우는 게임개발이란
 
감마가 어디감마
감마가 어디감마감마가 어디감마
감마가 어디감마
 
6강 light shadow 기초
6강 light shadow 기초6강 light shadow 기초
6강 light shadow 기초
 
5강 알파와알파소팅
5강 알파와알파소팅5강 알파와알파소팅
5강 알파와알파소팅
 
4강 shader fx 기초실습_텍스쳐 조작2
4강 shader fx 기초실습_텍스쳐 조작24강 shader fx 기초실습_텍스쳐 조작2
4강 shader fx 기초실습_텍스쳐 조작2
 
3강 shader fx 기초실습_텍스쳐 조작
3강 shader fx 기초실습_텍스쳐 조작3강 shader fx 기초실습_텍스쳐 조작
3강 shader fx 기초실습_텍스쳐 조작
 
2강 텍스쳐 포맷과 기초 / 오타수정
2강 텍스쳐 포맷과 기초 / 오타수정2강 텍스쳐 포맷과 기초 / 오타수정
2강 텍스쳐 포맷과 기초 / 오타수정
 
2강 텍스쳐 포맷과 기초
2강 텍스쳐 포맷과 기초2강 텍스쳐 포맷과 기초
2강 텍스쳐 포맷과 기초
 
6강 light shadow 기초
6강 light shadow 기초6강 light shadow 기초
6강 light shadow 기초
 
정종필 팀장이됐어요(더저용량)
정종필 팀장이됐어요(더저용량)정종필 팀장이됐어요(더저용량)
정종필 팀장이됐어요(더저용량)
 

10강최적화 가속화

  • 2. 렌더링이란 무엇인가?  그래픽 카드에서 렌더링이 되는 과정에 대해 배워 보자 Render  과정을 외울 것 까지는 없고, 용어와 과정, 개념을 미국·영국 [|rendə(r)] 이해하도록 하자 1. (어떤 상태가 되게) 만들다  아, 용어는 외워야지. 출처: 네이버 어학사전 용어는 유용하다.
  • 3. 렌더링 파이프라인 / 아키텍쳐
  • 4. 정점 데이터 / 삼각형 분할
  • 5. 변환 (Transform)  Local  World  Camera  Projection (투영)
  • 6. 변환 (Transform)  Local  World  Camera  Projection (투영) + 추가적인 Vertex shader연산 가능
  • 7. 렌더링 파이프라인
  • 8. Clipping Back face Culling Rasterizing
  • 9. 렌더링 파이프라인
  • 10.
  • 12.
  • 13. 렌더링 파이프라인
  • 14.
  • 15. 최적화란? : 쓸데없는 낭비를 줄인다  최적화의 방법은?  최적화를 하면 좋은 점과 나쁜 점은?
  • 16. http://www.alexrruiz.com/ http://hydramist.net/blog/hardware-old-and-new/ http://www.diytrade.com/china/4/products/2877282/graphic_card.html http://blog.naver.com/xmgortk66/110017163160 http://www.myce.com/news/hdd-evolution-may-force-windows-xp-retirement-27042/
  • 17. CPU GPU  GPU Graphic Card B Memory  물리 메모리  그래픽 메모리 U 하드 디스크 CPU S   BUS Memory  병목 현상 Hard Disk
  • 18. http://developer.nvidia.com/docs/IO/8230/BatchBatchBatch.pdf  타겟 하드웨어 결정  게임 특징을 고려한 공간관리 기법 결정  파트별 오브젝트/폴리곤/용량 배분  파트별 사용량을 즉각 카운팅 가능하게 해주는 도구 제작 후 배포  이 모든 것들을 프로그램&3D 디자이너들에게 스파르타 교육  http://grayogre.egloos.com/
  • 19. 그래픽이 할 수 있는 일반적인 최적화 : 줄여라 줄여라 줄여라  DP Call 을 줄여라!!!  = DrawPrimitive( ) / 드로우 콜 ?  오브젝트 개수를 줄여라  텍스쳐 개수를 줄이거나 합쳐라  텍스쳐 사이즈를 줄여라  Bone을 줄여라  폴리곤을 줄여라
  • 20.
  • 21. 가속화란? : 더욱 빨리 돌아가게 만든다.  가속화의 방법은?  가속화를 하면 좋은 점과 나쁜 점은?
  • 22.  LOD / 빌보드  공간 자료 구조  선별 기법
  • 23. LOD (Level of Detail)  오브젝트 LOD  Bone LOD  Shader LOD  Static LOD / 지형 LOD  Update LOD  빌보드 (Billboard)  (굳이 따지자면) 가속화 기법은 아님
  • 24. LOD (Level of Detail)  오브젝트 LOD http://www.opensg.org/wiki/Tutorial/OpenSG2/NodeCores
  • 25. LOD (Level of Detail)  오브젝트 LOD http://blenderartists.org/forum/showthread.php?t=117868
  • 26. 가속화 기법  LOD (Level of Detail)  오브젝트 LOD
  • 27. LOD (Level of Detail)  Bone LOD http://udn.epicgames.com/Three/CreatingAnimations.html
  • 28. LOD (Level of Detail)  Bone LOD
  • 29. LOD (Level of Detail)  Shader LOD 적절한 예는 아니지만…
  • 30. LOD (Level of Detail)  Shader LOD http://artmouse.egloos.com/3642745#
  • 31. LOD (Level of Detail)  Static LOD / 지형 LOD
  • 32. LOD (Level of Detail)  Update LOD  업데이트를 하지 않음.  프레임을 저하시키는 느낌
  • 33. 빌보드 (Billboard)  엄밀히 따져서 가속화 기법은 아님
  • 34. 빌보드 (Billboard)  엄밀히 따져서 가속화 기법은 아님 http://www.cgarchitect.com/news/Reviews/Review011_1.asp
  • 35. 빌보드 (Billboard)  가속화 기법으로 사용될 수도 있음 http://vegetation.icandy.dk/
  • 36. 빌보드 (Billboard)  가속화 기법은 아님 http://ps3media.ign.com/ps3/image/article/614/614786/vision-gran-turismo-20050516072907456.jpg
  • 37. 빌보드 (Billboard)  가속화 기법은 아님 http://systemlink.gamersguidetolife.com/2010/09/loch-ness-monster-invades-gran-turismo.html
  • 38. 빌보드 (Billboard)  가속화 기법은 아님 http://www.ingame.de/files/2010/08/gran-turismo-5-rome-6.jpg
  • 39. 빌보드 (Billboard)  가속화 기법은 아님 http://www.ingame.de/files/2010/08/gran-turismo-5-rome-6.jpg
  • 40. LOD / 빌보드  공간 자료 구조  선별 기법
  • 41. 공간 자료 구조  BVH (바운딩 볼륨 계층구조 : Bounding Volume Hierarchies)  바운딩 박스  BSP Tree (이진 공간 분할 처리: Binary space partitioning tree)  쿼드트리  옥트리
  • 42. BVH (바운딩 볼륨 계층구조 : Bounding Volume Hierarchies)  바운딩 박스  마우스 피킹  이동충돌  카메라 충돌  렌더링
  • 43. BVH (바운딩 볼륨 계층구조 : Bounding Volume Hierarchies)  바운딩 박스  마우스 피킹  이동충돌  카메라 충돌  렌더링
  • 44. BSP Tree (이진 공간 분할 처리: Binary space partitioning tree)  쿼드트리  옥트리
  • 45. BSP Tree (이진 공간 분할 처리: Binary space partitioning tree)  쿼드트리  옥트리
  • 46. LOD / 빌보드  공간 자료 구조  선별 기법
  • 47. 선별 기법  Culling  Frustum Culling (시각 절두체)  Backface Culling (후면)  Occlusion Culling (차폐)  Hierarchical View Frustum Culling (계층)  Potal  Clipping
  • 48. Culling  Frustum Culling (시각 절두체)  Backface Culling (후면)  Occlusion Culling (차폐) http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi?coll=0650&db=bks&fname=/SGI_Developer/Optimizer_PG/ch05.html
  • 49. Culling  Frustum Culling (시각 절두체)  Backface Culling (후면)  Occlusion Culling (차폐) http://vr.kaist.ac.kr/_r011.htm
  • 50. Culling  Frustum Culling (시각 절두체)  Backface Culling (후면)  Occlusion Culling (차폐)  Hierarchical View Frustum Culling (계층)  Potal
  • 51. Clipping  진짜로 자른다!