SlideShare a Scribd company logo
MOBILE AR: A TUTORIAL
Mark Billinghurst
mark.billinghurst@unisa.edu.au
1st – 5th December 2015
INDMF/ICIDM 2015
1977 – StarWars –Augmented Reality
Augmented Reality Definition
• Defining Characteristics [Azuma 97]
• Combines Real andVirtual Images
• Both can be seen at the same time
• Interactive in real-time
• The virtual content can be interacted with
• Registered in 3D
• Virtual objects appear fixed in space
Azuma, R. T. (1997). A survey of augmented reality. Presence, 6(4), 355-385.
2008 - CNN
•  Put AR pictures here
Augmented Reality Examples
Virtual Reality
•  1989…
Virtual Reality
• ImmersiveVR
• Head mounted display, gloves
• Separation from the real world
AR vsVR
Where CanYou UseAR/VR?
Milgram’s Reality-Virtuality continuum
Mixed Reality
Reality - Virtuality (RV) Continuum
Real
Environment
Augmented
Reality (AR)
Augmented
Virtuality (AV)
Virtual
Environment
"...anywhere between the extrema of the virtuality continuum."
P. Milgram and A. F. Kishino, Taxonomy of Mixed Reality Visual Displays
IEICE Transactions on Information and Systems, E77-D(12), pp. 1321-1329, 1994.
Summary
• Augmented Reality has three key features
• Combines Real andVirtual Images
• Interactive in real-time
• Registered in 3D
• AR can be classified alongside other technologies
• Milgram’s Mixed Reality continuum
TECHNOLOGY
Augmented Reality Definition
• Defining Characteristics
• Combines Real andVirtual Images
• Display Technology
• Interactive in real-time
• Interaction Technology
• Registered in 3D
• Tracking Technology
DISPLAY
Display Technologies
! Types (Bimber/Raskar 2003)
! Head attached
•  Head mounted display/projector
! Body attached
•  Handheld display/projector
! Spatial
•  Spatially aligned projector/monitor
Google Glass (2013)
ViewThrough Google Glass
Always available peripheral information display
Combining computing, communications and content capture
TRACKING
Objects Registered in 3D
• Registration
• Positioning virtual object wrt real world
• Tracking
• Continually locating the users viewpoint
•  Position (x,y,z), Orientation (r,p,y)
Tracking Technologies
"  Active
•  Mechanical, Magnetic, Ultrasonic
•  GPS, Wifi, cell location
"  Passive
•  Inertial sensors (compass, accelerometer, gyro)
•  Computer Vision
•  Marker based, Natural feature tracking
"  Hybrid Tracking
•  Combined sensors (eg Vision + Inertial)
INTERACTION
• Interface Components
• Physical components
• Display elements
• Visual/audio
• Interaction metaphors
Physical
Elements
Display
ElementsInteraction
MetaphorInput Output
AR Interface Elements
AR APPLICATIONS
•  Web based AR
•  Flash, HTML 5 based AR
•  Marketing, education
•  Outdoor Mobile AR
•  GPS, compass tracking
•  Viewing Points of Interest in real world
•  Eg: Junaio, Layar, Wikitude
•  Handheld AR
•  Vision based tracking
•  Marketing, gaming
•  Location Based Experiences
•  HMD, fixed screens
•  Museums, point of sale, advertising
Typical AR Experiences
CityViewARApplication
•  Visualize Christchurch before the earthquakes
Warp Runner
• Puzzle solving game
• Deform real world terrain
Rock-em Sock-em
•  Shared AR Demo
•  Markerless tracking
Demo:colAR
• Turn colouring books pages into AR scenes
• Markerless tracking, use your own colours..
• Try it yourself: http://www.colARapp.com/
What Makes a GoodAR Experience?
• Compelling
• Engaging,‘Magic’ moment
• Intuitive, ease of use
• Uses existing skills
• Anchored in physical world
• Seamless combination of real and digital
INTRODUCTION TO UNITY
Mark Billinghurst
mark.billinghurst@unisa.edu.au
Mobile AR Tutorial
Unity 3D Game Editor
SETUP
Download and Install
•  Go to unity3d.com/download
•  Use Download Assistant – pick components you want
Getting Started
•  First time running Unity you’ll be asked to create a project
•  Specify project name and location
•  Can pick asset packages (pre-made content)
Unity Interface
•  Toolbar, Scene, Hierarchy, Project, Inspector
Customizable Interface
Building Scenes
• Use GameObjects:
•  Containers that hold different components
•  Eg 3D model, texture, animation
• Use Inspector
•  View and edit object properties and other settings
• Use Scene View
•  Position objects, camera, lights, other GameObjects etc
• Scripting
•  Adding interaction, user input, events, etc
GameObjects
•  Every object in Scene is a GameObject
•  GameObjects contain Components
•  Eg Transform Component, Camera Component
Adding 3D Content
•  Create 3D asset using modeling package, or download
•  Fbx, Obj file format for 3D models
•  Add file to Assets folder in Project
•  When project opened 3D model added to Project View
•  Drag mesh from Project View into Hierarchy or Scene View
•  Creates a game object
Positioning/Scaling Objects
•  Click on object and choose transform
Unity Asset Store
•  Download thousands models, scripts, animations, etc
•  https://www.assetstore.unity3d.com/
UNITY BASICS
Making a Simple Scene
1.  Create New Project
2.  Create Game Object
3.  Moving main camera position
4.  Adding lights
5.  Adding more objects
6.  Adding physics
7.  Changing object materials
8.  Adding script behaviour
CreateProject
•  Create new folder and project
New Empty Project
Create GameObject
•  Load a Sphere into the scene
•  GameObject -> 3D Object -> Sphere
Moving main camera
•  Select Main Camera
•  Select translate icon
•  Move camera
Add Light
•  GameObject -> Light -> Directional Light
•  Use inspector to modify light properties (colour, intensity)
Add Physics
•  Select Sphere
•  Add Rigidbody component
•  Add Component -> Physics -> RigidBody
•  or Component -> Physics -> RigidBody
•  Modify inspector properties (mass, drag, etc)
Add More Objects
•  Add several cubes
•  GameObject -> 3D Object – Cube
•  Move cube
•  Add Rigid Body component (uncheck gravity)
Add Material
•  Assets -> Create -> Material
•  Click Albedo colour box in inspector
•  Select colour
•  Drag asset onto object to apply
Add Script
•  Assets -> Create -> C# script
•  Edit script using Mono
•  Drag script onto Game Object
Example C# Script
GameObject Rotation
using UnityEngine;

using System.Collections;



public class spin : MonoBehaviour {



    // Use this for initialization

    void Start () {

    

    }

    

    // Update is called once per frame

    void Update () {

        this.gameObject.transform.Rotate(Vector3.up*10);

    }

}

#
Scripting C# Unity 3D
•  void Awake():
•  Is called when the first scene is loaded and the game object is active
•  void Start():
•  Called on first frame update
•  void FixedUpdate():
•  Called before physics calculations are made
•  void Update():
•  Called every frame before rendering
•  void LateUpdate():
•  Once per frame after update finished
Final Spinning Cube Scene
Resources
• Unity Main site
• http://www.unity3d.com/
• Holistic Development with Unity
• http://holistic3d.com
• Official Unity Tutorials
• http://unity3d.com/learn/tutorials
• Unity Coder Blog
• http://unitycoder.com
USING VUFORIA
Mark Billinghurst
mark.billinghurst@unisa.edu.au
Mobile AR Tutorial
What you will learn
•  Introduction to Vuforia
•  Platform and features
•  How to install/set-up Vuforia
•  Vuforia Basics
•  Marker Tracking, Object tracking
•  Deploying to Mobile Device
•  Android, iOS
OVERVIEW
Vuforia Overview
•  Platform for Mobile Computer Vision
•  https://www.qualcomm.com/products/vuforia
•  Released by Qualcomm in 2010, acquired by PTC 2015
•  Used by over 100K developers, >10K applications
•  Main Features:
•  Recognition
•  Image, text, object recognition
•  Tracking
•  Image, marker, scene, object
Vuforia Provides
•  Android	
  
•  iOS	
  
•  Unity	
  Extension	
  
Device	
  SDK	
  
•  Target	
  Management	
  System	
  	
  
•  App	
  Development	
  Guide	
  
•  Vuforia	
  Web	
  Services	
  
Tools	
  &	
  Services	
  
•  Dedicated technical support
engineers
•  Thousands of posts
Support	
  Forum	
  
Vuforia Features
Tracking Targets
Image
Object
Environment
Developer Tools
Target Manager
Cloud Services
Platform Anatomy
User Experiences Enabled
INSTALLATION
Download Vuforia for Unity SDK
•  https://developer.vuforia.com/downloads/sdk
Download Samples
•  https://developer.vuforia.com/downloads/samples
Installing Vuforia Unity Extension
• Create new Unity Project
• Import the Vuforia Unity Extension
•  Double clicking the *.unitypackage file
•  Eg vuforia-unity-5-0-6.unitypackage
•  Manually install package
•  Assets -> Import Package -> Custom Package
• The extension archive will self install
•  folders, plugins and libraries, etc
Imported Vuforia Assets
Unity Asset Structure
•  Editor - Contains the scripts required to
interact with Target data in the Unity editor
•  Plugins - Contains Java and native binaries
that integrate the Vuforia AR SDK with the
Unity Android or Unity iOS application
•  Vuforia - Contains the prefabs and scripts
required to bring AR to your application
•  Streaming Assets / QCAR - Contains the
Device Database configuration XML and
DAT files from the online Target Manager
USING VUFORIA
Setting up a Vuforia Project
•  Register as Developer
•  Create a Project
•  Obtain a License Key
•  Add license key to AR Camera
•  Replace Main Camera with AR camera
•  Add Tracking Targets
•  Move ImageTarget into Scene
•  Add sample object to ImageTarget
Register as Developer
•  https://developer.vuforia.com/user/register
Create License Key
•  https://developer.vuforia.com/targetmanager/licenseManager/licenseListing
Obtain a License Key
•  Vuforia 5 apps utilize a license key that uniquely identifies
each app. License keys are created in the License Manager
•  The steps to creating a new license key are..
•  Choose a SDK
•  Choose a licensing option based on your requirements
•  Provide your Billing Information if you've chosen to use a paid license
•  Obtain your license Key
License Key Generated
Add License Key to Vuforia Project
•  Open ARCamera Inspector in Vuforia
•  Assets -> Vuforia -> Prefabs
•  Move AR Camera to scene hierarchy (Delete Main Camera)
•  Paste License Key
Adding Tracking Targets
•  Create a target on the Target Manager
•  OR - Use existing targets from other projects
Which Type of Database
•  Device Database vs. Cloud Database?
•  Device: local, Cloud: online
Creating a Target
•  Create a database
•  Add targets
Selecting Target Type
Sample Tracking Images
Loaded Image Target
• Rating indicates how good a target
• Download Dataset -> create unity package
Building the AR Application
•  Delete “Main Camera” in Scene Hierarchy
•  Drag ARCamera prefab in the Scene Hierarchy
•  Vuforia -. Prefabs -> AR Camera
•  Import tracking dataset package
•  Assets -> Import Package -> Custom Package
•  Drag ImageTarget prefab into Scene Hierarchy
•  Select ImageTarget, pick Data Set then Image Target
•  On AR Camera load target database and activate
Running the Application
Add 3D Content
•  As a test, create a simple Cube object
•  GameObject > Create Other > Cube
•  Add the cube as a child of the ImageTarget object by
dragging it onto the ImageTarget item.
•  Move the cube until it is centered on the Image Target.
AR Test View
NEXT STEPS
Add more than one ImageTarget
•  Drag new ImageTargets
onto hierarchy
•  Pick tracking pattern
•  Add 3D objects
Download 3D Assets
•  Open Asset Store in Unity (Window -> Asset Store)
•  Select free 3D model
•  Download asset into project panel
•  Move under ImageTarget, position and scale
Add Interactive Scripts
•  Install Vuforia samples
•  E.g. Virtual Buttons
•  Install VirtualButtons-5-0-6.unitypackage
Try Vuforia Samples
•  Object Recognition
•  Image Targets
•  Cylinder Targets
•  Multi Targets
•  User Defined Targets
•  Smart Terrain (Unity only)
•  Cloud Recognition
•  Text Recognition
•  Frame Markers
•  Virtual Buttons
DEPLOYING TO MOBILE
APPLICATION
•  Unity
•  Creating the Application
•  Configure the export settings and build the Application
100
Building for Android
•  Open Build Settings
•  Change Target platform to Android
•  Switch Platform
•  Under Player Settings
•  Edit Bundle Identifier – eg com.UniSA.cubeTest
•  Minimum API level
•  Build and Run
•  Select .apk file name
RESOURCES
Resources
•  Vuforia Product Page
https://www.qualcomm.com/products/vuforia
•  Vuforia Developer Page
https://developer.vuforia.com
•  SDK Download Page
https://developer.vuforia.com/downloads/sdk
•  Installing Vuforia for Unity extension
http://developer.vuforia.com/library/articles/Solution/
Installing-the-Unity-Extension
•  Tutorials
https://developer.vuforia.com/resources/tutorials

More Related Content

PDF
Developing VR Experiences with Unity
PPTX
[DevDay2018] Developing for VR/AR with Unity - By: Tu Phan and VR/AR Team, De...
PDF
Cardboard VR: Building Low Cost VR Experiences
PDF
VSMM 2016 Keynote: Using AR and VR to create Empathic Experiences
PDF
Developing AR and VR Experiences with Unity
PDF
COMP 4026 Lecture2: Design and Prototype
PDF
COMP 4026 Lecture4: Processing and Advanced Interface Technology
PDF
Building VR Applications For Google Cardboard
Developing VR Experiences with Unity
[DevDay2018] Developing for VR/AR with Unity - By: Tu Phan and VR/AR Team, De...
Cardboard VR: Building Low Cost VR Experiences
VSMM 2016 Keynote: Using AR and VR to create Empathic Experiences
Developing AR and VR Experiences with Unity
COMP 4026 Lecture2: Design and Prototype
COMP 4026 Lecture4: Processing and Advanced Interface Technology
Building VR Applications For Google Cardboard

What's hot (20)

PDF
Mobile AR Lecture 5 - Location Based AR
PDF
Comp4010 Lecture7 Designing AR Systems
PDF
Virtual Reality 2.0
PDF
COMP 4010: Lecture 6 Example VR Applications
PDF
COMP 4010 - Lecture 7: Introduction to Augmented Reality
PDF
Comp4010 Lecture12 Research Directions
PDF
COMP 4010 - Lecture 4: 3D User Interfaces
PDF
Mobile AR Lecture1-introduction
PDF
Lecture 4: VR Systems
PDF
Mobile AR Lecture 10 - Research Directions
PDF
Mobile AR lecture 9 - Mobile AR Interface Design
PDF
Virtual Reality: Sensing the Possibilities
PDF
COMP 4010 - Lecture 8 AR Technology
PDF
Application in Augmented and Virtual Reality
PDF
COMP 4010 Lecture9 AR Interaction
PDF
COMP 4010 Lecture7 3D User Interfaces for Virtual Reality
PDF
Mobile AR Lecture 3 - Prototyping
PDF
MHIT 603: Introduction to Interaction Design
PDF
MHIT603: Lecture 4 - Experience Prototyping
PDF
COMP 4026 Lecture3 Prototyping and Evaluation
Mobile AR Lecture 5 - Location Based AR
Comp4010 Lecture7 Designing AR Systems
Virtual Reality 2.0
COMP 4010: Lecture 6 Example VR Applications
COMP 4010 - Lecture 7: Introduction to Augmented Reality
Comp4010 Lecture12 Research Directions
COMP 4010 - Lecture 4: 3D User Interfaces
Mobile AR Lecture1-introduction
Lecture 4: VR Systems
Mobile AR Lecture 10 - Research Directions
Mobile AR lecture 9 - Mobile AR Interface Design
Virtual Reality: Sensing the Possibilities
COMP 4010 - Lecture 8 AR Technology
Application in Augmented and Virtual Reality
COMP 4010 Lecture9 AR Interaction
COMP 4010 Lecture7 3D User Interfaces for Virtual Reality
Mobile AR Lecture 3 - Prototyping
MHIT 603: Introduction to Interaction Design
MHIT603: Lecture 4 - Experience Prototyping
COMP 4026 Lecture3 Prototyping and Evaluation
Ad

Similar to Mobile AR Tutorial (20)

PDF
Building AR and VR Experiences
PDF
Build an AR app v2.0
PPTX
Augmented Reality (AR) in Your Library
PPTX
Introductory Augmented Reality in Unity with Android and Vuforia
PDF
Mobile AR Lecture 7 - Introduction to Vuforia
PDF
Augmented Reality Application Development_Vuforia.pdf
DOCX
AR with vuforia
PDF
Augmenting reality: Bring digital objects into the real world
PDF
Mobile AR Lecture6 - Introduction to Unity 3D
PDF
SovTech DevChat: AR Using Unity and Vuforia
PPTX
VIRTUAL REALITY & AUGMENTED REALITY
PDF
How to start your first augmented reality application.pdf
PDF
ppt_seminar_c hristy.pdf
PDF
ppt_seminar_zcvxvvvxzczxczxzxchristy-1.pdf
PPTX
Introduction to Unity and Vuforia for Augmented reality and image tracking
PDF
STEM Camp Virtual Reality
PPTX
AR and VR development tools and platforms
PPTX
Unity Game Engine - Basics
PPTX
Introduction to Unity
PPTX
Getting started with immersive technologies
Building AR and VR Experiences
Build an AR app v2.0
Augmented Reality (AR) in Your Library
Introductory Augmented Reality in Unity with Android and Vuforia
Mobile AR Lecture 7 - Introduction to Vuforia
Augmented Reality Application Development_Vuforia.pdf
AR with vuforia
Augmenting reality: Bring digital objects into the real world
Mobile AR Lecture6 - Introduction to Unity 3D
SovTech DevChat: AR Using Unity and Vuforia
VIRTUAL REALITY & AUGMENTED REALITY
How to start your first augmented reality application.pdf
ppt_seminar_c hristy.pdf
ppt_seminar_zcvxvvvxzczxczxzxchristy-1.pdf
Introduction to Unity and Vuforia for Augmented reality and image tracking
STEM Camp Virtual Reality
AR and VR development tools and platforms
Unity Game Engine - Basics
Introduction to Unity
Getting started with immersive technologies
Ad

More from Mark Billinghurst (20)

PDF
Empathic Computing: Creating Shared Understanding
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Rapid Prototyping for XR: Lecture 6 - AI for Prototyping and Research Directi...
PDF
Rapid Prototyping for XR: Lecture 5 - Cross Platform Development
PDF
Rapid Prototyping for XR: Lecture 4 - High Level Prototyping.
PDF
Rapid Prototyping for XR: Lecture 3 - Video and Paper Prototyping
PDF
Rapid Prototyping for XR: Lecture 2 - Low Fidelity Prototyping.
PDF
Rapid Prototyping for XR: Lecture 1 Introduction to Prototyping
PDF
Research Directions in Heads-Up Computing
PDF
IVE 2024 Short Course - Lecture18- Hacking Emotions in VR Collaboration.
PDF
IVE 2024 Short Course - Lecture13 - Neurotechnology for Enhanced Interaction ...
PDF
IVE 2024 Short Course Lecture15 - Measuring Cybersickness
PDF
IVE 2024 Short Course - Lecture14 - Evaluation
PDF
IVE 2024 Short Course - Lecture12 - OpenVibe Tutorial
PDF
IVE 2024 Short Course Lecture10 - Multimodal Emotion Recognition in Conversat...
PDF
IVE 2024 Short Course Lecture 9 - Empathic Computing in VR
PDF
IVE 2024 Short Course - Lecture 8 - Electroencephalography (EEG) Basics
PDF
IVE 2024 Short Course - Lecture16- Cognixion Axon-R
PDF
IVE 2024 Short Course - Lecture 2 - Fundamentals of Perception
PDF
Research Directions for Cross Reality Interfaces
Empathic Computing: Creating Shared Understanding
Reach Out and Touch Someone: Haptics and Empathic Computing
Rapid Prototyping for XR: Lecture 6 - AI for Prototyping and Research Directi...
Rapid Prototyping for XR: Lecture 5 - Cross Platform Development
Rapid Prototyping for XR: Lecture 4 - High Level Prototyping.
Rapid Prototyping for XR: Lecture 3 - Video and Paper Prototyping
Rapid Prototyping for XR: Lecture 2 - Low Fidelity Prototyping.
Rapid Prototyping for XR: Lecture 1 Introduction to Prototyping
Research Directions in Heads-Up Computing
IVE 2024 Short Course - Lecture18- Hacking Emotions in VR Collaboration.
IVE 2024 Short Course - Lecture13 - Neurotechnology for Enhanced Interaction ...
IVE 2024 Short Course Lecture15 - Measuring Cybersickness
IVE 2024 Short Course - Lecture14 - Evaluation
IVE 2024 Short Course - Lecture12 - OpenVibe Tutorial
IVE 2024 Short Course Lecture10 - Multimodal Emotion Recognition in Conversat...
IVE 2024 Short Course Lecture 9 - Empathic Computing in VR
IVE 2024 Short Course - Lecture 8 - Electroencephalography (EEG) Basics
IVE 2024 Short Course - Lecture16- Cognixion Axon-R
IVE 2024 Short Course - Lecture 2 - Fundamentals of Perception
Research Directions for Cross Reality Interfaces

Recently uploaded (20)

PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PPTX
Cloud computing and distributed systems.
PDF
Machine learning based COVID-19 study performance prediction
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
NewMind AI Monthly Chronicles - July 2025
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
Big Data Technologies - Introduction.pptx
PDF
Approach and Philosophy of On baking technology
Diabetes mellitus diagnosis method based random forest with bat algorithm
NewMind AI Weekly Chronicles - August'25 Week I
Network Security Unit 5.pdf for BCA BBA.
Chapter 3 Spatial Domain Image Processing.pdf
20250228 LYD VKU AI Blended-Learning.pptx
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
“AI and Expert System Decision Support & Business Intelligence Systems”
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Mobile App Security Testing_ A Comprehensive Guide.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Cloud computing and distributed systems.
Machine learning based COVID-19 study performance prediction
CIFDAQ's Market Insight: SEC Turns Pro Crypto
NewMind AI Monthly Chronicles - July 2025
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Big Data Technologies - Introduction.pptx
Approach and Philosophy of On baking technology

Mobile AR Tutorial

  • 1. MOBILE AR: A TUTORIAL Mark Billinghurst mark.billinghurst@unisa.edu.au 1st – 5th December 2015 INDMF/ICIDM 2015
  • 2. 1977 – StarWars –Augmented Reality
  • 3. Augmented Reality Definition • Defining Characteristics [Azuma 97] • Combines Real andVirtual Images • Both can be seen at the same time • Interactive in real-time • The virtual content can be interacted with • Registered in 3D • Virtual objects appear fixed in space Azuma, R. T. (1997). A survey of augmented reality. Presence, 6(4), 355-385.
  • 5. •  Put AR pictures here Augmented Reality Examples
  • 7. Virtual Reality • ImmersiveVR • Head mounted display, gloves • Separation from the real world
  • 10. Milgram’s Reality-Virtuality continuum Mixed Reality Reality - Virtuality (RV) Continuum Real Environment Augmented Reality (AR) Augmented Virtuality (AV) Virtual Environment "...anywhere between the extrema of the virtuality continuum." P. Milgram and A. F. Kishino, Taxonomy of Mixed Reality Visual Displays IEICE Transactions on Information and Systems, E77-D(12), pp. 1321-1329, 1994.
  • 11. Summary • Augmented Reality has three key features • Combines Real andVirtual Images • Interactive in real-time • Registered in 3D • AR can be classified alongside other technologies • Milgram’s Mixed Reality continuum
  • 13. Augmented Reality Definition • Defining Characteristics • Combines Real andVirtual Images • Display Technology • Interactive in real-time • Interaction Technology • Registered in 3D • Tracking Technology
  • 15. Display Technologies ! Types (Bimber/Raskar 2003) ! Head attached •  Head mounted display/projector ! Body attached •  Handheld display/projector ! Spatial •  Spatially aligned projector/monitor
  • 17. ViewThrough Google Glass Always available peripheral information display Combining computing, communications and content capture
  • 19. Objects Registered in 3D • Registration • Positioning virtual object wrt real world • Tracking • Continually locating the users viewpoint •  Position (x,y,z), Orientation (r,p,y)
  • 20. Tracking Technologies "  Active •  Mechanical, Magnetic, Ultrasonic •  GPS, Wifi, cell location "  Passive •  Inertial sensors (compass, accelerometer, gyro) •  Computer Vision •  Marker based, Natural feature tracking "  Hybrid Tracking •  Combined sensors (eg Vision + Inertial)
  • 22. • Interface Components • Physical components • Display elements • Visual/audio • Interaction metaphors Physical Elements Display ElementsInteraction MetaphorInput Output AR Interface Elements
  • 24. •  Web based AR •  Flash, HTML 5 based AR •  Marketing, education •  Outdoor Mobile AR •  GPS, compass tracking •  Viewing Points of Interest in real world •  Eg: Junaio, Layar, Wikitude •  Handheld AR •  Vision based tracking •  Marketing, gaming •  Location Based Experiences •  HMD, fixed screens •  Museums, point of sale, advertising Typical AR Experiences
  • 26. Warp Runner • Puzzle solving game • Deform real world terrain
  • 27. Rock-em Sock-em •  Shared AR Demo •  Markerless tracking
  • 28. Demo:colAR • Turn colouring books pages into AR scenes • Markerless tracking, use your own colours.. • Try it yourself: http://www.colARapp.com/
  • 29. What Makes a GoodAR Experience? • Compelling • Engaging,‘Magic’ moment • Intuitive, ease of use • Uses existing skills • Anchored in physical world • Seamless combination of real and digital
  • 30. INTRODUCTION TO UNITY Mark Billinghurst mark.billinghurst@unisa.edu.au
  • 32. Unity 3D Game Editor
  • 33. SETUP
  • 34. Download and Install •  Go to unity3d.com/download •  Use Download Assistant – pick components you want
  • 35. Getting Started •  First time running Unity you’ll be asked to create a project •  Specify project name and location •  Can pick asset packages (pre-made content)
  • 36. Unity Interface •  Toolbar, Scene, Hierarchy, Project, Inspector
  • 38. Building Scenes • Use GameObjects: •  Containers that hold different components •  Eg 3D model, texture, animation • Use Inspector •  View and edit object properties and other settings • Use Scene View •  Position objects, camera, lights, other GameObjects etc • Scripting •  Adding interaction, user input, events, etc
  • 39. GameObjects •  Every object in Scene is a GameObject •  GameObjects contain Components •  Eg Transform Component, Camera Component
  • 40. Adding 3D Content •  Create 3D asset using modeling package, or download •  Fbx, Obj file format for 3D models •  Add file to Assets folder in Project •  When project opened 3D model added to Project View •  Drag mesh from Project View into Hierarchy or Scene View •  Creates a game object
  • 41. Positioning/Scaling Objects •  Click on object and choose transform
  • 42. Unity Asset Store •  Download thousands models, scripts, animations, etc •  https://www.assetstore.unity3d.com/
  • 44. Making a Simple Scene 1.  Create New Project 2.  Create Game Object 3.  Moving main camera position 4.  Adding lights 5.  Adding more objects 6.  Adding physics 7.  Changing object materials 8.  Adding script behaviour
  • 45. CreateProject •  Create new folder and project
  • 47. Create GameObject •  Load a Sphere into the scene •  GameObject -> 3D Object -> Sphere
  • 48. Moving main camera •  Select Main Camera •  Select translate icon •  Move camera
  • 49. Add Light •  GameObject -> Light -> Directional Light •  Use inspector to modify light properties (colour, intensity)
  • 50. Add Physics •  Select Sphere •  Add Rigidbody component •  Add Component -> Physics -> RigidBody •  or Component -> Physics -> RigidBody •  Modify inspector properties (mass, drag, etc)
  • 51. Add More Objects •  Add several cubes •  GameObject -> 3D Object – Cube •  Move cube •  Add Rigid Body component (uncheck gravity)
  • 52. Add Material •  Assets -> Create -> Material •  Click Albedo colour box in inspector •  Select colour •  Drag asset onto object to apply
  • 53. Add Script •  Assets -> Create -> C# script •  Edit script using Mono •  Drag script onto Game Object
  • 54. Example C# Script GameObject Rotation using UnityEngine;
 using System.Collections;
 
 public class spin : MonoBehaviour {
 
     // Use this for initialization
     void Start () {
     
     }
     
     // Update is called once per frame
     void Update () {
         this.gameObject.transform.Rotate(Vector3.up*10);
     }
 }
 #
  • 55. Scripting C# Unity 3D •  void Awake(): •  Is called when the first scene is loaded and the game object is active •  void Start(): •  Called on first frame update •  void FixedUpdate(): •  Called before physics calculations are made •  void Update(): •  Called every frame before rendering •  void LateUpdate(): •  Once per frame after update finished
  • 57. Resources • Unity Main site • http://www.unity3d.com/ • Holistic Development with Unity • http://holistic3d.com • Official Unity Tutorials • http://unity3d.com/learn/tutorials • Unity Coder Blog • http://unitycoder.com
  • 60. What you will learn •  Introduction to Vuforia •  Platform and features •  How to install/set-up Vuforia •  Vuforia Basics •  Marker Tracking, Object tracking •  Deploying to Mobile Device •  Android, iOS
  • 62. Vuforia Overview •  Platform for Mobile Computer Vision •  https://www.qualcomm.com/products/vuforia •  Released by Qualcomm in 2010, acquired by PTC 2015 •  Used by over 100K developers, >10K applications •  Main Features: •  Recognition •  Image, text, object recognition •  Tracking •  Image, marker, scene, object
  • 63. Vuforia Provides •  Android   •  iOS   •  Unity  Extension   Device  SDK   •  Target  Management  System     •  App  Development  Guide   •  Vuforia  Web  Services   Tools  &  Services   •  Dedicated technical support engineers •  Thousands of posts Support  Forum  
  • 72. Download Vuforia for Unity SDK •  https://developer.vuforia.com/downloads/sdk
  • 74. Installing Vuforia Unity Extension • Create new Unity Project • Import the Vuforia Unity Extension •  Double clicking the *.unitypackage file •  Eg vuforia-unity-5-0-6.unitypackage •  Manually install package •  Assets -> Import Package -> Custom Package • The extension archive will self install •  folders, plugins and libraries, etc
  • 76. Unity Asset Structure •  Editor - Contains the scripts required to interact with Target data in the Unity editor •  Plugins - Contains Java and native binaries that integrate the Vuforia AR SDK with the Unity Android or Unity iOS application •  Vuforia - Contains the prefabs and scripts required to bring AR to your application •  Streaming Assets / QCAR - Contains the Device Database configuration XML and DAT files from the online Target Manager
  • 78. Setting up a Vuforia Project •  Register as Developer •  Create a Project •  Obtain a License Key •  Add license key to AR Camera •  Replace Main Camera with AR camera •  Add Tracking Targets •  Move ImageTarget into Scene •  Add sample object to ImageTarget
  • 79. Register as Developer •  https://developer.vuforia.com/user/register
  • 80. Create License Key •  https://developer.vuforia.com/targetmanager/licenseManager/licenseListing
  • 81. Obtain a License Key •  Vuforia 5 apps utilize a license key that uniquely identifies each app. License keys are created in the License Manager •  The steps to creating a new license key are.. •  Choose a SDK •  Choose a licensing option based on your requirements •  Provide your Billing Information if you've chosen to use a paid license •  Obtain your license Key
  • 83. Add License Key to Vuforia Project •  Open ARCamera Inspector in Vuforia •  Assets -> Vuforia -> Prefabs •  Move AR Camera to scene hierarchy (Delete Main Camera) •  Paste License Key
  • 84. Adding Tracking Targets •  Create a target on the Target Manager •  OR - Use existing targets from other projects
  • 85. Which Type of Database •  Device Database vs. Cloud Database? •  Device: local, Cloud: online
  • 86. Creating a Target •  Create a database •  Add targets
  • 89. Loaded Image Target • Rating indicates how good a target • Download Dataset -> create unity package
  • 90. Building the AR Application •  Delete “Main Camera” in Scene Hierarchy •  Drag ARCamera prefab in the Scene Hierarchy •  Vuforia -. Prefabs -> AR Camera •  Import tracking dataset package •  Assets -> Import Package -> Custom Package •  Drag ImageTarget prefab into Scene Hierarchy •  Select ImageTarget, pick Data Set then Image Target •  On AR Camera load target database and activate
  • 92. Add 3D Content •  As a test, create a simple Cube object •  GameObject > Create Other > Cube •  Add the cube as a child of the ImageTarget object by dragging it onto the ImageTarget item. •  Move the cube until it is centered on the Image Target.
  • 95. Add more than one ImageTarget •  Drag new ImageTargets onto hierarchy •  Pick tracking pattern •  Add 3D objects
  • 96. Download 3D Assets •  Open Asset Store in Unity (Window -> Asset Store) •  Select free 3D model •  Download asset into project panel •  Move under ImageTarget, position and scale
  • 97. Add Interactive Scripts •  Install Vuforia samples •  E.g. Virtual Buttons •  Install VirtualButtons-5-0-6.unitypackage
  • 98. Try Vuforia Samples •  Object Recognition •  Image Targets •  Cylinder Targets •  Multi Targets •  User Defined Targets •  Smart Terrain (Unity only) •  Cloud Recognition •  Text Recognition •  Frame Markers •  Virtual Buttons
  • 100. APPLICATION •  Unity •  Creating the Application •  Configure the export settings and build the Application 100
  • 101. Building for Android •  Open Build Settings •  Change Target platform to Android •  Switch Platform •  Under Player Settings •  Edit Bundle Identifier – eg com.UniSA.cubeTest •  Minimum API level •  Build and Run •  Select .apk file name
  • 103. Resources •  Vuforia Product Page https://www.qualcomm.com/products/vuforia •  Vuforia Developer Page https://developer.vuforia.com •  SDK Download Page https://developer.vuforia.com/downloads/sdk •  Installing Vuforia for Unity extension http://developer.vuforia.com/library/articles/Solution/ Installing-the-Unity-Extension •  Tutorials https://developer.vuforia.com/resources/tutorials