Direct3D11을 많이 읽었습니다 (스택 오버플로를 포함하여 여기를 포함하여). 그리고 모든 연구에서 나는이 질문에 결정적으로 대답 할 수 없었습니다.Direct3D11은 어디에서 리소스 객체를 할당합니까?
리소스 객체 (즉, 버퍼 또는 텍스처 객체)가 생성됩니다 (예 : pDevice-> CreateBuffer()). 시스템 RAM 또는 GPU의 Video-RAM? 아니면 내가 자원 객체의 근본적인 본질을 완전히 오해하고 있는가?
리소스를 채우는 데이터 (예 : 버텍스 및 인덱스 배열)는 프로그래머가 배치 한 위치에 저장되지만 일단 데이터를 복사 한 곳의 리소스에 매핑하면 분명히 저장됩니다. (필자는 리소스가 읽기/쓰기 보호를 위해 매핑되고 매핑되지 않아야하므로 매핑 된 데이터가 실제로 VRAM에 복사된다는 것을 전제로합니다). 또한 Resource 객체 자체는 어디에서 인스턴스화됩니까?
미리 도움을 청하십시오!
당신이 몰라서 알아낼 수없는 사실은 DirectX에 대한 핵심입니다. 그래서 GPU 대신 소프트웨어 렌더러를 사용하고, 예를 들어 충분한 메모리가없는 비디오 카드를 다루는 것과 같은 일을 할 수 있습니다. 이 질문에 대한 답을 알기를 원하지는 않습니다. 구현 세부 사항을 추상화하는 것은 좋은 API의 핵심입니다. –
좋은 점은 DirectX 또는 다른 API를 사용하여 작업 할 때 반드시 염두에 두어야 할 점입니다. 감사! 질문은 물론 실용적인 것만 큼 순수하게 학술적 인 질문이었습니다. –