Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unity3d m_VideoOverlyTextrey像素无效,但纹理使用GUI.DrawTexture正确渲染_Unity3d_Google Project Tango - Fatal编程技术网

Unity3d m_VideoOverlyTextrey像素无效,但纹理使用GUI.DrawTexture正确渲染

Unity3d m_VideoOverlyTextrey像素无效,但纹理使用GUI.DrawTexture正确渲染,unity3d,google-project-tango,Unity3d,Google Project Tango,我试图从相机获取YUV图像,但当我试图读取由getVideoOverlyTextureYUV()提供的YUVTexure中的像素时,所有像素都设置为“205”。奇怪的是,我可以用GUI.DrawTexture(sometrect,\u texture.m\u videoOverlyTextrey)绘制“Y”纹理我可以看到图像就在那里,我就是不能用getPixels()读取它 我还在项目中使用探戈AR摄像头预置,因此m_useExperimentalVideoOverlay设置为true。我们试图

我试图从相机获取YUV图像,但当我试图读取由
getVideoOverlyTextureYUV()
提供的
YUVTexure
中的像素时,所有像素都设置为“205”。奇怪的是,我可以用
GUI.DrawTexture(sometrect,\u texture.m\u videoOverlyTextrey)绘制“Y”纹理我可以看到图像就在那里,我就是不能用
getPixels()
读取它

我还在项目中使用
探戈AR摄像头
预置,因此
m_useExperimentalVideoOverlay
设置为true。我们试图使用非实验性的API,但随后AR摄像头预设停止工作


由于任何人都能够使用
IEExperimentAltangoVideoOverlay

访问Unity中的图像数据,因此
GetVideoOverlayTextureYUV
中的纹理与常规Unity纹理2D不同。在Tango Unity SDK中,它在统一级别上创建TraceU2D对象,并将TrutUID传递给本机C++ API来填充。因此,纹理像素值不会存储到Unity,而是直接从本机代码复制到GPU内存中,Unity纹理只有它的textureID。这就是为什么它可以被渲染出来,但不能被读取


要从彩色照相机获取实际字节缓冲区,应使用。回调返回一个YUV缓冲区,RGB的转换函数与

中的相同。是的,我们尝试过这样做,但由于
AR摄像头
预置已经使用了ItagoExperimentAltangoVideoOverlay,我们无法同时使用这两个接口,可能是有原因的。因为我需要把缓冲区发送给本地插件,我尝试用
TangoService\u connectOnFrameAvailable
直接连接到本机插件中的帧回调,它现在似乎正在工作。本机
TangoService\u connectOnFrameAvailable
也是我们用来获取字节缓冲区的,但我认为unity sdk目前在这方面有点混乱,我已经为下一个版本做了一个清理更改,所以在下一个版本之后应该更干净。。