게임 개발 자료/DirectX 스터디

DirectX 11 스터디 - 렌더링 파이프라인 기초 핵심 정리

원소랑 2023. 9. 11. 12:32

https://learn.microsoft.com/ko-kr/windows/win32/direct3d11/overviews-direct3d-11-graphics-pipeline

먼저 렌더링 파이프라인 기본 스테이지 순서 (중간중간 세부 스테이지는 스킵)

IA > VS > RS > PS > OM

Input-Assembler Stage

Vertex Shader Stage

Rasterizer Stage

Pixel Shader Stage

Output-Merger Stage

 

아래 3가지가 명령을 내리는 핵심.

D3D11Device

D3D11DeviceContext

DXGISwapChain

(DXGI (DirectX Graphics Infrastructure) : 기술 발전 속도가 느리거나 고전적인 요소들을 모아둔 기반 인터페이스.)

 

Device 는 객체를 생성할 때 주로 사용.

DevieContext 를 생성한 객체를 활용해서 명령을 내릴 때 주로 사용.

SwapChain 은 전면/후면 버퍼를 교체/고속복사해서 화면을 갱신하는 역할

 

DX12 에서는 Device, DeviceContext, SwapChain 이 하나로 통합됨.

 

SwapChain 에서 ID3D11Texture2D 의 GUID 로 버퍼의 주소를 가져와서 Render Target View 를 생성해주고, DeviceContext::OMSetRenderTargets 함수로 전달해줌으로 백버퍼를 셋팅. 이 버퍼에 렌더링을 해달라는 설정.

https://learn.microsoft.com/ko-kr/windows/win32/api/d3d11/nf-d3d11-id3d11devicecontext-omsetrendertargets

 

ID3D11DeviceContext::OMSetRenderTargets(d3d11.h) - Win32 apps

하나 이상의 렌더링 대상을 원자성으로 바인딩하고 깊이 스텐실 버퍼를 출력 병합 단계에 바인딩합니다.

learn.microsoft.com

 

SwapChain::Present() 를 호출하면 후면버퍼의 데이터를 전면버퍼로 고속복사해서 화면에 그려지게 됨.

https://learn.microsoft.com/ko-kr/windows/win32/api/dxgi/nf-dxgi-idxgiswapchain-present

 

IDXGISwapChain::P resent(dxgi.h) - Win32 apps

렌더링된 이미지를 사용자에게 표시합니다.

learn.microsoft.com

 

여기까지가 장치 초기화.

 

다음은 그리기 단계.

버텍스버퍼를 생성

인덱스버퍼를 생성

인풋레이아웃 생성, 설정.

버텍스셰이더, 픽셀셰이더 로드/컴파일 후 객체 생성.

셰이더리소스뷰를 생성. 텍스쳐 파일을 로드. 픽셀셰이더 레지스터로 전달.

버텍스에 UV 좌표 설정.

기본 샘플러 스테이트로 픽셀 셰이더 동작.

상수버퍼 생성. 상수버퍼를 셰이더 레지스터로 전달해서 버텍스 트랜스폼 정보 등을 조작.

 

레스터라이저 스테이트, 샘플러 스테이트, 블랜드 스테이트는 적절히 생성해서 연결.

 

기초 핵심 정리는 여기까지.


<리얼-타임 렌더링(REAL-TIME RENDERING) 4/e> 구입 링크
https://link.coupang.com/a/8VWas

 

리얼-타임 렌더링 4/e

COUPANG

www.coupang.com

<DirectX 12를 이용한 3D 게임 프로그래밍 입문> 구입 링크
https://link.coupang.com/a/8V4Wq

 

DirectX 12를 이용한 3D 게임 프로그래밍 입문:게임 개발 중심으로 익히는 대화식 컴퓨터 그래픽 프

COUPANG

www.coupang.com

유니티 에셋 스토어 링크

https://assetstore.unity.com?aid=1011lvz7h 

 

에셋스토어

여러분의 작업에 필요한 베스트 에셋을 찾아보세요. 유니티 에셋스토어가 2D, 3D 모델, SDK, 템플릿, 툴 등 여러분의 콘텐츠 제작에 날개를 달아줄 다양한 에셋을 제공합니다.

assetstore.unity.com

(링크를 통해 도서/에셋 구입시 일정액의 수수료를 지급받습니다.)


728x90
반응형