我正在使用OpenGL2.1开发一个OpenGL应用程序,并希望通过线程上传纹理。
到目前为止我做了什么:
一切都运行正常,只是当纹理上传发生时我注意到一个小的“滞后”!我知道这是因为驱动程序必须同步两个上下文。问题是我希望它流式传输纹理。我不想稍后更新纹理。我只是想在后台加载纹理,同时显示“几乎平滑”的加载动画,而不会拖延整个应用程序。
这就是我搜索的点,发现PBO可用于像素数据的DMA数据传输。是否可以使用PBO进行纹理上传?如果是这样,怎么样?
答案 0 :(得分:3)
您不需要第二个上下文来上传纹理数据异步。只需确保在触发上传后不立即使用缓冲区,否则它将停止等待副本完成。
以下是此过程的示例:http://www.songho.ca/opengl/gl_pbo.html#unpack
以下是关于PBO是什么以及如何使用它们的更多信息:http://www.opengl.org/wiki/Pixel_Buffer_Object