저는 DirectX 11의 초보자이고 2 장의 DirectX 11 시작하기 책자에 이어 다음을 사용하여 버퍼를 만드는 코드가 있습니다 코드 :DirectX 11에서 SwapChain (DXGI_SWAP_CHAIN_DESC)에 두 개의 버퍼를 작성하고 등록하는 방법
DXGI_SWAP_CHAIN_DESC swapChainDesc;
ZeroMemory(&swapChainDesc, sizeof(swapChainDesc));
swapChainDesc.BufferCount = 1;
swapChainDesc.BufferDesc.Width = width;
swapChainDesc.BufferDesc.Height = height;
swapChainDesc.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
swapChainDesc.BufferDesc.RefreshRate.Numerator = 60;
swapChainDesc.BufferDesc.RefreshRate.Denominator = 1;
swapChainDesc.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT;
swapChainDesc.OutputWindow = hwnd;
swapChainDesc.Windowed = true;
swapChainDesc.SampleDesc.Count = 1;
swapChainDesc.SampleDesc.Quality = 0;
내 질문은 하나 BufferDesc (DXGI_MODE_DESC 구조체)가 같이 description of swap chain에 분명히 하나의 버퍼 공간이 있다는 것입니다. 따라서 BufferCount가 2 이상으로 설정된 경우 두 번째 버퍼가 어떻게 등록됩니까? 다른 DXGI_SWAP_CHAIN_DESC를 사용합니까? 몇 가지 예제 코드를 게시하십시오.
또한 BufferCount에는 UNIT 유형이 있습니다. 이는 두 개 이상의 버퍼를 추가 할 수 있음을 의미합니다. 더블 버퍼링 기법에서는 2 개의 버퍼가 사용되지만, 하나의 버퍼가 그려지는 데 사용되며, 다른 버퍼는 장면에 표시되는 데 사용되며 버퍼는 스왑됩니다. 두 개 이상의 버퍼의 사용, 장점은 무엇입니까?
"최대 4 개까지 갈 수 있습니까?"-이 번호를 어디에서 가져 왔습니까? – rkellerm
@ rursw1 : 4 개 이상의 버퍼를 사용하면 일반적으로 성능이 저하되고 입력 지연이 심각해집니다. 따라서 "4 개의 버퍼를 넘지 않는 것이 좋습니다.하지만 원하는 경우 완전히 수행 할 수 있습니다". – pikzen