dx12에서는 버퍼 크기가 64KB 강제로 알고 있음.
그래서 Vertex buffer는 하나의 버퍼에 여러 버텍스를 채워 넣는 방식으로 구현했음.
왜냐하면 cmdList->Draw... 함수에 startBufferLocation이라는 파라미터가 존재했음. 이 파라미터에 값을 던져주면, 내가 지정한 버퍼에서 특정 위치부터 읽을 수 있음.
ms sample에서 hello constant buffer를 봤음.
그런데 위와 같은 파라미터는 보이지 않음... 그냥 SetGraphicsRootConstantBufferView, SetGraphicsRootDescriptorTable 이런 함수밖에 없음.
그러면 어떻게 constant buffer에서 특정 위치를 읽을 수 있음? 없으면 결국 한 프레임에 최대 렌더링 될 수 있는 오브젝트 크기만큼 constant buffer 만들어야함??
D3D12_CONSTANT_BUFFER_VIEW 있지 않던가?
https://docs.microsoft.com/en-us/windows/win32/api/d3d12/nf-d3d12-id3d12device-createconstantbufferview
참조하세요
https://gall.dcinside.com/mgallery/board/lists/?id=github
감사합니다. 함수가 아니라 View를 이용해서 읽을 위치랑 읽을 바이트를 정하는 거였네요. 전 지금까지 cmdlist의 함수로 세팅해주는 줄 알았는데... 덕분에 다시 알아 갑니다!