我對Direct3D11(這裏包括堆棧溢出!)一直在閱讀了很多,在我所有的研究,我一直無法確鑿地回答這個問題:Direct3D11在哪裏分配資源對象?
當資源對象(即緩衝區或者一個Texture對象),例如用pDevice-> CreateBuffer()創建,它存儲在哪裏?在系統RAM上還是在GPU的視頻RAM上?還是我完全誤解了Resource對象的基本性質?
很顯然,無論您將何處填充資源(比如頂點和索引數組)都存儲在哪裏 - 程序員 - 將其放置在其中,但是一旦將該數據映射到資源的複製位置? (我假設,因爲資源必須被映射並且未被映射以用於讀/寫保護,所以映射的數據實際上被複制,可能被複制到VRAM)。而且,Resource對象本身在哪裏實例化?
在此先感謝您的幫助!
事實上,你不知道也找不到是DirectX的核心。這使得它可以像使用軟件渲染器而不是GPU來處理事情,例如處理沒有足夠內存的視頻卡。你不想*知道這個問題的答案。抽象實現細節是任何好的API的核心。 –
這是一個很好的觀點,在使用DirectX或任何其他API時,我一定會牢記這一點。謝謝!當然,這個問題與純粹的學術問題一樣,當然是:) –