我正在尝试从Tango相机读取YUV数据,以便进行一些图像分析处理,遗憾的是无法使用着色器完成。我设法渲染图像但不从纹理中读取原始数据。例如,当我尝试读取包含打包Y通道的_Ytex纹理时,我只获得一系列字节,均等于205。
我试图从许多方面拦截纹理:
_OnExperimentalUnityFrameAvailable
中 VideoOverlayListener
TangoARScreen
' Update
方法
Camera对象的OnPostRender
方法
一些不太相关的地方。
总之,我尝试通过m_tangoApplication.GetVideoOverlayTextureYUV().m_videoOverlayTextureY
和m_screenMaterial.GetTexture("_YTex")
访问它,但始终获得一系列205个值。
我怀疑Tango SDK会直接在GPU内存中写入YUV值,但我很困惑为什么GetTexture("_YTex")
无法恢复它。
我可能最终只是为了提取这些数据而制作一个特定的渲染目标,但肯定可能有更直接的方式来访问视频流?
有没有人设法做到这一点?我使用的是最新的SDK版本(Ancha)