【发布时间】:2017-05-13 03:01:02
【问题描述】:
我只在台式计算机上使用过 Direct3D 和 OpenGL,我的脑海中有这样一个概念,即每当需要更新缓冲区时,您需要通过 glBufferData()/glBufferSubData() 等调用将此数据发送到 GPU,并且应该不惜一切代价尽量减少这种事情。
由于 OpenGL ES 适用于手机等嵌入式系统,而且我认为这些设备没有专用的 GPU RAM,我想知道如果在一台设备 (Android) 上与另一台设备 (Android) 上编译,这样的 API 调用是否会做完全不同的事情设备(Windows 台式计算机)。无论是在 OpenGL 还是 OpenGL ES 上,这些调用看起来都是相同或相似的,我想知道我是否在 Windows 上编写我的程序,它是否可以在移动设备上运行。我的猜测是,在移动设备上,这些函数调用会将数据加载到系统 RAM 中,而在台式机上,如果 GPU 可用,它将被发送到 GPU RAM。
如果是这种情况,那么移动设备是否有优势,因为数据只保存在一个地方,从不发送到其他任何地方(即,发送到 GPU)?
【问题讨论】:
标签: mobile graphics opengl-es gpu