2013-02-28 45 views
3

我正在學習如何使用維也納組織,正如書上說,在哪裏,什麼是維也納組織使用的「OpenGL的記憶」等

」 ......您可以通過移動頂點數據釋放CPU內存到GPU上的OpenGL 內存「。

那麼,就什麼可以一GPU在這方面的處理?假設「OpenGL內存」可以存儲數百萬個多邊形的頂點數據是否可以接受?移動設備中的GPU如何?

雖然開發商都習慣把對一個CPU對內存的限制參照系,學習OpenGL的部分是具有挑戰性的,因爲我不知道很多關於GPU和從他們的硬件會發生什麼。所以當我讀到像上面這樣模糊的陳述時,這讓我感到緊張。

回答

8

OpenGL有一個抽象的設備和內存模型。而在技術上OpenGL的世界中沒有CPU和GPU內存,但是客戶端服務器內存。 OpenGL緩衝區對象位於服務器端。服務器,這只是意味着OpenGL驅動程序提取的所有內容。如果作爲緩存的GPU內存不足,則OpenGL驅動程序完全可以將數據從GPU中交換到CPU。因此,你的書指出:

「...你可以通過頂點數據轉移到GPU上的OpenGL的內存釋放CPU的內存。」

是不完全正確,如在OpenGL的緩衝對象的數據很可能駐留在CPU存儲器。

0

最小規範的要求,但一般來說,GPU內存的數量是相當廣泛的信息,你買電腦時肯定會注意到(賣家超買)。然而,正如@datenwolf所說,你不可能真正知道數據的實際位置;所有重要的是你可以銷燬你的臨時緩衝區。

無論使用何種技術,您都應該考慮目標硬件的功能。

相關問題