SlideShare una empresa de Scribd logo
1 de 20
3D RENDERING
OPTIMIZING #4
- 박 민 근 (민군)
DEVROOKIE(CAFÉ.NAVER.COM/DEVROOKIE)
                                      DevRookie 박민근(민군)   1
Imposter
사기꾼, 다른 사람의 행세를 하는 사람




                        DevRookie 박민근(민군)   2
Simple is Best!
가장 적은 수의 폴리곤을 그리는 것이
가장 빠르다.




                       DevRookie 박민근(민군)   3
3D 모델 -> 2D 빌보드
-퀄리티를 떨어트리지 않는 LOD
비용↓ 성능↑




                     실제 모델                  임포스터




                        DevRookie 박민근(민군)          4
임포스터 적용전




           DevRookie 박민근(민군)   5
임포스터 적용후




           DevRookie 박민근(민군)   6
모델을 렌러 타겟에 렌더링




   빌보드 생성




빌보드에 렌러 타겟을 맵핑




빌보드를 백버퍼에 렌더링




   임포스터 갱신
        DevRookie 박민근(민군)   7
트럭으로부터 생성된 임포스터.
녹색라인은 임포스터를 생성하는 데 사용되는 카메라 위치로 모은다.




  임포스터 빌보드에 투영되는 3D 오브젝트

                                           텍스처에 렌더링된 4개의 3D 오브젝트 이미지

                                       DevRookie 박민근(민군)               8
Alpha Blending
    ONE : INVSRCALPHA




                        일반 Mesh는
                        SRCALPHA : INVSRCALPHA

                        임포스터 빌보드는
                        이미 알파가 계산되어 있기 때문에
                        ONE : INVSRCALPHA

                        DevRookie 박민근(민군)        9
거리 (해상도)
                            카메라 앵글
Regenarate                  조명, 애니메이션 변화
   임포스터 갱신                  시간




             DevRookie 박민근(민군)             10
2D Imposter or 3D Imposter




     < 2D 빌보드의 문제점 >         < 바운딩 박스를 이용한 3D 임포스터>
                         DevRookie 박민근(민군)            11
Instancing
  모아찍기




                  배치는 크게, 렌더링은 적게




             DevRookie 박민근(민군)      12
렌더링
                                파이프라인

오브젝트 A   오버헤드
오브젝트 B




                                     렌더링
                                    파이프라인




                DevRookie 박민근(민군)           13
DevRookie 박민근(민군)   14
인스턴싱 적용 후




            DevRookie 박민근(민군)   15
캐시 미스
 RenderState

               하나의 버텍스
   Texture




               버퍼에 몰아
               넣어, DP Call
                 을 최소화
같은 텍스쳐와 같은
렌더 스테이트를 사용
하는 것들은 단지 위치
 와 회전만 다르다.



               DevRookie 박민근(민군)   16
최적화의 원칙
배치는 크게 DP Call은 작게




                       Reduce!! DP Call
                       Reduce!! Cache Miss.
                       Reduce!! SetRenderState
                       Reduce!! SetTexture


                     DevRookie 박민근(민군)           17
장점.
1. Buffer에 Lock을 걸지 않아도 구현이 가능
2. 빠른 속도를 보장

단점.
1. 쉐이더 상수 개수 제한으로 한꺼번에 수백개 이상은 그리지 못함
2. Skinning Shader등 쉐이더 상수를 많이 사용하는 방법과 병행하기 힘듬
3. DP콜이 Dynamic Buffer에 비해 상대적으로 많음.



                     DevRookie 박민근(민군)       18
Using Dynamic Buffer



      장점.
       1. 버퍼 크기만큼 인스턴싱이 가능하므로 Shader보다 더 많이 가능
       2. 스키닝 애니메이션등, Shader와 연계 되지 않음.
       3, DP콜이 Shader보다 상대적으로 적음

      단점.
       1. Lock을 걸어야 하기 때문에 부하가 상당히 큼.




                         DevRookie 박민근(민군)       19
10. 참고 자료
1. grass engine using instancing - 한글 블로그

2. Instancing.

3. Instancing – KGC 2005 최우영 (지티스 동영상)

4. 리얼타임 렌더링




                                    DevRookie 박민근(민군)   20

Más contenido relacionado

La actualidad más candente

NDC2015 광개토태왕 테크니컬 아트
NDC2015 광개토태왕 테크니컬 아트NDC2015 광개토태왕 테크니컬 아트
NDC2015 광개토태왕 테크니컬 아트
재철 황
 
multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트
multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트
multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트
JP Jung
 
[0107 박민근] 쉽게 배우는 hdr과 톤맵핑
[0107 박민근] 쉽게 배우는 hdr과 톤맵핑[0107 박민근] 쉽게 배우는 hdr과 톤맵핑
[0107 박민근] 쉽게 배우는 hdr과 톤맵핑
MinGeun Park
 
게임 개발을 위한 렌더링 기법 한성환
게임 개발을 위한 렌더링 기법   한성환게임 개발을 위한 렌더링 기법   한성환
게임 개발을 위한 렌더링 기법 한성환
Yggdrasil610
 
Unity3D로 풀3D web mmorpg 만들기
Unity3D로 풀3D web mmorpg 만들기Unity3D로 풀3D web mmorpg 만들기
Unity3D로 풀3D web mmorpg 만들기
JP Jung
 
[0326 박민근] deferred shading
[0326 박민근] deferred shading[0326 박민근] deferred shading
[0326 박민근] deferred shading
MinGeun Park
 
[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근
[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근
[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근
MinGeun Park
 

La actualidad más candente (20)

[Kgc2012] deferred forward 이창희
[Kgc2012] deferred forward 이창희[Kgc2012] deferred forward 이창희
[Kgc2012] deferred forward 이창희
 
Ssao
SsaoSsao
Ssao
 
Modern gpu optimize
Modern gpu optimizeModern gpu optimize
Modern gpu optimize
 
NDC2015 광개토태왕 테크니컬 아트
NDC2015 광개토태왕 테크니컬 아트NDC2015 광개토태왕 테크니컬 아트
NDC2015 광개토태왕 테크니컬 아트
 
Gametech2015
Gametech2015Gametech2015
Gametech2015
 
Kgc2014 jplee allegorithmic
Kgc2014 jplee allegorithmicKgc2014 jplee allegorithmic
Kgc2014 jplee allegorithmic
 
multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트
multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트
multi plaform Full3D MMO 만들기 "삼국지를 품다"의 테크니컬 아트
 
[0107 박민근] 쉽게 배우는 hdr과 톤맵핑
[0107 박민근] 쉽게 배우는 hdr과 톤맵핑[0107 박민근] 쉽게 배우는 hdr과 톤맵핑
[0107 박민근] 쉽게 배우는 hdr과 톤맵핑
 
Game Visual Art Technologies
Game Visual Art TechnologiesGame Visual Art Technologies
Game Visual Art Technologies
 
유니티 게임 그래픽스 아트 개발 사례 분석
유니티 게임 그래픽스 아트 개발 사례 분석유니티 게임 그래픽스 아트 개발 사례 분석
유니티 게임 그래픽스 아트 개발 사례 분석
 
게임 개발을 위한 렌더링 기법 한성환
게임 개발을 위한 렌더링 기법   한성환게임 개발을 위한 렌더링 기법   한성환
게임 개발을 위한 렌더링 기법 한성환
 
09_motionblur
09_motionblur09_motionblur
09_motionblur
 
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
 
Unity3D로 풀3D web mmorpg 만들기
Unity3D로 풀3D web mmorpg 만들기Unity3D로 풀3D web mmorpg 만들기
Unity3D로 풀3D web mmorpg 만들기
 
제노블레이도 2 ray marching을사용한 구름 표현
제노블레이도 2 ray marching을사용한 구름 표현제노블레이도 2 ray marching을사용한 구름 표현
제노블레이도 2 ray marching을사용한 구름 표현
 
[0326 박민근] deferred shading
[0326 박민근] deferred shading[0326 박민근] deferred shading
[0326 박민근] deferred shading
 
Devtree lightmapping unity5_2_1stday
Devtree lightmapping unity5_2_1stdayDevtree lightmapping unity5_2_1stday
Devtree lightmapping unity5_2_1stday
 
Unite2015 probelight(150417)
Unite2015 probelight(150417)Unite2015 probelight(150417)
Unite2015 probelight(150417)
 
Devtree illu
Devtree illuDevtree illu
Devtree illu
 
[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근
[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근
[Ndc12] 누구나 알기쉬운 hdr과 톤맵핑 박민근
 

Destacado

[Pl in c++] 11. chapter
[Pl in c++] 11. chapter[Pl in c++] 11. chapter
[Pl in c++] 11. chapter
MinGeun Park
 
Uncharted3 effect technique
Uncharted3 effect techniqueUncharted3 effect technique
Uncharted3 effect technique
MinGeun Park
 
[Pl in c++] 12. learning
[Pl in c++] 12. learning[Pl in c++] 12. learning
[Pl in c++] 12. learning
MinGeun Park
 
[박민근] 3 d렌더링 옵티마이징_5 최적화 전략
[박민근] 3 d렌더링 옵티마이징_5 최적화 전략[박민근] 3 d렌더링 옵티마이징_5 최적화 전략
[박민근] 3 d렌더링 옵티마이징_5 최적화 전략
MinGeun Park
 
[SCON9] 커뮤니케이션 in Game
[SCON9] 커뮤니케이션 in Game[SCON9] 커뮤니케이션 in Game
[SCON9] 커뮤니케이션 in Game
MinGeun Park
 
5강 알파와알파소팅
5강 알파와알파소팅5강 알파와알파소팅
5강 알파와알파소팅
JP Jung
 
후처리알아보기
후처리알아보기후처리알아보기
후처리알아보기
종규 우
 
4강 shader fx 기초실습_텍스쳐 조작2
4강 shader fx 기초실습_텍스쳐 조작24강 shader fx 기초실습_텍스쳐 조작2
4강 shader fx 기초실습_텍스쳐 조작2
JP Jung
 
쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)
쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)
쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)
Kay Kim
 

Destacado (20)

[Pl in c++] 11. chapter
[Pl in c++] 11. chapter[Pl in c++] 11. chapter
[Pl in c++] 11. chapter
 
[141015] cedec 2014 참관기 & 강연 리뷰 #2
[141015] cedec 2014 참관기 & 강연 리뷰 #2[141015] cedec 2014 참관기 & 강연 리뷰 #2
[141015] cedec 2014 참관기 & 강연 리뷰 #2
 
Uncharted3 effect technique
Uncharted3 effect techniqueUncharted3 effect technique
Uncharted3 effect technique
 
[Pl in c++] 12. learning
[Pl in c++] 12. learning[Pl in c++] 12. learning
[Pl in c++] 12. learning
 
[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1
 
[박민근] 3 d렌더링 옵티마이징_5 최적화 전략
[박민근] 3 d렌더링 옵티마이징_5 최적화 전략[박민근] 3 d렌더링 옵티마이징_5 최적화 전략
[박민근] 3 d렌더링 옵티마이징_5 최적화 전략
 
[SCON9] 커뮤니케이션 in Game
[SCON9] 커뮤니케이션 in Game[SCON9] 커뮤니케이션 in Game
[SCON9] 커뮤니케이션 in Game
 
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
 
5강 알파와알파소팅
5강 알파와알파소팅5강 알파와알파소팅
5강 알파와알파소팅
 
후처리알아보기
후처리알아보기후처리알아보기
후처리알아보기
 
Unite Seoul 2016 - 스매싱 더 배틀의 멀티플랫폼 개발
Unite Seoul 2016 - 스매싱 더 배틀의 멀티플랫폼 개발 Unite Seoul 2016 - 스매싱 더 배틀의 멀티플랫폼 개발
Unite Seoul 2016 - 스매싱 더 배틀의 멀티플랫폼 개발
 
4강 shader fx 기초실습_텍스쳐 조작2
4강 shader fx 기초실습_텍스쳐 조작24강 shader fx 기초실습_텍스쳐 조작2
4강 shader fx 기초실습_텍스쳐 조작2
 
NDC 2012 이은석 - 게임회사 취업특강 (커리어세션)
NDC 2012 이은석 - 게임회사 취업특강 (커리어세션)NDC 2012 이은석 - 게임회사 취업특강 (커리어세션)
NDC 2012 이은석 - 게임회사 취업특강 (커리어세션)
 
[스마트벤처 창업학교] 스타트업 프로젝트를 위한 유니티 게임 개발
[스마트벤처 창업학교] 스타트업 프로젝트를 위한 유니티 게임 개발[스마트벤처 창업학교] 스타트업 프로젝트를 위한 유니티 게임 개발
[스마트벤처 창업학교] 스타트업 프로젝트를 위한 유니티 게임 개발
 
[C++ Korea 2nd Seminar] C++17 Key Features Summary
[C++ Korea 2nd Seminar] C++17 Key Features Summary[C++ Korea 2nd Seminar] C++17 Key Features Summary
[C++ Korea 2nd Seminar] C++17 Key Features Summary
 
NDC 2013 이은석 - 게임 디렉터가 뭐하는 건가요
NDC 2013 이은석 - 게임 디렉터가 뭐하는 건가요NDC 2013 이은석 - 게임 디렉터가 뭐하는 건가요
NDC 2013 이은석 - 게임 디렉터가 뭐하는 건가요
 
[160404] 유니티 apk 용량 줄이기
[160404] 유니티 apk 용량 줄이기[160404] 유니티 apk 용량 줄이기
[160404] 유니티 apk 용량 줄이기
 
[데브루키160409 박민근] UniRx 시작하기
[데브루키160409 박민근] UniRx 시작하기[데브루키160409 박민근] UniRx 시작하기
[데브루키160409 박민근] UniRx 시작하기
 
쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)
쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)
쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)
 
[150523] live2d 그녀들을 움직이게 하는 기술
[150523] live2d 그녀들을 움직이게 하는 기술[150523] live2d 그녀들을 움직이게 하는 기술
[150523] live2d 그녀들을 움직이게 하는 기술
 

Similar a [박민근] 3 d렌더링 옵티마이징_4 임포스터_인스턴싱

[박민근] 3 d렌더링 옵티마이징_2
[박민근] 3 d렌더링 옵티마이징_2[박민근] 3 d렌더링 옵티마이징_2
[박민근] 3 d렌더링 옵티마이징_2
MinGeun Park
 
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
devCAT Studio, NEXON
 
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
devCAT Studio, NEXON
 
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
devCAT Studio, NEXON
 
Hierachical z Map Occlusion Culling
Hierachical z Map Occlusion CullingHierachical z Map Occlusion Culling
Hierachical z Map Occlusion Culling
YEONG-CHEON YOU
 
KGC2010 김주복, 김충효 - M2 프로젝트의 절차적 리깅 시스템
KGC2010   김주복, 김충효 - M2 프로젝트의 절차적 리깅 시스템KGC2010   김주복, 김충효 - M2 프로젝트의 절차적 리깅 시스템
KGC2010 김주복, 김충효 - M2 프로젝트의 절차적 리깅 시스템
Jubok Kim
 
유인호, <드래곤하운드>비주얼이펙트 연출, NDC2019
유인호, <드래곤하운드>비주얼이펙트 연출, NDC2019유인호, <드래곤하운드>비주얼이펙트 연출, NDC2019
유인호, <드래곤하운드>비주얼이펙트 연출, NDC2019
devCAT Studio, NEXON
 
NDC2012 - 완벽한 MMO 클라이언트 설계에의 도전, Part2
NDC2012 - 완벽한 MMO 클라이언트 설계에의 도전, Part2NDC2012 - 완벽한 MMO 클라이언트 설계에의 도전, Part2
NDC2012 - 완벽한 MMO 클라이언트 설계에의 도전, Part2
Jubok Kim
 
Kgc make stereo game on pc
Kgc make stereo game on pcKgc make stereo game on pc
Kgc make stereo game on pc
ozlael ozlael
 

Similar a [박민근] 3 d렌더링 옵티마이징_4 임포스터_인스턴싱 (20)

[박민근] 3 d렌더링 옵티마이징_2
[박민근] 3 d렌더링 옵티마이징_2[박민근] 3 d렌더링 옵티마이징_2
[박민근] 3 d렌더링 옵티마이징_2
 
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
 
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
 
Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)
 
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
 
Codex project
Codex projectCodex project
Codex project
 
gametech 2012 Gladius project
gametech 2012 Gladius projectgametech 2012 Gladius project
gametech 2012 Gladius project
 
리얼타임 환경에서 쉐이더 프로그래밍을 통한 룩디벨롭과 특수효과
리얼타임 환경에서 쉐이더 프로그래밍을 통한 룩디벨롭과 특수효과리얼타임 환경에서 쉐이더 프로그래밍을 통한 룩디벨롭과 특수효과
리얼타임 환경에서 쉐이더 프로그래밍을 통한 룩디벨롭과 특수효과
 
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
 
20140514 team blender_v01 (Korean)
20140514 team blender_v01 (Korean)20140514 team blender_v01 (Korean)
20140514 team blender_v01 (Korean)
 
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
 
Hierachical z Map Occlusion Culling
Hierachical z Map Occlusion CullingHierachical z Map Occlusion Culling
Hierachical z Map Occlusion Culling
 
Ndc2010 김주복, v3. 마비노기2아키텍처리뷰
Ndc2010   김주복, v3. 마비노기2아키텍처리뷰Ndc2010   김주복, v3. 마비노기2아키텍처리뷰
Ndc2010 김주복, v3. 마비노기2아키텍처리뷰
 
KGC2010 김주복, 김충효 - M2 프로젝트의 절차적 리깅 시스템
KGC2010   김주복, 김충효 - M2 프로젝트의 절차적 리깅 시스템KGC2010   김주복, 김충효 - M2 프로젝트의 절차적 리깅 시스템
KGC2010 김주복, 김충효 - M2 프로젝트의 절차적 리깅 시스템
 
유인호, <드래곤하운드>비주얼이펙트 연출, NDC2019
유인호, <드래곤하운드>비주얼이펙트 연출, NDC2019유인호, <드래곤하운드>비주얼이펙트 연출, NDC2019
유인호, <드래곤하운드>비주얼이펙트 연출, NDC2019
 
Kgc2013 defense technica_converting_이상윤
Kgc2013 defense technica_converting_이상윤Kgc2013 defense technica_converting_이상윤
Kgc2013 defense technica_converting_이상윤
 
NDC2012 - 완벽한 MMO 클라이언트 설계에의 도전, Part2
NDC2012 - 완벽한 MMO 클라이언트 설계에의 도전, Part2NDC2012 - 완벽한 MMO 클라이언트 설계에의 도전, Part2
NDC2012 - 완벽한 MMO 클라이언트 설계에의 도전, Part2
 
Kgc make stereo game on pc
Kgc make stereo game on pcKgc make stereo game on pc
Kgc make stereo game on pc
 
공간증강현실을 이용한 곡선의 디자인 (HCI Korea 2013)
공간증강현실을 이용한 곡선의 디자인 (HCI Korea 2013)공간증강현실을 이용한 곡선의 디자인 (HCI Korea 2013)
공간증강현실을 이용한 곡선의 디자인 (HCI Korea 2013)
 
NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기
NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기
NDC2018 안드로이드+유니티 네이티브 프로파일링 삽질기
 

Más de MinGeun Park

Más de MinGeun Park (20)

[CSStudy] 코딩인터뷰 완전 분석 #7.pdf
[CSStudy] 코딩인터뷰 완전 분석 #7.pdf[CSStudy] 코딩인터뷰 완전 분석 #7.pdf
[CSStudy] 코딩인터뷰 완전 분석 #7.pdf
 
[Cs study] 코딩인터뷰 완전 분석 #6
[Cs study] 코딩인터뷰 완전 분석 #6[Cs study] 코딩인터뷰 완전 분석 #6
[Cs study] 코딩인터뷰 완전 분석 #6
 
[Cs study] 코딩인터뷰 완전 분석 #5
[Cs study] 코딩인터뷰 완전 분석 #5[Cs study] 코딩인터뷰 완전 분석 #5
[Cs study] 코딩인터뷰 완전 분석 #5
 
[Cs study] 코딩인터뷰 완전 분석 #3
[Cs study] 코딩인터뷰 완전 분석 #3[Cs study] 코딩인터뷰 완전 분석 #3
[Cs study] 코딩인터뷰 완전 분석 #3
 
[Cs study] 코딩인터뷰 완전 분석 #2
[Cs study] 코딩인터뷰 완전 분석 #2[Cs study] 코딩인터뷰 완전 분석 #2
[Cs study] 코딩인터뷰 완전 분석 #2
 
[Cs study] 코딩인터뷰 완전 분석
[Cs study] 코딩인터뷰 완전 분석[Cs study] 코딩인터뷰 완전 분석
[Cs study] 코딩인터뷰 완전 분석
 
[데브루키_언리얼스터디_0525] 애니메이션 노티파이
[데브루키_언리얼스터디_0525] 애니메이션 노티파이[데브루키_언리얼스터디_0525] 애니메이션 노티파이
[데브루키_언리얼스터디_0525] 애니메이션 노티파이
 
[데브루키] 이벤트 드리븐 아키텍쳐
[데브루키] 이벤트 드리븐 아키텍쳐[데브루키] 이벤트 드리븐 아키텍쳐
[데브루키] 이벤트 드리븐 아키텍쳐
 
[데브루키 언리얼 스터디] PBR
[데브루키 언리얼 스터디] PBR[데브루키 언리얼 스터디] PBR
[데브루키 언리얼 스터디] PBR
 
[데브루키 언리얼 스터디] 스터디 안내 OT
[데브루키 언리얼 스터디] 스터디 안내 OT[데브루키 언리얼 스터디] 스터디 안내 OT
[데브루키 언리얼 스터디] 스터디 안내 OT
 
[데브루키/페차쿠차] 유니티 프로파일링에 대해서 알아보자.
[데브루키/페차쿠차] 유니티 프로파일링에 대해서 알아보자.[데브루키/페차쿠차] 유니티 프로파일링에 대해서 알아보자.
[데브루키/페차쿠차] 유니티 프로파일링에 대해서 알아보자.
 
[데브루키] Color space gamma correction
[데브루키] Color space gamma correction[데브루키] Color space gamma correction
[데브루키] Color space gamma correction
 
유니티 팁&트릭 Unity Tip & Trick
유니티 팁&트릭 Unity Tip & Trick유니티 팁&트릭 Unity Tip & Trick
유니티 팁&트릭 Unity Tip & Trick
 
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
 
[RAPA/C++] 1. 수업 내용 및 진행 방법
[RAPA/C++] 1. 수업 내용 및 진행 방법[RAPA/C++] 1. 수업 내용 및 진행 방법
[RAPA/C++] 1. 수업 내용 및 진행 방법
 
[Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용
[Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용 [Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용
[Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용
 
유니티의 툰셰이딩을 사용한 3D 애니메이션 표현
유니티의 툰셰이딩을 사용한 3D 애니메이션 표현유니티의 툰셰이딩을 사용한 3D 애니메이션 표현
유니티의 툰셰이딩을 사용한 3D 애니메이션 표현
 
[160402_데브루키_박민근] UniRx 소개
[160402_데브루키_박민근] UniRx 소개[160402_데브루키_박민근] UniRx 소개
[160402_데브루키_박민근] UniRx 소개
 
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
 
[141217 박민근] Visual Studio 2013의 (잘모르는) 유용한 기능들
[141217 박민근] Visual Studio 2013의 (잘모르는) 유용한 기능들[141217 박민근] Visual Studio 2013의 (잘모르는) 유용한 기능들
[141217 박민근] Visual Studio 2013의 (잘모르는) 유용한 기능들
 

[박민근] 3 d렌더링 옵티마이징_4 임포스터_인스턴싱

  • 1. 3D RENDERING OPTIMIZING #4 - 박 민 근 (민군) DEVROOKIE(CAFÉ.NAVER.COM/DEVROOKIE) DevRookie 박민근(민군) 1
  • 2. Imposter 사기꾼, 다른 사람의 행세를 하는 사람 DevRookie 박민근(민군) 2
  • 3. Simple is Best! 가장 적은 수의 폴리곤을 그리는 것이 가장 빠르다. DevRookie 박민근(민군) 3
  • 4. 3D 모델 -> 2D 빌보드 -퀄리티를 떨어트리지 않는 LOD 비용↓ 성능↑ 실제 모델 임포스터 DevRookie 박민근(민군) 4
  • 5. 임포스터 적용전 DevRookie 박민근(민군) 5
  • 6. 임포스터 적용후 DevRookie 박민근(민군) 6
  • 7. 모델을 렌러 타겟에 렌더링 빌보드 생성 빌보드에 렌러 타겟을 맵핑 빌보드를 백버퍼에 렌더링 임포스터 갱신 DevRookie 박민근(민군) 7
  • 8. 트럭으로부터 생성된 임포스터. 녹색라인은 임포스터를 생성하는 데 사용되는 카메라 위치로 모은다. 임포스터 빌보드에 투영되는 3D 오브젝트 텍스처에 렌더링된 4개의 3D 오브젝트 이미지 DevRookie 박민근(민군) 8
  • 9. Alpha Blending ONE : INVSRCALPHA 일반 Mesh는 SRCALPHA : INVSRCALPHA 임포스터 빌보드는 이미 알파가 계산되어 있기 때문에 ONE : INVSRCALPHA DevRookie 박민근(민군) 9
  • 10. 거리 (해상도) 카메라 앵글 Regenarate 조명, 애니메이션 변화 임포스터 갱신 시간 DevRookie 박민근(민군) 10
  • 11. 2D Imposter or 3D Imposter < 2D 빌보드의 문제점 > < 바운딩 박스를 이용한 3D 임포스터> DevRookie 박민근(민군) 11
  • 12. Instancing 모아찍기 배치는 크게, 렌더링은 적게 DevRookie 박민근(민군) 12
  • 13. 렌더링 파이프라인 오브젝트 A 오버헤드 오브젝트 B 렌더링 파이프라인 DevRookie 박민근(민군) 13
  • 15. 인스턴싱 적용 후 DevRookie 박민근(민군) 15
  • 16. 캐시 미스 RenderState 하나의 버텍스 Texture 버퍼에 몰아 넣어, DP Call 을 최소화 같은 텍스쳐와 같은 렌더 스테이트를 사용 하는 것들은 단지 위치 와 회전만 다르다. DevRookie 박민근(민군) 16
  • 17. 최적화의 원칙 배치는 크게 DP Call은 작게 Reduce!! DP Call Reduce!! Cache Miss. Reduce!! SetRenderState Reduce!! SetTexture DevRookie 박민근(민군) 17
  • 18. 장점. 1. Buffer에 Lock을 걸지 않아도 구현이 가능 2. 빠른 속도를 보장 단점. 1. 쉐이더 상수 개수 제한으로 한꺼번에 수백개 이상은 그리지 못함 2. Skinning Shader등 쉐이더 상수를 많이 사용하는 방법과 병행하기 힘듬 3. DP콜이 Dynamic Buffer에 비해 상대적으로 많음. DevRookie 박민근(민군) 18
  • 19. Using Dynamic Buffer 장점. 1. 버퍼 크기만큼 인스턴싱이 가능하므로 Shader보다 더 많이 가능 2. 스키닝 애니메이션등, Shader와 연계 되지 않음. 3, DP콜이 Shader보다 상대적으로 적음 단점. 1. Lock을 걸어야 하기 때문에 부하가 상당히 큼. DevRookie 박민근(민군) 19
  • 20. 10. 참고 자료 1. grass engine using instancing - 한글 블로그 2. Instancing. 3. Instancing – KGC 2005 최우영 (지티스 동영상) 4. 리얼타임 렌더링 DevRookie 박민근(민군) 20