gpt4 book ai didi

android - 是否有可能在 opengl es 2.0 中获取存储在纹理中的数据

转载 作者:行者123 更新时间:2023-11-30 03:53:15 30 4
gpt4 key购买 nike

我现在正在编写一个程序,在 GL 着色语言的帮助下使用 GPU 生成纹理。但是,我想知道是否可以获取存储在纹理中的数据并将其写入数组?

最佳答案

这没什么大不了的,如果你有 glGetTexImage*() .

如果 glGetTexImage*() 不可用,您必须将带纹理的四边形渲染到附加到 FBO(如果支持)的渲染缓冲区,或渲染到后台缓冲区并使用 glReadPixels() 从其中一个读取它渲染目标。如果渲染目标的尺寸不够大,则必须单独渲染和检索多个图 block 。

在实现任何一种方法时,请注意其他状态,这些状态决定像素实际写入的方式和位置:

  • GL_PACK_ALIGNMENT(图像行对齐;1、2、4 或 8 字节)需要为请求的图像大小分配适当的内存。例如,24 位 DIB (.bmp) 使用 4 字节的行对齐。每个像素有 3 个字节,如果 (image.width * 3) % 4 != 0,则末尾需要填充。额外填充字节的总量为:

    readSize.y * ((alignment - readSize.x % alignment) % alignment)

  • GL_PIXEL_PACK_BUFFER,像素传输的目标缓冲区绑定(bind)(在您的情况下可能未使用并明确设置为 0)。

关于android - 是否有可能在 opengl es 2.0 中获取存储在纹理中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13795076/

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