This is a demo experimental project to showcase some potencial uses of the raw depth API in the ARCore extensions using unity's ARfoundation package.
Some of these features have been used in this Depth API overview video.
ARCore Depth API is enabled on a subset of ARCore-certified Android devices. iOS devices (iPhone, iPad) are not supported. Find the list of devices with Depth API support (marked with Supports Depth API) here: https://developers.google.com/ar/discover/supported-devices.
See the ARCore developer documentation for more information.
Download the this demo app on Google Play Store today.
This sample demos requires:
If you have trouble playing it, close and reopen the project and reimport all demo shaders to resolve any dependency issues in the Unity editor. This project only builds with the Build Platform Android. Instant Preview is not enabled for Depth API yet. To test with Depth support, build the project to an Android device instead of using the Play button in the Unity editor.
You can play and test the app in editor but the Scan/ARCamera won't be disabled and will not work, use the WASD keys to move and Shit + Mouse to rotate the camera as a FPS game. the aplication will work as AR but with no background texture and no Depth features.
Individual scenes can be built and run by just enabling a particular scene, e.g. Main
. Please make sure to set the Build Platform to Android and verify that the main DemoCarousel
scene is the first enabled scene in the Scenes In Build list under Build Settings. Enable all scenes that are part of the demo user interface.
The project is set up to use the IL2CPP
scripting backend instead of Mono
to build an ARM64
app. You may be prompted to locate the Android NDK folder. You can download the NDK
by navigating to Unity > Preferences > External Tools > NDK
and clicking the Download
button.
The AR code retated are inside the folder Assets/Scripts/AR
the structure is divided in:
- Common (Common files used for all AR features)
- Controllers (AR controllers)
- Managers (AR managers)
- Occlusion (Occlusiuon reletated AR scripts)
- RawDepth (RawDepth reletated AR scripts)
A static class that contains references to all AR camera infromation, texture of the depth map, camera intrinsics, and many other depth look up and coordinate transformation utilities.
A class that enables the scan efect, it's attached tot he AR camera and will overlap the commnad buffer to add the background and also add the Depth AR Effect.
This class is used to preview the mesh creation in realtime, it uses a custom shader to build the mesh fromt he raw depth.
This class is used to build the mesh from the raw depth data.
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests.
- Fabio Toste - Creative Developer - @tostegroo - fabio.toste@jam3.com
- Higor Bimonti - Unity Developer - @hgbimonti - higor@finemug.com
- Nicolás Ezcurra - Unity Developer - @Nicolas-Ezcurra-Mediamonks - nicolas.ezcurra@mediamonks.com