DirectX-11 Initialization
카테고리: Graphics
태그: DirectX
홍정모님의 그래픽스 새싹코스 강의를 듣고 정리한 내용입니다.
🐥 Object Declare
ComPtr
- ComPtr : Com 객체의 smart pointer
- Reference Counter를 들고다니면서 counter=0 이면 자동으로 메모리 해제시켜줌
Device
Swap Chain
SwapChain X | SwapChain O |
---|---|
- 모니터가 Render Texture에 들어있는 정보를 띄워준다고 생각해보자
- 매 프레임 Render Texture에 그리기
- 이전 프레임 결과 Clear
- 다음 프레임 렌더링
- Swap Chain이란 Render Texture 2개 이상을 번갈아 가며 사용!
- 하나의 render texture에 그릴 동안 다른 하나는 미리 clear
- 포인터만 왔다갔다
- 보통 Back Buffer / Front Buffer 로 구분
- SwapChain Description 설정
- 버퍼 사이즈는 보통 모니터 스크린 해상도
- 각 픽셀에 들어갈 Color 포맷 지정
- Render Texture 몇개 사용할지
- 주사율 지정
- 창 모드?
- 등등..
Etc
Render Target View | Rasterizer State |
---|---|
- Render Target View는 모니터에 나가는 버퍼
- Rasterizer State에서는 rasterization 세팅
🐥 Object Initialize
Device/SwapChain/RenderTarget Initialize
- Device & SwapChain 초기화
- 하드웨어 드라이버 버전
- 디버그 모드?
- 소프트웨어(DirectX) 세부 버전
- 선언한 변수들 연결
- 등등..
- BackBuffer 포인터를 render target view로 지정
- backbuffer에 렌더링하면 모니터에 그려짐
- Rasterizer State Description 설정
- Fill Mode : 픽셀 채워지는지? or WireFrame으로 그리는지?
- Culling 세팅
- 등등..
Buffer Initialize
- Buffer Description 설정
- 버퍼 내용 수정 가능한지? (read only)
- Buffer 전체 사이즈 지정
- 어떤 (vertex / pixel) 버퍼인지?
- CPU에서 접근 가능? (공유 메모리에 올려야 함)
- 등등..
Shader Initialize
- Shader의 경우 Vertex Buffer를 어떻게 읽어야 하는지 알려주어야 함
- 하나의 vertex에 어떤 정보들이 있는지
- 몇 바이트씩 끊어 읽어야 하는지
- Shader 파일을 통째로 byte코드로 변환 후 shaderBlob에 저장
- HLSL 버전 지정
Render Method
- 이전 포스팅에서 배운 렌더링 파이프라인에 따라 순차적으로 렌더링하면 끝!
댓글 남기기