maurizio moriconi - arkit: augmented reality made simple - codemotion milan 2017

29
ARKit: Augmented Reality made simple Maurizio Moriconi CODEMOTION MILAN - SPECIAL EDITION 10 – 11 NOVEMBER 2017

Upload: codemotion

Post on 21-Jan-2018

137 views

Category:

Technology


3 download

TRANSCRIPT

ARKit: Augmented Reality made simpleMaurizio Moriconi

CODEMOTION MILAN - SPECIAL EDITION 10 – 11 NOVEMBER 2017

Chi Sono?

CTO, Mobile Developer

Community

Co-FounderMaurizio Moriconi bugman

Augmented Reality (AR)Virtual Reality + Reality Reality

Uso della camera o di occhiali per “aumentare” la realtà con oggetti 3D virtuali

Augment Reality hardware

Augment Reality software

ARKit• Framework per mobile• E’ ad ALTO livello!• Funziona solo su iOS!!!

Requisiti ARKit• iPhone SE• iPhone 6s• iPhone 6s Plus• iPhone 7• iPhone 7 Plus• iPhone 8• iPhone 8 Plus• iPhone X• iPad 2017• iPad Pro 9.7 pollici• iPad Pro 10.5 pollici• iPad Pro 12.9 pollici

Quanti dispositivi supportati?

Tracking

• Tracciamento in real time della posizione del dispositivo nel mondo reale!

• Visual-inertial odometry (VIO)

• Nessun setup “esterno” (no marker)

Scene understanding

• Plane detection

• Light estimation

• Hit-testing

Rendering

SpriteKit SceneKit Metal

Hello ARKit!A simple demo project!

ARSessionFramework basato su sessione, che gira a 60 frames al secondo!

La sessione può essere lanciata, messa in pausa, reimpostata:

• ARSessionObserver per gestire i cambi di stato della sessione

• ARSessionDelegate per ricevere i frames catturati e aggiornamenti sugli anchor

ARConfigurationTre configurazioni:

• AROrientationTrackingConfiguration

• ARWorldTrackingConfiguration

• ARFaceTrackingConfiguration

Abilita anche la light estimation, e il plane detection

ARFrameLa sessione cattura dei frame che contengono

• l’immagine catturata

• informazioni sul tracking

• informazioni sulla scena: tracking points e condizioni di luce

ARAnchorUn anchor è punto posizionato ed orientato nel mondo reale.

ARKit si occupa di mantenere fissa la posizione e l’orientamento di un anchor se l’utente muove la camera.

E’ necessario aggiungere gli anchor nella ARSession.

Feature PointsPunti estratti dall’analisi dei frames!

Possibili problematiche nell’estrazione:

• Poca luce• Poche “texture”• Movimenti veloci

Plane detectionDa un insieme di feature points è possibile ricostruire un piano.

Per ora solo orizzontale :(

Se è abilitato il planeDetection in automatico vengono aggiunti degli ARPlaneAnchor!

E’ possibile fare plane merging!

Hit TestingIntercetta un punto nella scena reale

Utilizza le informazioni della scena

I risultati sono ordinati per distanza (dal più “vicino” al più “lontano”)

Ci sono diversi tipi di Hit-test

Light estimationSi attiva dalla configurazione (lightEstimationEnabled)

E’ possibile riconoscere:

• ambientIntensity (1000 neutrale)

• ambientColorTemperature (6500 luce “bianca”)

Light estimation

Demo TimeShow me the code!

Unity ARKit Plugin

ARKit

Scene UnderstandingTracking Rendering

ARKit

Back to the ’80…

Grazie!Domande???