direct x 11 입문

Post on 20-Jun-2015

2.233 Views

Category:

Education

7 Downloads

Preview:

Click to see full reader

DESCRIPTION

DirectX 11 Basic Programming Introduction

TRANSCRIPT

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

DirectX 11 입문

• DirectX 9 -> DirectX11

• DirectX 11 특징• DXGI 란 ?

• DXGI 튜토리얼 프로그래밍

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

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

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

• 디바이스 로스트 불필요

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

Tessellator Stage 추가

Tessellator Stage• Hull Shader

• Tessellator

• Domain Shader

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

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

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

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

버텍스 데이터

Domain Shader• 프로젝션 변환 수행

전달된 패치 데이터

버텍스 변환이 복잡 ..

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

Compute Shader• GPU 를 CPU 처럼 !!

• 리소스 공유 !

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

VS

MTR• Multi-Thread –Rendering

• 렌더링도 멀티로 !!

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

Immediate Context

캐릭터

배경지형

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

• 하위 레벨 지원 !!

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

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

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

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

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

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

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

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

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

tion)

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

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

피처레벨 설정

디바이스 및 스왑체인 생성

디바이스 및 스왑체인 생성

백버퍼 설정

뷰포트 설정

렌더링

그럼 폴리곤 찍어보자 !!

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

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

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

그럼 폴리곤 찍어보자 !!

그럼 폴리곤 찍어보자 !!

그럼 폴리곤 찍어보자 !!

그럼 폴리곤 찍어보자 !!

그럼 폴리곤 찍어보자 !!

그럼 폴리곤 찍어보자 !!

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

Mat4x4 g_WVP;

0~13 register

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

• Render

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

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

그래도 라이팅은 해봐야…

그래도 라이팅은 해봐야…

그래도 라이팅은 해봐야…

마무리 텍스처링 !!

마무리 텍스처링 !!

• Render

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

• RasterizerState

• BlendState

• SamplerState

마무리 텍스처링 !!

마무리 텍스처링 !!

디바이스 로스트

g_pSwapChain->Present(0,DXGI_PRESENT_TEST);

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

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

• 복잡하던가 ..?

Q&A

그런거… ..

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

• MSDN DirectX 11

• DirectX SDK Tutorial

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

top related