我正在设计一个使用Renderscript的算法实现。可以使用OpenGL ES着色器计算算法,但结果必须是浮点数,或者至少是半浮点数。 iOS中支持使用该类型映射GPU内存,但从我从阅读Android源代码中收集的内容来看,Android中的 gralloc / GraphicBuffers 仅支持无符号字符数据。
在具有OpenGL ES 3.0或相应扩展的设备中,实际上是否可以在纹理内存中创建具有浮点类型的分配,将其用作目标然后从中读取结果?如有必要,我可以使用NDK的Renderscript。
谢谢。
答案 0 :(得分:0)
这取决于。 RenderScript支持浮点分配。您可以使用内核输入,输出和get / setElementAt来读/写它们。
纹理采样器支持仅限于UCHAR缓冲区。因此,如果您需要的不仅仅是点过滤,则需要使用rsGetElementAt_float4()构建它。 (或您选择使用的任何数据类型)。