# Concepts and Definitions
In this part of the documentation, we describe core elements and concepts used in the Wikitude SDK for Unity.
# AR Bridge
The new AR Bridge feature allows developers to integrate native AR SDKs such as ARKit and ARCore with advanced image and object tracking functionality from the Wikitude SDK. When enabled, the camera configured as
AR Camera will be driven by AR Bridge, while the
Drawables will be driven by the Wikitude SDK.
The Wikitude SDK provides a built-in connection to these native SDKs through the
Internal AR Bridge implementation. This is a ready-made solution that just needs to be enabled.
As an alternative, a
Plugin implementation can be chosen, which allows the developer to integrate with other positional tracking SDKs. As an example, we provide integration with Unity's AR Foundation plugin.
# Real-world Scale
The Wikitude SDK can be configured to work with real-world scale, which has the benefit that augmentations can be authored with a consistent scale that will be preserved when used on different targets.
# Image targets
To configure image targets to use a real-world scale, the first step is to properly set the
Physical Target Height for each target in your collection. This can be done either in Wikitude Studio, or using the Target Collection Editor directly in the Unity Editor. After that, please make sure that the
Scaling Mode on your
ImageTrackable is set to absolute.
# Object Targets
For object targets, the only requirement is to scale the point cloud. An object target that is sized 0.5 units will correspond to actual size of 50 cm. Object Targets can be re-scaled using Wikitude Studio Editor Point Cloud transform (opens new window).
Recognition describes the process of finding an image or object in the camera viewfinder. For augmented reality purposes, it is not enough to only identify the object or j the bounding box of the object. The position and orientation of the object need to be detected accurately as well. This capability distinguishes AR recognition significantly from other recognition or classification services.
Recognition will always act as the starting point for tracking the object in real-time - this is also referred to as initialization.
The Wikitude SDK has two different recognition methods:
- Automatic initialization - recognition of the object from any angle and distance without any guided user interaction
- Alignment initialization - recognition of the object from a specific viewpoint through guided user interaction.
# Automatic initialization
Automatic initialization is the default mode of the Wikitude SDK for both image and object trackers. It is the most natural behavior for users, and as they point the camera towards the target the position and orientation will be detected automatically. The tracking of the target will start seamlessly. When recognizing a single object from a set of objects (e.g. an object database - wto - containing 10 objects) using the automatic initializer is a must.
# Alignment initialization
The alignment initializer can be used for objects that are hard to recognize automatically (usually objects that have no clear texture or texture is unreliable). An unreliable texture could be an object that has different colors or areas that keep changing (e.g. mud, stickers,...). The alignment initializer adds an element in the UI that signals the user from which viewpoint (perspective) the object can be recognized and tracking can be started. This visual guide can be helpful to communicate what the user is expected to do. The actual UI implementation of the alignment initializer can be freely chosen by the developer and can range from showing an outline to a rendered 3D view that can be manipulated by the user.
# Tracking for Augmented Reality
To anchor content to a specific real-world object it is necessary, that an augmented reality experience "understands" where this kind of object is placed in the real-world. This process is commonly referred to as tracking. Tracking in an ideal case happens in real-time (minimum every 33ms - or 30 frames per second), so that the target is followed very accurately. There are many trackers available today, ranging from trackers that follow a face, hands, fingers, images, or generic object. All of them have in common, that they are based on a reference, that is later understood by the software.
A target is a digital correspondence of a real-world entity like an image, object of any sort.
# Target Collection
An archive storing a collection of targets that can be recognized by a tracker. A target collection can come in different formats or file types depending with sort of tracker is used. It can be saved and accessed during runtime from the
StreamingAssets folder or from any accessible path URL (also web URLs).
Streaming Assets folder
Files inside this special folder can be accessed with a path URL during runtime. It is located in the
Assets root folder in an Unity project and has to be called
StreamingAssets (case-sensitive, see Unity documentation (opens new window)).
# Target Generation
The process of converting input files and data into a digital fingerprint for a real-world object. This process is needed to create a target and use it within the Wikitude SDK.
A tracker analyzes the live camera image and detects the targets stored in its associated target collection. In this sense a tracker is the part of the program that recognizes and tracks pre-defined targets. Multiple trackers can be created and also combined and mixed with each other.
# Supported Trackers
The Wikitude SDK offers some trackers in-built, that developers can use in their experiences.
- Image Tracker
- Cylinder Tracker
- Object Tracker
- Tracker from native frameworks (ARCore, ARKit)
- Own Tracker
# Image Tracker
Image trackers are a method to recognize and track planar surfaces with graphical content. They are at the very heart of the Wikitude SDK and offer advanced features around recognizing and tracking images. The chapter Image Tracking provides details and samples on how to work with.
# Cylinder Tracker
The inbuilt Cylinder Tracker is a special form of an Image Tracker. With it images that are wrapped around a cylindrical shape can be recognized and tracked. This can range from labels on a wine bottle to prints on a can or any other graphical content.
# Object Tracker
The most versatile tracker, that comes with the Wikitude SDK is the Object Tracker. It can be used to capture and track any kind of object with certain properties. In chapter Object Tracker, we explore what kind of object works well and which data you need to create your tracker.
# Positional Tracker from Native AR frameworks
The Wikitude SDK can use native AR frameworks (like ARKit or ARCore) in parallel to other trackers. This can be either through an existing connection to Unity's AR Foundation or through Wikitude's own
AR Bridge. Positional tracking in itself is the process of tracking the position and orientation of the device continuously by the device itself. This is sometimes referred to as World Tracking (Apple), Motion Tracking (Google) or Head Tracking (VR headsets) or Instant Tracking (Wikitude Professional Edition).
# Assisted Tracking
Assisted tracking is a term describing a technology where the performance of Image, Cylinder and Object trackers benefit from the fact that a native AR frameworks is run in parallel. This results in increased stability of the mentioned trackers even when they move independently. Assisted tracking is enabled by default when using
AR Bridge or
# Extended Tracking
Extended Tracking has been used as a term to describe a particular behaviour for Image and Object Trackers. When an Image or Object Tracker was set to be extended, the tracking also created a visual map of the surrounding of the target image/object. That was particularly useful when showing large augmentations that exceeded the target.
This tracker type is not available anymore in the Expert Edition and superseded by a different more practical behaviour.
Extended Tracking became now mixing an Image or Object Tracker with
This has a tremendous advantage, that image and object targets can independently move from the user and still being tracked together with the scene.
# Combine Trackers
The Wikitude SDK allows combining trackers of different types, making advanced experiences possible. In the chapter Combine Trackers you find details and a sample on how to combine Positional Tracking, Image Tracking and Object Tracking.
# Other Tracker from Native AR frameworks
Similar to positional trackers, native AR frameworks expose other trackers through their API. Using Unity AR Foundation it is possible to utilize them directly in the Wikitude SDK.
# Own Trackers
For certain experiences, it might be necessary to recognize and track an item that is neither covered by the inbuilt trackers from Wikitude nor a native AR framework. In order to support own existing visual trackers or other frameworks next to the supported one, a developer can use the Plugins API, where camera data is shared and information between trackers is exchanged.