gpt4 book ai didi

ios - 在哪里使用 'GL_EXT_color_buffer_half_float' ?

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

现在,iOS 支持名为'GL_EXT_color_buffer_half_float'的扩展,它可以让glRenderbufferStorage 的参数接受半浮点格式。

但是,在 iOS 中,renderbuffer 应该像这样连接到 View 的 CAEAGLLayer:

- (BOOL) renderbufferStorage:(NSUInteger)target fromDrawable:(id)drawable

并且只能为一个帧缓冲区创建一个渲染缓冲区。所以,我想我应该创建另一个帧缓冲区来附加一个新的渲染缓冲区,并指定它的内部格式为“半 float ”。我说得对吗?

另一个问题,glTexImage2D 可以使用另一个扩展'OES_texture_half_float',我们已经可以创建直接附加到帧缓冲区的半浮点纹理。看来我们不需要渲染附加到帧缓冲区的半浮点渲染缓冲区。那么'GL_EXT_color_buffer_half_float'的使用场景是什么?

最佳答案

渲染缓冲区不必连接到 CALayer。很多时候您需要进行某种离屏渲染,在某些情况下,半 float 输出类型会很有用。

Apple 在 WWDC 2011 OpenGL ES session 上展示了一个这样的例子,他们展示了在 iPad 2 上工作的延迟照明。Kearwood Gilbert 在 a blog post here 中描述了这项技术。 , 尽管只有标准的每 channel 8 位颜色深度。 Simon Yeung 在 his article here 中展示了如何使用半 float 目标执行此操作.

就个人而言,我将其用于机器视觉中的图像处理应用程序。例如,我最近在研究霍夫变换线检测器 (based on the work of Dubská, et al.),其中一个步骤需要在平行坐标空间中检测局部最大值。使用标准加法混合来累积 Hough 变换投票会使我的 RGBA 色彩空间的 8 位颜色 channel 饱和,但是半 float 会给我更多的动态范围来挑选出真正的局部最大值。使用它可以大大降低此过程中的噪音(尽管 iOS 6 的新帧缓冲区读取操作可能让我使用自定义混合来编码四个颜色 channel 中的更高动态范围值)。

渲染为半浮点输出确实会产生一些性能影响,但它可能是实现某些效果的唯一实用方法。

关于ios - 在哪里使用 'GL_EXT_color_buffer_half_float' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16260834/

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