- Home /
Compatibility between ARKit plugin and iVidCapPro
Hello,
iVidCap pro is a plugin under iOS to record what happens in the scene. It uses, at the origin, openGL2. But, it should has been compatible with metal since version 1.7 in december 2016.
ARKit (the plugin) is actually only compatible with Metal. I saw a pull request under your bitbucket that try to make the compatibility with openGL 2.0.
Today if I try to use iVidCap & ARKit, my application crashes under metal (iVidCap) or I don't have any camera return from ARKit (openGL 2.0).
Is a compatibility between ARKitplugin and openGL2.0 is under the way ? How can I do to make this two compatibles ? I only have these plugins in the project I'm talking about.
Hope you can help me,
@Spooklight Spooklight did you found a way to recorv video while using the ar$$anonymous$$it? I am stuck exactly at what you describe. If you didn't found a solution we can combine forces to find one :) Thanks!
I'm actually waiting for a pull request on the Unity AR$$anonymous$$it plugin. It should make AR$$anonymous$$it compatible with openGL2.0. Due to the limitation of both technologies, i can only wait today. I haven't any knowledge about the $$anonymous$$etal API and openGL. $$anonymous$$ake AR$$anonymous$$it compatible by myself is nearly impossible.
I tried AR$$anonymous$$it with OpenGL2.0 solution, the performance isn't good enough. do you get the same result? @Spooklight
Answer by Spooklight · Sep 06, 2017 at 03:53 PM
We finally manage to make it works !
How do we did it.
First of all, we used iVidCap version 1.7 to ensure the best possible usage of the plugin.
Then, even when the ARKit team say "Use the last update on the store !", it is better to download the full projet from the bitbucket (https://bitbucket.org/Unity-Technologies/unity-arkit-plugin)
Then, go from the different commits of the openGL2.0 branch and download the file that needed to be change.
After that, used the shader and camera from the arkit plugin. You NEED to have the ARKit camera in the scene at the launch (more safe). Then go through the build settings and only used openGL2.0.
At this stage everything worked for us (XCode Beta 6)
Enjoy, Spooklight
Does this still work with the latest Xcode Version 9.2 (9C40b) and unity 2017.3.0f3
Yes it works.
You have to pass to openGL3.0 due to recent compatibility under 2017 and the AR$$anonymous$$it Framework. The shader is not rendering well in 2.0.
When you are ready for 3.0 (everything up to date), you may have to modify the shader XYCamera by yourself to match your screen. We experienced several problems we corrected in intern
Answer by Denko86 · Jan 31, 2018 at 08:37 PM
I tried using the latest Unity 2017.3 and OpenGL 3.0 ES
I manually merged the OpenGL 2.0 branch into the latest ARKit code.
The end result is that I can see the camera being rendered but it has a green tint on it. If I use the shader provided in OpenGL branch in Unity it will tint Red.
float4 ycbcr = float4(y, tex2D(_textureCbCr, texcoord).ra, 1.0);
I've traced it down to this line of code, it appears to be converting the YUV wrong or something? Why would it shade it green.