OpenGL ES 可不可以实现多线程共享 纹理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenGL ES 可不可以实现多线程共享 纹理相关的知识,希望对你有一定的参考价值。

OpenGL ES 多线程共享是在创建 Context 的时候配置的

OpenGL 多线程共享 wglShareLists 注意两个参数的顺序,有些网上的资料弄错了;多线程共享需要注意,每个线程需要各自调用 glFlush 或者 glFinish
参考技术A 你仔细想想. 为啥要在多个线程里共享资源呢?有什么意义么?屏幕就一个.你线程再多.也要画在同一个屏幕上.画之前统一Clean ,画完了统一SwapBuffer. 你开线程A画左面.开线程B画右面又有多大意义呢?
唯一还说的过去的用法是 线程A跑游戏逻辑. 线程B加载庞大的图片资源.(比如很多游戏采用的延时加载技术).但这样GL底层会写的很复杂.得不偿失.本回答被提问者采纳
参考技术B 如果纹理图片一直要更换就在初始化时一次性全部加载,在画时选项绑定;如果同一张图片不同贴图方式,在画前改变纹理坐标就可以了。 参考技术C 你仔细想想. 为啥要在多个线程里共享资源呢?有什么意义么?屏幕就一个.你线程再多.也要画在同一个屏幕上.画之前统一Clean ,画完了统一SwapBuffer. 你开线程A画左面.开线程B画右面又有多大意义呢?
唯一还说的过去的用法是 线程A跑游戏逻辑. 线程B加载庞大的图片资源.(比如很多游戏采用的延时加载技术).但这样GL底层会写的很复杂.得不偿失.

以上是关于OpenGL ES 可不可以实现多线程共享 纹理的主要内容,如果未能解决你的问题,请参考以下文章

安卓下多线程OpenGL共享Context

安卓下多线程OpenGL共享Context

安卓下多线程OpenGL共享Context

8个纹理单元的opengl es多纹理着色器的思考

OpenGL ES 多目标渲染(MRT)

OpenGL 多纹理混合