51
2012 년 6 년 9 년 년년년년 ( 년년년 ) DirectX 11 년년

Direct x 11 입문

Embed Size (px)

DESCRIPTION

DirectX 11 Basic Programming Introduction

Citation preview

Page 1: Direct x 11 입문

2012 년 6 월 9 일 카제키리 ( 이진우 )

DirectX 11 입문

Page 2: Direct x 11 입문

• DirectX 9 -> DirectX11

• DirectX 11 특징• DXGI 란 ?

• DXGI 튜토리얼 프로그래밍

Page 3: Direct x 11 입문

DirectX 11?• DirectX 9 -> DirectX 10 ->DirectX 11

Page 4: Direct x 11 입문

무엇이 바뀌었나 ??• 디바이스의 분리 ( 멀티스레드 렌더링 강화 )

• CAPS 비트 , 고정파이프라인 폐지• 새로운 리소스 타입 개념 정립• DXGI 등잦• 셰이더 추가 (HS,CS,DS)

• 디바이스 로스트 불필요

Page 5: Direct x 11 입문

파이프라인버텍스버퍼데이터들을 어떻게 읽어들일것인가

Page 6: Direct x 11 입문

Tessellator Stage 추가

Page 7: Direct x 11 입문

Tessellator Stage• Hull Shader

• Tessellator

• Domain Shader

Page 8: Direct x 11 입문

Hull Shader• 폴리곤을 어떻게 얼마나 분할할 것인가 ..

입력을 모아서 .. 모아서 .. (World)

Page 9: Direct x 11 입문

Tessellator• 무게중심 좌표를 구해 도메인 셰이더에 전달• 고정기능

분할수치분할방법 도메인 셰이더

버텍스 데이터

Page 10: Direct x 11 입문

Domain Shader• 프로젝션 변환 수행

전달된 패치 데이터

버텍스 변환이 복잡 ..

Page 11: Direct x 11 입문

WARP• 고속 멀티 스케일링 래스터라이저• Win7, Win 2008

Page 12: Direct x 11 입문

Compute Shader• GPU 를 CPU 처럼 !!

• 리소스 공유 !

• 다른셰이더와 연결되지 않음

VS

Page 13: Direct x 11 입문

MTR• Multi-Thread –Rendering

• 렌더링도 멀티로 !!

• 디바이스 컨텍스트 분리• 물론 코어가 듀얼일때만 효과가 ..

Immediate Context

캐릭터

배경지형

Page 14: Direct x 11 입문

그 밖에 ..• 동적 셰이더 링크• SM 5.0

• 하위 레벨 지원 !!

• 새로운 리소스 타입 정의 ( UAB, Byte Address Buffer, Write/Read Buffer, Structured Buffer)

Page 15: Direct x 11 입문

DXGI• DirectX 11 과는 독립한 기능 ( 환경이 아니라도 사용가능 )

• D3D 로부터 떼어내진 기능• 하드웨어가 느리니까…

Page 16: Direct x 11 입문

SWAP CHAINDXGI 기능복수의 버퍼의 집합 + 전환방식퍼포먼스 조정에 따른 3 개이상도 가능

Page 17: Direct x 11 입문

DXGI 조작 ??• 그래픽카드 선택• 윈도우 사이즈 갱신시 대처 ( 백버퍼 사이즈 갱신 )

• 윈도우 사이즈 갱신 ( 디스플레이모드 변경 )

• 쓸데없는 화면 렌더링 제어• 화면 모드의 전환 • 톤 커브에 의한 감마보정

Page 18: Direct x 11 입문

인터페이스• IDXGIFactory !! -> CreateDXGIFactory

• IDXGIAdapter!! -> 그래픽 카드 관련 기능• IDXGIOutput!! -> 디스플레이 관련 기능 ( 해상도 , Refresh Rate, Gamma Collec-

tion)

• IDXGISwapChain!! -> 스왑체인 인터페이스 D3D11CreateDeviceAndSwapChain

Page 19: Direct x 11 입문

DIRECTX 11 튜토리얼• 피처레벨 설정• 디바이스 및 스왑체인 생성• 백버퍼 설정• 뷰포트 설정• 렌더링• 디바이스 로스트 처리 및 감마세팅

Page 20: Direct x 11 입문

피처레벨 설정

Page 21: Direct x 11 입문

디바이스 및 스왑체인 생성

Page 22: Direct x 11 입문

디바이스 및 스왑체인 생성

Page 23: Direct x 11 입문

백버퍼 설정

Page 24: Direct x 11 입문

뷰포트 설정

Page 25: Direct x 11 입문

렌더링

Page 26: Direct x 11 입문
Page 27: Direct x 11 입문

그럼 폴리곤 찍어보자 !!

Page 28: Direct x 11 입문

뭐냐 !! SV_ 는…System Value Semantics..

GPU 가 무언가 특별한 처리를 해주어야 하는 변수들에 부여 !!

SV_POSITION -> 폴리곤을 래스터라이즈할때 사용SV_Target -> 렌더 타겟 !!

Page 29: Direct x 11 입문

그럼 폴리곤 찍어보자 !!

Page 30: Direct x 11 입문

그럼 폴리곤 찍어보자 !!

Page 31: Direct x 11 입문

그럼 폴리곤 찍어보자 !!

Page 32: Direct x 11 입문

그럼 폴리곤 찍어보자 !!

Page 33: Direct x 11 입문

그럼 폴리곤 찍어보자 !!

Page 34: Direct x 11 입문

그럼 폴리곤 찍어보자 !!

Page 35: Direct x 11 입문
Page 36: Direct x 11 입문

3D 공간으로는 어떻게 ..?• Constant Buffer!!!

Mat4x4 g_WVP;

0~13 register

Page 37: Direct x 11 입문

3D 공간으로는 어떻게 ..?

• Render

Page 38: Direct x 11 입문

• 그럼 정수버퍼는 달랑 14 개 ??

Page 39: Direct x 11 입문

그래도 라이팅이랑 텍스처링은…

Page 40: Direct x 11 입문

그래도 라이팅은 해봐야…

Page 41: Direct x 11 입문

그래도 라이팅은 해봐야…

Page 42: Direct x 11 입문

그래도 라이팅은 해봐야…

Page 43: Direct x 11 입문

마무리 텍스처링 !!

Page 44: Direct x 11 입문

마무리 텍스처링 !!

• Render

Page 45: Direct x 11 입문

마무리 텍스처링 !!• StateObject….

• RasterizerState

• BlendState

• SamplerState

Page 46: Direct x 11 입문

마무리 텍스처링 !!

Page 47: Direct x 11 입문

마무리 텍스처링 !!

Page 48: Direct x 11 입문

디바이스 로스트

g_pSwapChain->Present(0,DXGI_PRESENT_TEST);

Page 49: Direct x 11 입문

이게 끝이라고 생각한다면…• HS,GS,CS,DS 가 하고 싶었… .

• DirectX 9 제대로 이해하고있으면… .

• 복잡하던가 ..?

Page 50: Direct x 11 입문

Q&A

그런거… ..

Page 51: Direct x 11 입문

REFERENCE• DirectX 11 프로그래밍 입문 ( 원서 )

• MSDN DirectX 11

• DirectX SDK Tutorial

• 알콜코더의 예제로 느껴보는 다이렉트 X 의 매력