그래픽스/DX11

DX - CPU에서 계산된 정보를 GPU로 넘기는 방법

뽀또치즈맛 2025. 12. 18. 11:27
void Game::Update()
{

	D3D11_MAPPED_SUBRESOURCE subResource;
	ZeroMemory(&subResource, sizeof(subResource));

	_deviceContext->Map(_constantBuffer.Get(), 0, D3D11_MAP_WRITE, 0, &subResource);
	::memcpy(subResource.pData, &_transformData, sizeof(_transformData));
	_deviceContext->Unmap(_constantBuffer.Get(), 0);
}

 

이 코드가 의미하는 바를 렌더링 파이프라인 관점에서 풀어보면

Map / Unmap은 “Central Processing Unit가 쓸 수 있게 잠깐 문 열어주는 것”이다.

 

 

  • Map : “이 리소스에 Central Processing Unit가 쓸 수 있게 주소를 주세요.”
  • subResource.pData : “여기가 지금 Central Processing Unit가 쓸 수 있는 메모리 시작 주소입니다.”
  • memcpy : “Central Processing Unit에서 계산한 구조체를 그 주소에 복사합니다.”
  • Unmap : “이제 다 썼습니다. Graphics Processing Unit가 읽을 수 있게 다시 닫아주세요.”

 

 

“매 프레임마다 Transform 데이터를 Constant Buffer에 복사해서 Graphics Processing Unit가 셰이더에서 읽게 한다.”

 

'그래픽스 > DX11' 카테고리의 다른 글

던그리드 D2D11 모작  (0) 2026.01.07
신기한 로테이션 판정 수식  (0) 2025.11.28
D3D11 Phong vs Blinn-Phong  (6) 2025.06.15
D3D11 Resize Viewport  (0) 2025.06.10
HLSL 개요  (2) 2025.06.03