먼저 렌더링 파이프라인 기본 스테이지 순서 (중간중간 세부 스테이지는 스킵)
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 함수로 전달해줌으로 백버퍼를 셋팅. 이 버퍼에 렌더링을 해달라는 설정.
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
(링크를 통해 도서/에셋 구입시 일정액의 수수료를 지급받습니다.)
'게임 개발 자료 > DirectX 스터디' 카테고리의 다른 글
행렬(Matrix) 스터디 - 실습 및 SimpleMath for DirectXMath (0) | 2023.09.14 |
---|---|
행렬(Matrix) 스터디 - 좌표계 변환, World 변환, View 변환, Projection 변환 행렬 (0) | 2023.09.13 |
행렬(Matrix) 스터디 - 개요, 기초, SRT(Scale, Rotation, Translation) 변환 행렬 (0) | 2023.09.12 |
DirectX 11 스터디 - 래스터라이저 스테이트, 샘플 스테이트, 블렌드 스테이트 (0) | 2023.09.11 |
DirectX 11 스터디 - 상수 버퍼 (Constant Buffer) (0) | 2023.09.08 |
DirectX 11 스터디 - 텍스쳐 UV맵핑 (ShaderResourceView) (0) | 2023.09.08 |
DirectX 11 스터디 노트 - 도형 만들어보기 (Create Geometry) + 인덱스 버퍼 + 버텍스 셰이더, 픽셀 셰이더 (0) | 2023.09.06 |