SlideShare a Scribd company logo
조 진현
정적인 오브젝트에만 국한된 얘기들이다.
[1106 조진현] if you( batch rendering )
[1106 조진현] if you( batch rendering )
3D RENDERING
OPTIMIZING #4
- 박 민 근 (민군)
DEVROOKIE(CAFÉ.NAVER.COM/DEVROOKIE)
5DevRookie 박민근(민군)
별도의 작업없이
그냥 렌더링만 하게
해주세요~~~
Future GPUs will make it better!? Really?
[1106 조진현] if you( batch rendering )
과거에는 CPU 사이클을 줄이는 것.
현재는 병목 현상을 제거하는 것.
대역폭
Vertex
Format
(Byte)
Half
16bit
순차적
접근
GPU 활용
Lock
Cache
Memory
POOL
텍스쳐
옵션압축
[1106 조진현] if you( batch rendering )
[1106 조진현] if you( batch rendering )
폴리곤을 그리지 않는 것!
폴리곤을 효과적으로 렌더링 하는 것!
[1106 조진현] if you( batch rendering )
DrawXXXPrimitiveUp
DrawPrimitive
 파이프라인은 필연적으로 통과한다.
 즉, 할만큼 다 제거했다… 그 이후의 작업~
 Object : 11개
 Texture : 4장
 Material : 5개
 Shader : 2종
For( 오브젝트 개수 만큼 )
{
스테이트 셋팅()
행렬 셋팅()
텍스쳐 바인딩()
버퍼 바인딩()
그리기 명령()
}
오브젝트 정렬 후…
For( 오브젝트 개수 만큼 )
{
스테이트 셋팅()
행렬 셋팅()
텍스쳐 바인딩()
버퍼 바인딩()
그리기 명령()
}
Material 별로 정리 후 정렬.
( 같은 Material 별로 그룹화 )
For( Material 그룹화 개수 만큼 )
Material 바인딩.
for( 그룹내 오브젝트 개수 만큼 )
행렬세팅()
버퍼 바인딩()
그리기 명령()
투명한 오브젝트와 불투명한 오브젝트로 분류. ( 투명 그룹, 불투명 그룹 )
For ( 각 투명 그룹에 대하여 )
알파 관련 셋팅
각각에 대해서 Material 별로 정리
Material 별로 정리 후 정렬.
( 같은 Material 별로 그룹화 )
For( Material 그룹화 개수 만큼 )
Material 바인딩.
for( 그룹내 오브젝트 개수 만큼 )
행렬세팅()
버퍼 바인딩()
그리기 명령()
 되도록 많은 것을 하나의 버퍼로 묶어라.
 복수의 Stream 에 연결하라~
 반드시 Strip 화 시켜라.
[1106 조진현] if you( batch rendering )
H/W
Designers
Driver
Architects
API / Runtime
Architects
Application
Developers
Application
Driver
Core API / HLSL / Runtime
Hardware
 시스템에서 목적으로 하는 효과를 얻기 위해
본질적인 것은 아니지만 요구되는 작동,
또는 그 때문에 필요한 자원.
 필연적인 것!!!
[1106 조진현] if you( batch rendering )
 DrawIndexedPrimitive()
 GPU 에게 n개의 폴리곤을 렌더링을 명령하는 작업.
 같은 State들을 가지는 삼각형들의 묶음
 Batch를 렌더링 하기 위해서는
반드시 State 들이 먼저 설정되어야 한다.
 State가 변경되면, 최소 2개의 Batch가 필요.
어떤 State 변화가
일어나는가?
얼마나 많은 State
변화가
일어나는가?
잠재적 State
변화의 요인들은
무엇인가?
 State의 변화는 소모적인 명령.
 GPU의 잦은 Tri-SetUp 비용.
 OS 커널의 명령어 전송 증가.
 CPU에 의존적인 최적화.
( CPU 성능에 좌우 )
 얼마나 많은 폴리곤이 Batch에 들어있는지는
중요하지 않음. ( 이것은 GPU의 몫 )
 되도록 많은 폴리곤을 하나의 Batch에 넣어라.
 CPU는 계속 성능이 증가!!! But…
 많으면 그냥 좋음!!!
 Texture 교체.
 Transform 변화.
 스키닝.
 Material 교체.
선행 처리가 필요.( Strip 기반의 버퍼 최적화 )
버퍼를 셋팅.
투명한 오브젝트와 불투명한 오브젝트로 분류. ( 투명 그룹, 불투명 그룹 )
For ( 각 투명 그룹에 대하여 )
알파 관련 셋팅
각각에 대해서 Material 별로 정리 및 정렬
( 같은 Material 별로 그룹화 )
For( Material 그룹화 개수 만큼 )
Material 바인딩.
for( 그룹내 오브젝트 개수 만큼 )
행렬세팅()
그리기 명령()
 Texture Atlas.
 병렬 프로그래밍과의 결합.
 Strip 기반으로 엔진을 구성할 것.
[1106 조진현] if you( batch rendering )
[1106 조진현] if you( batch rendering )
질문 주세요~~~

More Related Content

PDF
GPU를 위한 병렬 음원 방향 추정 알고리즘
PPTX
Merge.c 성능개선보고서
PPTX
Unity performanceoptimzation
PDF
Ndc2012 최지호 텍스쳐 압축 기법 소개
PPTX
헤테로지니어스 컴퓨팅 : CPU 에서 GPU 로 옮겨가기
PDF
intro. typescript playground
PPTX
게임프로젝트에 적용하는 GPGPU
PDF
R2서버정진욱
GPU를 위한 병렬 음원 방향 추정 알고리즘
Merge.c 성능개선보고서
Unity performanceoptimzation
Ndc2012 최지호 텍스쳐 압축 기법 소개
헤테로지니어스 컴퓨팅 : CPU 에서 GPU 로 옮겨가기
intro. typescript playground
게임프로젝트에 적용하는 GPGPU
R2서버정진욱

What's hot (20)

PPTX
gv004 ver0.1
PDF
Voxel based game_optimazation_relelase
PPT
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
PPTX
Compute shader DX11
PPTX
[14.10.21] Far Cry and DX9 번역(shaderstudy)
PPTX
이권일 Sse 를 이용한 최적화와 실제 사용 예
PPTX
Hierachical z Map Occlusion Culling
PPTX
GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리
PPSX
병렬처리와 성능향상
PDF
[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법
PPTX
d.ts 만들기
PPTX
서버와 클라이언트 같은 엔진 사용하기
PPTX
Implements Cascaded Shadow Maps with using Texture Array
PPTX
2015 제2회 동아리 해커 세미나 - 병렬컴퓨팅 소개 (16기 김정현)
PPTX
[박민근] 3 d렌더링 옵티마이징_2
PPT
D2 Havok
PDF
MMOG Server-Side 충돌 및 이동처리 설계와 구현
PDF
게임에서 흔히 쓰이는 최적화 전략 by 엄윤섭 @ 지스타 컨퍼런스 2013
PPTX
[Gpg2권 박민근] 1.13 스택 와인딩
PPTX
Cuda intro
gv004 ver0.1
Voxel based game_optimazation_relelase
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
Compute shader DX11
[14.10.21] Far Cry and DX9 번역(shaderstudy)
이권일 Sse 를 이용한 최적화와 실제 사용 예
Hierachical z Map Occlusion Culling
GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리
병렬처리와 성능향상
[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법
d.ts 만들기
서버와 클라이언트 같은 엔진 사용하기
Implements Cascaded Shadow Maps with using Texture Array
2015 제2회 동아리 해커 세미나 - 병렬컴퓨팅 소개 (16기 김정현)
[박민근] 3 d렌더링 옵티마이징_2
D2 Havok
MMOG Server-Side 충돌 및 이동처리 설계와 구현
게임에서 흔히 쓰이는 최적화 전략 by 엄윤섭 @ 지스타 컨퍼런스 2013
[Gpg2권 박민근] 1.13 스택 와인딩
Cuda intro
Ad

Viewers also liked (20)

PDF
How to Become a Thought Leader in Your Niche
PDF
신에게서 인간에로
PDF
PPTX
터키 소개 Korece turkiye tanitim
PPT
그리스 철학과 고전주의미술(하자센터강의.2013)
PPT
사진, 인문학과 만나다
PPTX
오페라특강 Pt(이용숙)
PPTX
French - Bretagne presentation
PPTX
서양 문화의 뿌리, 그리스 로마 신화!
PPTX
터키 소개Medeniyetler besigi turkiye korece turkiye tanitim
PPTX
213140012 황미현
PPT
터키 소개Tr ilkokul son revised
PPTX
213140037-김지은_수시과제
PPTX
Nmdl final project-dan jiang (revised)
PPTX
Social Web Planning 5
DOCX
Proyecto vivienda domótica
PDF
Smau milano 2012 fiorella crespi lab unified
PDF
대신리포트_대신브라우저_140620
PPTX
Intro To Capital Success Ceo 1.51
PDF
대신리포트 모닝미팅 160318
How to Become a Thought Leader in Your Niche
신에게서 인간에로
터키 소개 Korece turkiye tanitim
그리스 철학과 고전주의미술(하자센터강의.2013)
사진, 인문학과 만나다
오페라특강 Pt(이용숙)
French - Bretagne presentation
서양 문화의 뿌리, 그리스 로마 신화!
터키 소개Medeniyetler besigi turkiye korece turkiye tanitim
213140012 황미현
터키 소개Tr ilkokul son revised
213140037-김지은_수시과제
Nmdl final project-dan jiang (revised)
Social Web Planning 5
Proyecto vivienda domótica
Smau milano 2012 fiorella crespi lab unified
대신리포트_대신브라우저_140620
Intro To Capital Success Ceo 1.51
대신리포트 모닝미팅 160318
Ad

Similar to [1106 조진현] if you( batch rendering ) (20)

PPTX
TenforFlow Internals
PPT
모바일 게임 최적화
DOC
Optimizing the graphics_pipeline_
PDF
Modern gpu optimize blog
PDF
Modern gpu optimize
PDF
NDC 2017 비주얼 선택과 집중 - 3on3 아트 포스트모템
PDF
Gametech2015
PPTX
[데브루키]노대영_프린이를 위하여(프로그래밍 어린이)
PDF
Project anarchy로 3d 게임 만들기 part_3_움직여라 움직여
PPTX
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
PDF
멀티스레드 렌더링 (Multithreaded rendering)
PPTX
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
PDF
전형규, Vertex Post-Processing Framework, NDC2011
PDF
[shaderx6] 3.7 Robust Order-Independent Transparency via Reverse Depth Peelin...
PPTX
Ndc2013 정리(upload버전)
PDF
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
PDF
[NDC08] 최적화와 프로파일링 - 송창규
PDF
Direct x 12 초기화
PPTX
Spark 소개 1부
DOCX
July report in korean
TenforFlow Internals
모바일 게임 최적화
Optimizing the graphics_pipeline_
Modern gpu optimize blog
Modern gpu optimize
NDC 2017 비주얼 선택과 집중 - 3on3 아트 포스트모템
Gametech2015
[데브루키]노대영_프린이를 위하여(프로그래밍 어린이)
Project anarchy로 3d 게임 만들기 part_3_움직여라 움직여
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
멀티스레드 렌더링 (Multithreaded rendering)
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
전형규, Vertex Post-Processing Framework, NDC2011
[shaderx6] 3.7 Robust Order-Independent Transparency via Reverse Depth Peelin...
Ndc2013 정리(upload버전)
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
[NDC08] 최적화와 프로파일링 - 송창규
Direct x 12 초기화
Spark 소개 1부
July report in korean

More from 진현 조 (13)

PPTX
[조진현]Kgc2012 c++amp
PPTX
[조진현] [Kgc2011]direct x11 이야기
PPTX
[Gpg2권 조진현] 1.2 인라인 함수 대 매크로
PPTX
[Gpg1권 조진현] 5.6 하드웨어 범프 매핑
PPTX
[Gpg1권 조진현] 5.6 하드웨어 범프 매핑
PPTX
[Gpg1권 조진현] 4.16~4.20 실시간 사실적 지형 + 프랙탈
PPTX
[0312 조진현] good bye dx9
PPTX
[0319 조진현] 뇌를 자극하는 드라마 & 책
PPTX
[Gpg1권 조진현] 4.6 다해상도 맵을 이용한 충돌 판정
PPTX
[1218 조진현] 폐차쿠챠 특집 행복한-게임개발자_되기
PPTX
[0108 조진현]출발 소프트웨어 렌더러
PPTX
[1211 조진현][gpg1]플로킹
PPTX
[1002 조진현]unity3d 소개
[조진현]Kgc2012 c++amp
[조진현] [Kgc2011]direct x11 이야기
[Gpg2권 조진현] 1.2 인라인 함수 대 매크로
[Gpg1권 조진현] 5.6 하드웨어 범프 매핑
[Gpg1권 조진현] 5.6 하드웨어 범프 매핑
[Gpg1권 조진현] 4.16~4.20 실시간 사실적 지형 + 프랙탈
[0312 조진현] good bye dx9
[0319 조진현] 뇌를 자극하는 드라마 & 책
[Gpg1권 조진현] 4.6 다해상도 맵을 이용한 충돌 판정
[1218 조진현] 폐차쿠챠 특집 행복한-게임개발자_되기
[0108 조진현]출발 소프트웨어 렌더러
[1211 조진현][gpg1]플로킹
[1002 조진현]unity3d 소개

[1106 조진현] if you( batch rendering )