OpenGL ES 面试高频知识点

OpenGL 共享上下文使用场景?有哪些资源可以共享?

多线程渲染或者跨窗口渲染,共享上下文可以使得多个线程、窗口之间能够共享 OpenGL 对象(如纹理、shader 等)和状态信息,避免了在多个上下文之间频繁地进行数据拷贝和同步操作,减少资源消耗,提高性能。

可以共享的资源:

纹理;
shader;
program 着色器程序;
buffer 类对象,如 VBO、 EBO、 RBO 等 。

不可以共享的资源:

FBO 帧缓冲区对象(不属于 buffer 类);
VAO 顶点数组对象(不属于 buffer 类)。

这里解释下,在不可以共享的资源中,FBO 和 VAO 属于资源管理型对象,FBO 负责管理几种缓冲区,本身不占用资源,VAO 负责管理 VBO 或 EBO ,本身也不占用资源。

注意,每个线程同时只能绑定(eglMakeCurrent)一个 Context ,但可以按顺序切换不同 Context。

帧缓冲区对象 FBO 的作用?

FBO 即帧缓冲区对象,实际上是一个可添加缓冲区的容器,用于管理渲染到纹理或渲染到屏幕之外的其他图像缓冲区的过程。

FBO 本身不能用于渲染,只有添加了纹理或者渲染缓冲区之后才能作为渲染目标,它仅且提供了 3 种附着(Attachment

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

字节流动

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值