VOID SLAM (Markerless)
Note
Support:Android / iOS
Tips: VOID SLAM is a multiple fusion technology independently developed by VOID AR, which requires the inertial measurement unit (IMU). Due to the IMU is not available in PC, we cannot test VOID SLAM in PC, therefore we need to build it to Mobile platform ( Android or iOS ) for getting effect experience.
The Foreword ( ★★★Very Important★★★ )
Important
When using the VOID SLAM technology, please be sure to “make the bottom of the model as closed to the ground as possible” in order to get better experience of VOID SLAM presentation.
Please read CAREFULLY from [Step 8. Make the bottom of the model closed to the ground for better SLAM experience] in this tutorial.
Comparison between closed to ground and non-closed to ground:
Examples in GIF:
Part 1. Introduction
VOID SLAM technology, without the markers, you can freely place virtual content in the real environment to experience AR effect.
Part 2. Reading Guidelines
This tutorial is mainly to introduce how to process in Unity environment.
We assume that readers have basic experience in app development and unity usage.
For more unity3d usage information, please visit the official website of unity3d documentation.
Part 3. Development Environment
You need to install and prepare your development environment as below before you start.
OS
- Windows 7 or higher
- OS X 10.10 or higher
Unity Version Support
Unity3D Version | VOID AR SDK Full Features |
---|---|
5.6.x | Support All Features |
2017.x | Support All Features |
2018.x | Support All Features |
2019.1.x | Support All Features |
2019.2.0 | Support All Features |
Note
Unity3D of this tutorial: Unity 2017.4.13
Unity3D Download: https://unity3d.com/cn/get-unity/download/archive
Part 4. Implementation process
Step 1. Open new Unity project
Open Unity with new project. Fill the Project name with “VOID SLAM
”, and select the location, and click [ Create project ]
.
Step 2. Import VOID AR SDK
Select[ Assets ] -> [ Import Package ] -> [ Custom Package... ], import VOID AR SDK.
Select the downloaded SDK file (.unitypackage), and click [ Open ]
button.
Click [ Import ]
from the prompted window. It takes minutes during the import process.
If there is a prompt window of “API Update Required” interface,please click [ I Made a Backup, Go Ahead! ]
.
Step 3. Delete Main Camera
Note
When you open the Unity3D, you will see the new scene in default. The new scene has two GameObjects: a "Main Camera" and a "Directional Light". We need to use the ARCamera from SDK, so please delete the default Camera.
Right click the "Main Camera
” from the scene, and select [ Delete ]
.
Step 4. Drag the prefabs “ARCamera”
Expand the directory [ Assets ] -> [ VoidAR ] -> [ Prefabs ],
and drag the prefabs “
ARCamera
” to the scene.
When you finish the process, it shows as below:
Step 5. ARCamera Setup
Select ARCamera, and look up in the “Inspector
” area on the right side, setup “Void AR Behaviour (Script)” properties.
Set MarkerType
= "Markerless"
Step 6. Set App License Key
Open the website of Cloud platform to register an account, and login
.
Website Url:https://cloud.voidar.net
Go to the Cloud plaform, and click [ Create SLAM application ]
.
Click [ Create application ]
.
Fill in the AppId in the popup window, and click [ Save ]
.
Note
Since the AppId is unique, please setup your AppId here, such as "com.VOIDAR.SLAM"
Warning
Make sure that your AppId and Bundle Identifier must be the same. Otherwise, when you need to remove the watermark, it will not work properly.
After that, you will get your “AppKey
”.
Back to Unity, select ARCamera, and check the Inspector
on the right side, and continue with the setup of “App License Key”.
Step 7. Add a model
Right click the scene, select [ Create Empty ]
from pop menu.
Create a “GameObject
”.
Select the “GameObject
”, and adjust its position to (0,0,0).
Right click the “GameObject
”, select “3D Object
” from pop menu, and click [ Sphere ]
.
Then you create a 3D model "Sphere
" under the GameObject.
We need some adjustments with the size and position of the model for a suitable model presentation.
Position Adjustment
Select the “
Sphere
”, adjust its Position. ( X , Y , Z = 0 , 0 , 0 )Size Adjustment
There are 2 ways fo size adjustment.
Separate Adjustment
: Select one model to adjust its size. Separate Adjustment is suitable for projects with a small number of models or targeted adjustments are needed.Select the “
Sphere
”, adjust its Scale. ( X , Y , Z = 0.1 , 0.1 , 0.1 )Global Adjustment
: The size of the AR content is adjusted as a whole. Global Adjustment is suitable for projects with a large number of models or with complex scene.Select "
ARCamera
", adjust SceneScale.Note
This tutorial uses Separate Adjustment, so
the setting keeps the default value (SceneScale=1)
Step 8. Make the bottom of the model closed to the ground for better SLAM experience
Important
When using the VOID SLAM technology, please be sure to make the bottom of the model as closed to the ground as possible in order to get better experience of VOID SLAM presentation.
Warning
There are 2 ways for making the bottom of the model closed to the ground:
Adjust the center of the model
Using 3d max or some other software to change the center of the model to bottom of the model.
We will not introduce more details here. Please go to “Change the center of the model” for reference.
Add a reference ground plane, and adjust the model’s position in Unity3D
Usually the center of the model created in Unity3D is locating on the middle center of the model. You can create a reference plane, and adjust the model’s bottom surface next to the plane surface.
We use the second way to set up in this tutorial.
The new created “Sphere” model’s center is just in the middle center of this object.
Create a Plane for reference. Right click the scene, and select “3D Object
” from pop menu, and then click [ Plane ]
.
Select the “Plane
”, and adjust its position to (0,0,0).
Select the 3D model “Sphere
”, drag its coordinate to adjust its positon to make its bottom surface close to the Plane.(X , Y , Z = 0 , 0.05 , 0)
Make the bottom surface of the object closed to the Plane.
Right click the “Plane
”, click [Delete]
to delete the reference Plane, the adjust is done.
Step 9. Trigger Setup
First select “ARCamera
”, then hold the mouse left button on “GameObject
” and drag it to the parameter of “MakerlessNode
”.
After setup, it shows as below:
Select “GameObject
”, click [ Add Component ]
to add “Markerless Help“ script component.
After binding, it shows as below:
Step 10. Save Scene
Select [ File ] -> [ Save Scenes ]
, click for saving your setup.
Setup the name as “VOID SLAM
”, and click [ save ]
button.
Step 11. Publishing Builds
Build Process includes Android
and iOS
.
Android
First, switch the PC platform to Android platform from [ File ] -> [ Build Settings... ]
.
Select Android tag, if the [ Switch Platform ] button is grey, you need to download the Unity Android Support
. Please click on the right side of the [ Open Download Page ]
button, download and install.
Click [ Switch Platform ]
button, switch the platform to Android.
After switch process, close the Build Settings interface first, and continue with packing.
Select [ Edit ] -> [ Preferences... ]
, setup the preferences parameters.
Select “External Tools
” option, setup Android SDK and JDK。
Note
If you do not have SDK and JDK, please click [ Download ]
from the interface, it will guide you to download from the prompted website.
Or you can also download from links below:
SDK
: https://developer.android.com/studio/index.html
JDK
: https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
After the installation of SDK and JDK, you are able to setup their directory.
Select ARCamera, and look up in the “Inspector
” area on the right side, setup “Void AR Behaviour (Script)” properties.
Set Camera
= "后置摄像头"(Rear camera)
Select [ File ] -> [ Build Settings... ]
, cancel all default scenes, and click [ Add Open Scenes ]
button to add current scene into the build area.
It shows as below:
Setup parameters
Click [ Player Settings... ]
button, check the “Inspector
” area, setup the parameters as below or as your needs.
Set Company
= "VOIDAR"Set Product Name
= "VOID SLAM"-
Important
Cancel the selection of “Multithreaded Rendering” !
-
Important
Set Bundle Identifier
= "com.VOIDAR.SLAM" (The Bundle Identifier must be as same as the AppId you setup in Step 6. Otherwise, when you need to remove the watermark, it will not work properly.)
Finish the settings, and click [ Build ]
button.
Set the file name as “VOID SLAM
”, and click [ save ]
button to start building.
It takes minutes while building, please wait...
When the build is done, it will generate an apk file “VOID SLAM.apk
”.
Android Build is completed.
iOS
iOS Build requires Mac device ( such as MacBook Pro、MacBook、iMac、Mac mini etc. )
Switch the platform to iOS platform in Unity, and build Xcode project.
Warning
It is recommended to use Mac device to build Xcode project. If previously you make the project in Windows environment, you can export the Unity project as a unitypackage, or copy it to Mac device and build for xcode project.
Launch Unity and open
the saved or copied VOID SLAM project
. ( Skip this step if project opened already )
Click [ Open ]
button to open the project.
Switch to iOS platform in Unity, click [ File ] -> [ Build Settings... ]
.
Select iOS tag, if the [ Switch Platform ] button is grey, you need to download the Unity iOS Support
. Please click on the right side of the [ Open Download Page ]
button, download and install.
Click [ Switch Platform ]
button, switch the platform to iOS.
Click [ Player Settings... ]
button after switch.
Important
Cancel the selection of “Multithreaded Rendering”!
Close the Build Settings interface, select ARCamera, check the “Inspector
” area on the right side, setup the "Void AR Behaviour (Script)” properties.
Set Camera
= "后置摄像头"(Rear Camera)
Select [ File ] -> [ Build Settings... ]
, cancel all default scenes, and click [ Add Open Scenes ]
button to add current scene into the build area.
It shows as below:
Finish the settings, and click [ Build ]
button.
Set the project folder name “Output
”, and click [ Save ]
.
Open
the Xcode project.
Setup parameters
Filling in your configurations: your certificate, deployment target.
Click [ Unity-iPhone ]
on the left side, config the parameters as below or by your customization:
Display Name
= "VOIDAR_Test"-
Important
Set Bundle Identifier
= "com.VOIDAR.SLAM" (The Bundle Identifier must be as same as the AppId you setup in Step 6. Otherwise, when you need to remove the watermark, it will not work properly.) Version
= "1.0"Build
= “1.0”Team
= “Your Certificate”Deployment Target
= “8.1”
Add Accelerate.framework
Select General tag and scroll down, click the "+
" in the "Linked Frameworks and Libraries".
Select “Accelerate.framework” from the prompted window, and click [ Add ]
.
After doing that, you will see “Accelerate.framework” from the list of "Linked Frameworks and Libraries" as below:
Add camera usage privacy
Select “Info” tag, click the "+" below the "Supported interface orientations". Select “Privacy - Camera Usage Description
” in the prompting list.
Set Enable Bitcode = “No”
Select ”Build Settings” tag, set Enable Bitcode = “No
”.
Cancel armv7
Select "Build Settings" tab, expand Architectures, and select "Other...
".
The pop-up interface, select "armv7" and click "-
".
After canceling, the display is as below.
Connect iphone or ipad to the Mac device, Click [ Run ]
.
After building, there will be an application “VOIDAR_Test
” built into your iphone or ipad.
The iOS build is done.
Part 5. Procedure of Use
After building, you can run it in your mobile device.
- Face to a surface: For better experience and performace, please face the camera to a surface first before clicking [ Start ].
- Click [ Start ]: Lauch the VOID SLAM (Markerless), initialize the virtual objects. If you need to change another environment, please face the camera to the new surface and click [ Start ] again.
By here, VOID SLAM ( Markerless ) process is done.