Changelog
All notable changes to the ARFoundation Integration package will be documented in this file.
Latest Release
ARFoundation Integration [0.6.42] - 2024-04-29
Added
- You can decide the minimum amount of time between one frame event and the next, via
TimerMsproperty. - Two frame "providers" have been added:
CameraTextureProviderprovides a texture from ARFoundation, viaOnNewTextureReadyevent. Equivalent to previousFrameFeeder.CameraFrameProvideris an extended version providing also additional Frame information, viaOnNewFrameReadyevent. We strongly suggest to use this last method to obtain matrices, since on iOS it asks for such information directly at the native level to ARKit (which has been proven to be more correct than via ARFoundation).
- When using
CameraFrameProvideryou can set your ownSessionOriginTransformas base matrix transform, or set it to null to set it to identity.
Changed
FrameFeederis now renamed asCameraTextureProvider. You can add it to the scene or simply do:
var textureProviderComp = CameraTextureProvider.GetOrCreateComponent();
textureProviderComp.TimerMs = 1000; // [optional] adds delay: get a new texture minimum every 1 sec (the first texture is returned immediately)
textureProviderComp.OnNewTextureReady += texture => _manna.ProcessVideoFrameTexture(..., ..., ...);
- You can similarly use
CameraFrameProvider:
var textureProviderComp = CameraFrameProvider.GetOrCreateComponent();
textureProviderComp.OnNewFrameReady += frame => _manna.ProcessVideoFrameTexture(frame.Texture, frame.ARProjectionMatrix, frame.ARWorldToCameraMatrix);
Fixed
- Fixed a bug on iOS where matrices are not precise enough in time when getting from
ARCamera. UseCameraFrameProviderfor better results on iOS!
Removed
- Dependency from Manna removed.
- Method
AttachMannaInstance(manna)has been removed, to remove dependency from Manna.
Previous Releases
ARFoundation Integration [0.6.34] - 2023-07-31
Added
This is a new package aimed at Unity developers using the Auki SDK with ARFoundation. This is the first released version, which provides easy integration starting from Manna 0.6.34, removing the need to write and keep updated the code needed to pass frames from the camera feed.
Example of usage (after instantiating Manna):
var frameFeeder = manna.GetOrCreateFrameFeederComponent();
frameFeeder.AttachMannaInstance(manna);
or alternatively, if you place the Packages/Auki Labs ARFoundation Integration/Runtime/Manna/FrameFeederGPU script yourself on ArCameraManager gameobject:
var frameFeeder = arCameraManager.gameobject.GetComponent<FrameFeederBase>();
frameFeeder.AttachMannaInstance(mannaInstance);
We also provide a property to limit the frequency of frames being fed to Manna. You can set the property FeedInterval and set it to the desired minimum interval (in seconds) between two subsequent frames being processed. By default (0), all frames from ARFoundation will be processed by Manna.
You are also free to implement your own CustomFeeder by inheriting from FrameFeederBase and simply calling:
var frameFeeder = manna.GetOrCreateFrameFeederComponent<CustomFeeder>();