2013-02-28 49 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所说,你不可能真正知道数据的实际位置;所有重要的是你可以销毁你的临时缓冲区。

无论使用何种技术,您都应该考虑目标硬件的功能。

相关问题