gpt4 book ai didi

iphone - OpenGL ES 2.0 :glReadPixels() with float or half_float textures

转载 作者:行者123 更新时间:2023-12-03 19:45:08 25 4
gpt4 key购买 nike

我正在为 iPhone (iOS 4.1) 编写一个 OpenGL ES 2.0 应用程序。在着色器中完成的计算结束时,我需要将一些数据写回 CPU。据我所知,这可以通过 glReadPixels() 来完成。为了保持精度,我想在着色器之间使用 half_float 或 float 纹理,这似乎是由扩展支持的。

问题:是否可以使用 glReadPixels() 读取 float 或 half_float 纹理?

谢谢

拉尔斯

最佳答案

我也曾面对过这个问题。对于 iOS,您可以使用 GL_EXTENSIONS 参数检查可用扩展列表 - GL_OES_texture_float 必须存在。但!根据specification这并没有提供从 GPU 读取浮点值的机会。这是来自 glReadPixels() 文档:

Only two format/type parameter pairs are accepted. GL_RGBA/GL_UNSIGNED_BYTE is always accepted, and the other acceptable pair can be discovered by querying GL_IMPLEMENTATION_COLOR_READ_FORMAT and GL_IMPLEMENTATION_COLOR_READ_TYPE.

因此,您可以使用以下代码检查可以读取的可用类型/格式:

GLint ext_format, ext_type;
glGetIntegerv(GL_IMPLEMENTATION_COLOR_READ_FORMAT, &ext_format);
glGetIntegerv(GL_IMPLEMENTATION_COLOR_READ_TYPE, &ext_type);

关于iphone - OpenGL ES 2.0 :glReadPixels() with float or half_float textures,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5788197/

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