일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 다이렉트X
- engine
- Direct3D Init
- 다이렉트X 튜토리얼
- swapchain
- Direct3D
- 전처리문
- 다이렉트 초기화
- UE4
- DirectX12
- DirectXTK
- 게임수학
- 코딩
- 동기화
- C언어
- RenderTargetView
- 다중표본화
- CPU
- 프로그래밍
- Direct Init
- Input Assembler
- GPU
- DirectX
- View
- DESC
- c
- vertex
- 세팅
- CommandList
- C++
- Today
- Total
목록swapchain (3)
비타Cpp
Direct3D는 자원 자체를 직접 파이프라인의 단계에 묶지 않는다. 대신 반드시 자원에 대한 뷰(서술자)를 생성해서 그 뷰를 파이프라인 단계에 묶어야 한다. 특히 후면 버퍼를 파이프라인의 출력 병합기(Output Merger) 단계에 묶으려면(그래야 Direct3D가 장면을 후면 버퍼에 렌더링 할 수 있다.) 후면 버퍼에 대한 렌더 대상 뷰를 생성해야 한다. 우선 할 일은 교환 사슬에 저장되어 있는 버퍼 자원을 얻는 것인데, 이를 위해 다음과 같은 메서드를 사용한다. HRESULT IDXGISwapChain::GetBuffer( UINT Buffer, REFIID riid, void **ppSurface ); 1. Buffer: 얻고자 하는 특정 후면 버퍼를 식별하는 색인(교환 사슬에 버퍼가 여러 개 ..
초기화 공정 다음 단계는 교환 사슬(Swap Chain)을 생성하는 것이다. 이를 위해서는 DXGI_SWAP_CHAIN_DESC구조체 인스턴스의 멤버들을 지금 생성하고자 하는 교환 사슬에 맞게 설정해야 한다. 이 구조체의 정의는 다음과 같다. https://docs.microsoft.com/en-us/windows/win32/api/dxgi/ns-dxgi-dxgi_swap_chain_desc DXGI_SWAP_CHAIN_DESC (dxgi.h) - Win32 apps Describes a swap chain. docs.microsoft.com typedef struct DXGI_SWAP_CHAIN_DESC { DXGI_MODE_DESC BufferDesc; DXGI_SAMPLE_DESC SampleDes..
애니메이션이 껌뻑이는 현상을 피하려면 SwapChain을 이용하는 것이 최선이다. SwapChain은 애니메이션의 한 프레임 전체를 화면 바깥의(off-screen) 텍스처에 그린다. 이런 텍스처를 후면 버퍼(back buffer)라고 부른다. 주어진 한 프레임을 위해 장면 전체를 후면 버퍼에 그린다음에는, 그후면 버퍼를 하나의 완전한 프레임으로서 화면에 표시한다. 이렇게 하면 화면을 보는 사용자는 프레임이 그려지는 과정이 나타나지 않고 완성된 프레임만 보이게 된다. 이러한 기법을 이중 버퍼링이라고 부른다. 이중 버퍼링을 효율적으로 구현 하려면 하드웨어로 관리되는 두 개의 텍스처 버퍼가 필요한데, 하나는 전면 버퍼(front buffer)이고 다른 하나는 앞에서 말한 후면 버퍼이다. 화면에는 전면 버퍼에..