In unity3d I get image from camera (color camera device) as byte array from a plugin , and I want show image in real-time in screen .
If i use Texture2D.SetPixels32
for making a texture, it decrease fps dramatically ( from 80 to 10).
//First convert byte[] to color[]
colorr = GetColor(imageBuffer);
imageColor.SetPixels32(colorr);
imageColor.Apply(); // fps reduced here
I guess I need to do this with a shader on GPU .
So what is solution to do this faster ? If answer is using shader , can give a sample .
Thx.
I have done it with using openGL. Just write a plugin for unity and get Texture2D NativeID from unity and send that to the plugin then use openGL to set bytes to the texture ! It was amazing ! FPS increased from 10 to 50 !!! also you need to know that you have to run games in OpenGL mode, with "-force-opengl" to use opengl functions.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With