ݺߣ

ݺߣShare a Scribd company logo
DirectX 11 입문
  2012년 6월 9일
   카제키리 (이진우)
• 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 CHAIN
DXGI 기능
복수의 버퍼의 집합 + 전환방식
퍼포먼스 조정에 따른 3개이상도 가능
DXGI 조작??
•   그래픽카드 선택
•   윈도우 사이즈 갱신시 대처 (백버퍼 사이즈 갱신)
•   윈도우 사이즈 갱신(디스플레이모드 변경)
•   쓸데없는 화면 렌더링 제어
•   화면 모드의 전환
•   톤 커브에 의한 감마보정
인터페이스
•   IDXGIFactory !!   -> CreateDXGIFactory
•   IDXGIAdapter!!    -> 그래픽 카드 관련 기능
•   IDXGIOutput!!     -> 디스플레이 관련 기능 (해상도, Refresh Rate, Gamma
    Collection)
•   IDXGISwapChain!! -> 스왑체인 인터페이스 D3D11CreateDeviceAndSwapChain
DIRECTX 11 튜토리얼
•   피처레벨 설정
•   디바이스 및 스왑체인 생성
•   백버퍼 설정
•   뷰포트 설정
•   렌더링
•   디바이스 로스트 처리 및 감마세팅
피처레벨 설정
디바이스 및 스왑체인 생성
디바이스 및 스왑체인 생성
백버퍼 설정
뷰포트 설정
렌더링
Direct x 11 입문
그럼 폴리곤 찍어보자!!
뭐냐!! SV_는…
System Value Semantics..
GPU가 무언가 특별한 처리를 해주어야 하는 변수들에 부여!!


SV_POSITION -> 폴리곤을 래스터라이즈할때 사용
SV_Target -> 렌더 타겟!!
그럼 폴리곤 찍어보자!!
그럼 폴리곤 찍어보자!!
그럼 폴리곤 찍어보자!!
그럼 폴리곤 찍어보자!!
그럼 폴리곤 찍어보자!!
그럼 폴리곤 찍어보자!!
Direct x 11 입문
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의 매력

More Related Content

Direct x 11 입문