GPU에서 쓴 정보를 CPU로 가져와서 읽을 때 Map
// (GPU에서 써준)구조화 버퍼에 있는 본 정보 m_BoneBuffer를 m_BoneDataBuffer로 복사한다.
CDevice::GetInst()->GetContext()->CopyResource(m_BoneDataBuffer, m_BoneBuffer->GetBuffer());
D3D11_MAPPED_SUBRESOURCE Map = {};
// D3D11_MAP타입의 3번째 인자는 D3D11_MAP_READ로
CDevice::GetInst()->GetContext()->Map(m_BoneDataBuffer->GetBuffer(), 0, D3D11_MAP_READ, 0, &Map);
// m_vecBoneMatrix로 복사
memcpy(&m_vecBoneMatrix[0], Map.pData, sizeof(Matrix)* m_vecBoneMatrix.size());;
CDevice::GetInst()->GetContext()->Unmap(m_BoneBuffer->GetBuffer(), 0);
CPU에서 쓴 정보를 GPU로 보낼 때
D3D11_MAPPED_SUBRESOURCE Map = {};
// m_Buffer는 ID3D11Buffer* 타입
// D3D11_MAP타입의 3번째 인자는 D3D11_MAP_WRITE_DISCARD로
CDevice::GetInst()->GetContext()->Map(m_Buffer, 0, D3D11_MAP_WRITE_DISCARD, 0, &Map);
memcpy(Map.pData, Data, m_Size * Count);
CDevice::GetInst()->GetContext()->Unmap(m_Buffer, 0);
'공부 > Graphics, DirectX, 포트폴리오 구조' 카테고리의 다른 글
그림자 매핑(Shadow Mapping) (0) | 2022.09.17 |
---|---|
Lighting (0) | 2022.09.13 |
디퍼드 렌더링(Deferred Rendering)에서 반투명한 물체를 위한 블렌딩처리가 안되는 이유 (0) | 2022.05.24 |
렌더링 파이프라인(Rendering Pipeline) (0) | 2022.04.10 |
Particle 구현을 위한 Structured Buffer, Compute Shader 그리고 Geometry Shader (0) | 2022.04.01 |