我正在尝试使用 GPU 来为 iPhone 创建面部跟踪器来执行性能计算。
为了使跟踪更加智能,我需要能够从着色器检索值。 然而我很难做到这一点,这可以用 iPhone OpenGL ES 实现吗?
最佳答案
从着色器获取任何输出的唯一方法(至少在 ES 中)是将某些内容渲染到帧缓冲区并从 GPU 读回结果像素值。
但是由于我不知道您的算法和实现,因此我无法告诉您如何最好地构建它以有效地返回结果。但请记住,着色器的唯一输出是渲染到帧缓冲区中的图像,无论该图像可能具有什么结构。
因此,通常最好构建算法以实现最少的 CPU-GPU 通信。因此,请考虑一下您是否确实需要了解 CPU 上的这些值,或者是否足以使用纹理或 VBO 将它们提供给 GPU 算法的其他部分,以便您可以(或多或少)高效地渲染到其中,而无需 CPU 往返.
关于ios - OpenGL ES - GLSL 返回计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12317120/