繁体   English   中英

将字节数组设置为统一texture2d的快速方法

[英]Fast way to set byte array to unity texture2d

在unity3d中,我从相机(彩色相机设备)获取图像作为插件的字节数组,我希望在屏幕上实时显示图像。

如果我使用Texture2D.SetPixels32来制作纹理,它会显着降低fps (从80到10)。

//First convert byte[] to color[]
  colorr = GetColor(imageBuffer);

  imageColor.SetPixels32(colorr);
  imageColor.Apply();   // fps reduced here

我想我需要在GPU上使用着色器执行此操作。

那么更快的解决方案是什么? 如果回答是使用着色器,可以给出样本。

谢谢。

我使用openGL完成了它。 只需编写一个Unity的插件并从Unity获取Texture2D NativeID并将其发送到插件然后使用openGL将字节设置为纹理! 这是惊人的 ! FPS从10增加到50! 你也需要知道你必须在OpenGL模式下运行游戏,使用“-force-opengl”来使用opengl函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM