DirectX-11 Initialization

Date:     Updated:

카테고리:

태그:

홍정모님의 그래픽스 새싹코스 강의를 듣고 정리한 내용입니다.


🐥 Object Declare

ComPtr

1

  • ComPtr : Com 객체의 smart pointer
  • Reference Counter를 들고다니면서 counter=0 이면 자동으로 메모리 해제시켜줌


Device

2


Swap Chain

SwapChain X SwapChain O
3 4
  • 모니터가 Render Texture에 들어있는 정보를 띄워준다고 생각해보자
    • 매 프레임 Render Texture에 그리기
    • 이전 프레임 결과 Clear
    • 다음 프레임 렌더링
  • Swap Chain이란 Render Texture 2개 이상을 번갈아 가며 사용!
    • 하나의 render texture에 그릴 동안 다른 하나는 미리 clear
    • 포인터만 왔다갔다
    • 보통 Back Buffer / Front Buffer 로 구분


5

  • SwapChain Description 설정
    • 버퍼 사이즈는 보통 모니터 스크린 해상도
    • 각 픽셀에 들어갈 Color 포맷 지정
    • Render Texture 몇개 사용할지
    • 주사율 지정
    • 창 모드?
    • 등등..


Etc

Render Target View Rasterizer State
6 7
  • Render Target View는 모니터에 나가는 버퍼
  • Rasterizer State에서는 rasterization 세팅


🐥 Object Initialize

Device/SwapChain/RenderTarget Initialize

8

  • Device & SwapChain 초기화
    • 하드웨어 드라이버 버전
    • 디버그 모드?
    • 소프트웨어(DirectX) 세부 버전
    • 선언한 변수들 연결
    • 등등..


9

  • BackBuffer 포인터를 render target view로 지정
  • backbuffer에 렌더링하면 모니터에 그려짐


10

  • Rasterizer State Description 설정
    • Fill Mode : 픽셀 채워지는지? or WireFrame으로 그리는지?
    • Culling 세팅
    • 등등..


Buffer Initialize

11


12

  • Buffer Description 설정
    • 버퍼 내용 수정 가능한지? (read only)
    • Buffer 전체 사이즈 지정
    • 어떤 (vertex / pixel) 버퍼인지?
    • CPU에서 접근 가능? (공유 메모리에 올려야 함)
    • 등등..


13


Shader Initialize

14

  • Shader의 경우 Vertex Buffer를 어떻게 읽어야 하는지 알려주어야 함
    • 하나의 vertex에 어떤 정보들이 있는지
    • 몇 바이트씩 끊어 읽어야 하는지


14

  • Shader 파일을 통째로 byte코드로 변환 후 shaderBlob에 저장
  • HLSL 버전 지정


Render Method

15

  • 이전 포스팅에서 배운 렌더링 파이프라인에 따라 순차적으로 렌더링하면 끝!



맨 위로 이동하기

Graphics 카테고리 내 다른 글 보러가기

댓글 남기기