gpt4 book ai didi

ios - 什么是 iOS OpenGL ES 2.0 离屏帧缓冲区对象?

转载 作者:行者123 更新时间:2023-11-29 13:27:48 25 4
gpt4 key购买 nike

在 iOS 中,很容易设置 OpenGL ES 2.0 渲染到纹理,然后将这些纹理用于后期处理 channel 或用作后续渲染 channel 的纹理。这似乎是跨 OpenGL 实现的一种相当普遍的方法。一切顺利。

根据 Apple 的 iOS OpenGL ES 编程指南(参见第 28 和 29 页),您还可以创建并绘制到多个屏幕外帧缓冲区对象。他们建议您这样做是为了执行屏幕外图像处理。但是,我找不到也无法描述在渲染后如何访问缓冲区以进行图像处理或任何其他目的。

这些屏幕外缓冲区能否与非 OpenGL 框架一起用于图像处理?这些缓冲区可以被 CPU 读回吗?

有没有人有任何指示或例子?

最佳答案

图像处理是屏幕外帧缓冲对象 (FBO) 的一种可能用途,但还有其他应用。

对于图像处理,您通常会渲染到由纹理支持的 FBO。渲染到该纹理后,您可以将其拉入图像处理管道的第二阶段,或者将其用作 3-D 场景某些部分的纹理。例如,我的 GPUImage 开源框架为应用于传入图像或视频帧的每个过滤器阶段使用纹理支持的屏幕外 FBO。下一阶段然后拉入该纹理并将过滤后的结果渲染到它自己的纹理支持的 FBO。

正如我所说,可以有其他应用程序进行离屏渲染。其中包括延迟照明(Apple 在 2011 年 WWDC OpenGL ES 视频中有一个相当令人印象深刻的示例)和缓存查找值的计算以供以后引用。我将后者用作我的 Molecules 应用程序中的优化,以加速环境光遮蔽照明纹理在我的原子球表面上的映射。我没有为每个原子的每个片段执行一组计算,而是为一个通用球体渲染一次它们,然后在原子片段着色器中查找结果。

关于ios - 什么是 iOS OpenGL ES 2.0 离屏帧缓冲区对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12665173/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com