Android OpenGL ES 总结之FBO

因为工作上用到了OpenGL ES,不得不从头开始学OpenGL,虽说之前有看过图形学相关的,但是理论太抽象了,还是要实践。

别人都说计算机图形学是程序员的浪漫,但是作为一个天赋不高的普通码农,只能一遍又一遍的硬啃具体实现,这东西太麻烦了,单单只是绘制一个三角形,就要写一堆代码,然后不写又记不住具体步骤。虽说有一堆的封装抽象,正所谓,纸上得来终觉浅,绝知此事要躬行。头发就是这么掉光的。

废话就到这,大家请看VCR。

这里记录下FBO的一些流程,有空再将具体实现补充上去:

典型的使用FBO的流程如下:

  1. 创建一个帧缓冲对象 (FBO) 和一个纹理 (我们称它为fboTextureId)。
  2.  绑定FBO,并将fboTextureId设置为FBO的颜色附件。
  3. 设置OpenGL视口大小与你的目标纹理(fboTextureId)相同。
  4. 渲染你的原始纹理(或其他内容)到FBO。因为FBO是当前绑定的,所以渲染的输出将被写入fboTextureId。
  5. 解绑FBO,将OpenGL上下文返回到默认的帧缓冲。
  6. 你可以选择渲染fboTextureId到屏幕,或者从fboTextureId捕获图像。

因此,你首先不是在默认的帧缓冲中渲染原始纹理,而是在FBO中渲染原始纹理,这样结果就保存在fboTextureId中。然后,你可以选择使用这个纹理做任何你想做的事,包括渲染到屏幕或捕获到位图。

总的来说,帧缓冲对象允许你将渲染的结果重定向到纹理,而不是直接输出到屏幕。这为后处理、截图和其他任务提供了很大的灵活性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值