ambiente virtuale
Transcript
ambiente virtuale
Programma del corso Immersione Realtà Virtuale Interazione Presenza Interazione Interazione Interazione Flusso di dati in Ambienti Virtuali AMBIENTE VIRTUALE Informazioni efferenti INTERFACCIA Informazioni afferenti UTENTE Interazione Moduli logici di un Ambiente Virtuale Campionamento Sintesi Modellazione Comportamenti Proprietà AMBIENTE VIRTUALE Management Rendering Interazione UTENTE Interazione Interazione in Ambienti Virtuali Tipi di interazione: – Diretta: l’utente interagisce direttamente con l’ambiente virtuale – Mediata: l’utente interagisce con l’AV mediante un avatar Prima persona (“Quake(“Quake-like”) Terza persona (“Tomb Raider – like”) L’interazione può essere “imposta” dall’hardware: – CAVE: diretta – HMD: mediata, prima persona – Monitor: mediata, terza persona Interazione Interazione diretta Interazione Interazione indiretta Interazione AV collaborativi Interazione Interazione: informazioni AMBIENTE VIRTUALE CANALE CANALE CANALE CANALE Informazioni di posizioni/orientazione INERZIALE ACUSTICO VISIVO APTICO UTENTE Interazione Interazione: info per canale visivo AMBIENTE VIRTUALE Aggiornamento punto di vista - Posizione/orientazione della testa CANALE VISIVO CANALE CANALE Aggiornamento ambiente grafico CANALE INERZIALE ACUSTICO APTICO (Avatar + VE) - Angoli giunti – Posizione/orientazione EE UTENTE Interazione Interazione: info per canale audio AMBIENTE VIRTUALE CANALE VISIVO CANALE ACUSTICO Aggiornamento ascoltatore - Posizione/orientazione della testa Aggiornamento ambiente acustico CANALE CANALE - Angoli giunti INERZIALE APTICO – Posizione/orientazione EE Interazione vocale - Parlato UTENTE Interazione Interazione: info per canale aptico AMBIENTE VIRTUALE Aggiornamento punti di contatto Aggiornamento ambiente aptico: CANALE - AngoliCANALE giunti ACUSTICO VISIVO – Posizione/orientazione EE CANALE APTICO CANALE INERZIALE UTENTE Interazione Interazione: info per canale inerziale AMBIENTE VIRTUALE Informazioni vestibolari: CANALE CANALE -Posizione/orientazione testa ACUSTICO VISIVO (opzionali) CANALE APTICO CANALE INERZIALE UTENTE Interazione Interazione: componenti AMBIENTE VIRTUALE SW modules of tracking and data acquisition CANALE CANALE CANALE Interaction ACUSTICO Tracking VISIVO APTICO and CANALE INERZIALE motion capture devices UTENTE Interazione Tracker Abbiamo già parlato della necessità di “inseguire” (to (to track)) la locazione spaziale dell’utente affinchè possa track interagire con il VE. Ad esempio bisogna conoscerne la posizione/orientazione della testa per aggiornare coerentemente il punto di vista all’interno del VE, o la posizione degli end effector (es. mani) perchè possa avvenire l’interazione con gli oggetti virtuali. I valori di posizione e degli angoli dei giunti del corpo sono invece necessari per animare un avatar (motion (motion capture capture). ). E’ importante notare che, nonostante si tratti di problemi simili affrontati con metodi e tecnologie simili, il problema del tracking e quello del motion capture sono ben distinti. Interazione Tracker I tracker sono composti, solitamente, da: Componenti di acquisizione (sensori (sensori)) che registrano in tempo reale alcuni valori di interesse – Componenti di elaborazione che ricevono i dati dei sensori e li processano per fornire i valori in un formato utilizzabile dai programmi – Volt Posizione della testa (reale) Posizione della testa (calcolata) [x,y,z] Interazione Tracker per HMD I valori necessari per calcolare correttamente le viste sugli schermi dell’HMD sono: Posizione della testa: per calcolare la posizione del punto di vista Orientazione della testa: per calcolare la direzione di vista (FRONT vector)) e la direzione di offset degli occhi (RIGHT VECTOR) vector POSIZIONE e DIREZIONE di vista vengono usate per il calcolo del volume di vista, quindi per aggiornare dinamicamente la prospettiva La DIREZIONE di offset degli occhi serve per sapere lungo quale asse devono essere separate le immagini stereoscopiche Analogo audio per CUFFIE. Interazione Tracker per CAVE I valori necessari per calcolare correttamente le viste sugli schermi del CAVE sono: Posizione della testa: per calcolare la posizione del punto di vista Orientazione della testa: per calcolare la direzione di offset degli occhi (RIGHT VECTOR) In questo caso serve solo la POSIZIONE per determinare i volumi di vista e le relative proiezioni (il CAVE è un volume che circonda l’utente e dunque le immagini “sono già lì”). L’orientazione serve solo per determinare la direzione di sepa sepa-razione delle immagini stereo. Analogo audio per ALTOPARLANTI. Interazione Ambienti immersivi multiuser I tracker sono solitamente in grado di acquisire i valori di posizione e orientazione di punti MULTIPLI Questo consentirebbe, in linea di principio, di poter applicare correttamente la prospettiva dinamica, in un’installazione immersiva immersiva,, a più utenti che condividono lo stesso spazio fisico Nessun problema per gli HMD, per i CAVE (e i Powerwall Powerwall)) invece il problema si pone Possibili soluzioni: Mixare stereo attivo e passivo (luminosità ridotta dai multipli livelli di filtraggio) Utilizzare proiettori per stereo attivo ad altissima frequenza (es. 120Hz necessari per un utente -> 240 Hz per due utenti etc.) -> Conseguenza: occhi aperti solo per una frazione del tempo -> energia luminosa ridotta -> luminosità delle immagini ridotta 6 view projector – 360 Hz Digital Image L1 R1 L2 R2 L3 R3 L1 R1 … Adottare prospettive “medie”, pesate sui valori di più utenti (rischio: scontentare tutti!) Interazione Tracker: requisiti Il tracker ideale deve possedere i seguenti requisiti: – – – – – – – – Precisione Ripetibilità Alta frequenza di rilevazione Bassa latenza Leggerezza / Scarso ingombro (sensori) 6-DoF* (laddove richiesto): 3 posizione + 3 orientazione Robustezza No shadowing (tutti i punti devono essere rilevabili) (*) Degree of Freedom (Grado di Libertà): Coordinata di moto relativo fra due corpi. Ogni DoF è libero solo se può rispondere, senza vincoli o moto imposto, a forze o momenti applicati dall’esterno. Per movimenti di traslazione, un DoF è una coordinata lineare lungo una certa direzione. Per movimenti rotazionali, un DoF è una coordinata angolare attorno a un asse fisso singolo. Interazione Tracker: tipologie I tracker possono essere classificati a seconda delle tecnologie utilizzate: – – – – – – – Magnetici Meccanici Acustici Ottici Inerziali Misti Radio Interazione Tracker magnetici Usano una configurazione emettitore/rilevatore L’emettitore è fisso ed emette campi magnetici ortogonali, il rilevatore contiene bobine che rilevano tali campi. I campi elettrici indotti nelle bobine permettono di ricavare informazioni su posizione e orientazione V: non costoso, poco shadowing shadowing,, accurato, multi target, molto usato, dimensioni S: sensibile a perturbazioni del campo magnetico,a interferenze di oggetti metalmetallici,, accuratezza dipendente dalla distanza lici emettitore – ricevitore ricevitore,, WS limitato dalla potenza dell’ emettitore Interazione Tracker magnetici Emettitore BodyPack Sensore (rilevatore) Interazione Razer Hydra Joystick analogico per il pollice 4 pulsanti d’azione Rilevamento magnetico del movimento a sei gradi di libertà (precisione:1mm traslazione, 1 grado rotazione) Ordine di grandezza del prezzo: 100-150 euro (in bundle) Interazione Tracker meccanici I tracker meccanici misurano i valori tramite link meccanici disposti in catena (catena (catena cinematica cinematica). ). Possono essere indossabili (per motion capture capture)) o meno Solitamente misurano angoli ai giunti. I valori di posizione vengono calcolati con cinematica diretta. Possono essere “integrati” nelle interfacce aptiche Interazione Tracker meccanici (xo,yo) Interazione Tracker meccanici: V & S Vantaggi: – Miglior approccio per un interfaccia aptica – Nessuno “shadowing”, nessuna interferenza – Molto accurati, bassa latenza Svantaggi: – Ingombranti, necessità di dover “aderire” al corpo se – – – – – indossabili. TradeTrade-off precisione/comodità Adattabili con difficoltà a tipologie varie di utenti Workspace abbastanza limitato Errori cinematici causati dalla non perfetta aderenza Necessità di calibrazione Inerzia dei link Interazione Tracker ottici Sono basati sull’acquisizione delle proprietà della scena attraverso un sistema di telecamera. Possono essere: • Attivi (effettuano uno scan sfruttando led, laser o infrarossi) • Passivi (ricavano info direttamente dalla luce dell’ambiente) Interazione Tracker ottici Camere Stereo (passivo): – Registrano le immagini dell’ambiente e le elaborano per ricavarne informazioni 3D per trilaterazione – V: nessun componente addizionale, rilevano figure e non punti – S: scarsa precisione, WS limitato, lento, costoso, shadowing Punto 3D Punti focali delle camere Punti rilevati nelle immagini 2D Interazione Tracker ottici Rilevamento di marker (attivo/passivo): Le camere rilevano marker posti sull’utente. I marker possono essere attivi (LED etc.) o passivi (punti colorati, pattern). – V: Accurati, multitarget multitarget,, poco intrusivi – S: Shadowing Shadowing,, scarso WS, costoso, sensibile a riflessioni – Interazione Tracker ottici Camera--based markerless Camera Le camere rilevano features dell’immagine che possono essere analizzate con tecniche di Computer Vision per ricavare informazioni sulla posizione / orientazione della camera o degli oggetti ripresi – V: Intrusività quasi nulla, adatti per Augmented Reality, la scena non necessita di preparazione – S: Precisione, tempi di calcolo, necessita conoscenza della scena pregressa o ricavata in tempo reale (SLAM ( - Simultaneous Localisation and Mapping) – Interazione Tracker ottici Laser radar – Time of flight (attivo): – Misurano il tempo di volo di un raggio laser verso un oggetto e ritorno – Si ottengono misure di distanza: con 3 di queste si ricava la posizione. – V: nessun ingombro, accuratezza estrema per distanze – S: scarsa risoluzione, costo, shadowing Infrarossi (attivo): – Camere con flash a raggi infrarossi – Marker di materiale retroretro-riflessivo: con n >= 4 marker si rileva 6-DOF – Usato oggi da Oculus Rift – V: Multi target, facile calibrazione, peso – S: shadowing shadowing,, costo Interazione Tracker ottici Microsoft Kinect Usa una combinazione di una camera VGA e di un sistema a infrarossi (proiettore laser – camera IR) che proietta luce strutturata sulla scena. Dall’analisi dei pattern di luce proiettati si ricavano informazioni di profondità (depth map map)) – V: Intrusività nulla, costo ridottissimo, utilizzabile come scanner 3D (!) – S: Precisione, risoluzione, ottimizzata per gesture recognition e motion capture più che per tracking – Interazione Tracker ottici LightHouse (HTC Vive) In questo caso gli emettitori sono statici: due “lightbox “lightbox” ” posti agli angoli di una stanza emettono luce pulsante da LED a 60 Hz, accoppiata con due laser rotanti. – I ricevitori sono il casco o i controller. Sono ricoperti da sensori ottici. Quando uno di questi sensori riceve un flash da un led misura il tempo che passa finchè viene rilevato anche il laser da uno qualsiasi dei sensori dello stesso ricevitore. Dalla relazione SPAZIALE dei sensori colpiti nello stesso momento, e TEMPORALE (il delta fra il flash del LED e la ricezione del laser), il sistema è in grado di determinare posizione e orientazione. – Interazione Tracker acustici Usano una configurazione emettitore/rilevatore L’emettitore produce ultrasuoni che vengono ricevuti da speciali microfoni: si ricava distanza da Time of flight Per trilaterazione si può ricavare i 66-DOF V: dimensioni, non costoso, lunghe distanze S: shadowing shadowing,, latenza (a (a distanza), sensibile a interferenze, temperatura, rumori, bassa frequenza di rilevazione Interazione Tracker inerziali Misurano accelerazione di masse (accelerometri) o velocità angolari di masse in rotazione (giroscopi). E’ necessaria una doppia integrazione per avere info su posizione (a=d2s/dt2) e un’integrazione semplice per l’orientazione (w (w=d =dQ Q/dt dt). ). L’integrazione porta a problemi di deriva (drift (drift), ), ovvero ad accumulo dell’errore V: dimensione, no shadowing shadowing,, no interferenze, alta frequenza di rilevazione S: calibrazione, drift Interazione Tracker inerziali: accelerometro Interazione Tracker misti Intersense – Fusion Mode Sistema misto: – Inertia Cubes (acc acc.. + gir.) – Ultrasuoni Le misure ad ultrasuoni servono per correggere il drift dei tracker inerziali Interazione Tracker misti Nintendo WII Sistema misto: – Infrarossi (rilevano la direzione di puntamento) – Accelerometri (rilevano i movimenti) Emettitori IR Sensore IR Interazione Tracker + feedback Oculus Touch Touch,, HTV Vive Controller Da usarsi in abbinamento con Oculus Rift Rift/ / HTC Vive Dispositivo 66-DOF Joypad analogico e bottoni Force feedback con vibrazione Finger gesture recognition (Oculus Touch Touch)) Interazione Tracker radio Il meccanismo della triangolazione può essere utilizzato per stime (più o meno grossolane) di distanza attraverso misure di tempo di volo delle onde radio, per utilizzo in ambienti grandi o all’aperto. Esempi notevoli sono il GPS (per uso outdoor) e il wifi (prevalentemente indoor) che usano infrastrutture ormai ubique. L’orientazione va acquisita con altri dispositivi (bussola, inclinometri, giroscopi etc.) Interazione Eye tracker Utilizzi: 1) Applicazioni (medicali – riabilitazione, fisiologia, psicologia etc.) 2) Tecnologia: a) Minimizzazione della banda grafica, riducendo le informazioni periferiche in accordo con I limiti percettivi (normalmente vengono create due zone: una Region of Interest (ROI) ad alta risoluzione, ed una periferica b) Applicazioni avanzate (Depth of Field) Interazione Eye tracker Tipologie: 1) Tracker che usano dispositivi direttamente a contatto con l’occhio (grande precisione, massima invasività) 2) Tracker che usano elettrodi sulla pelle attorno all’occhio (es. Starlab ENOBIO) – più precisamente acquisiscono EOG (elettro oculogramma) 3) Tracker che usano telecamere montate su caschetti solidali alla testa dell’utente 4) Tracker che usano telecamere montate nello spazio di lavoro Interazione Motion Capture Marker ottici: VICON Di fatto viene effettuato il tracking ottico (infrarossi) di più marker che vengono posti in relazione, basandosi su una postura di partenza, per ricavare i vari angoli ai giunti. Interazione Motion Capture Sensori inerziali: X-Sense Interazione Motion Capture Bend sensors resistivi (strain-gauges): Cybergloves Interazione Motion Capture Markerless ottici: Color gloves Interazione Motion Capture Markerless ottici (camere + infrarossi): Kinect Interazione Tracker ottici Leap Motion Specializzata per l’acquisizione di posizione e postura delle mani. Usa due camere a infrarossi. – Nata come interfaccia “desktop” è stata adattata per HMD. Il supporto a quest’ultimo migliora NOTEVOLMENTE da Feb 2016 grazie al sw Orion – V: Intrusività nulla, costo ridottissimo, riconosce semplici gestures – S: Precisione, risoluzione (molto migliore con Orion Orion)) – Interazione Altri dispositivi di interazione Interazione Dispositivi desktop Dispositivi tradizionali 2-DOF: - Mouse - Trackball - Joystick (ev. con force feedback) - Tastiera Dispositivi “meno tradizionali”: - Touch Screen (ev. Multitouch) - 3D Mouse (6-DOF) - Air Mouse Interazione Altri dispositivi Dispositivi non tradizionali: - Interfacce aptiche desktop (es. Sensable Phantom, 6-DOF) Smartphones Locomotion Interfaces Brain Computer interfaces Interazione Locomotion interfaces (no feedback) Virtuix Omni VR Treadmill Basato su una superficie a basso attrito con scanalature radiali. Dotato di un gruppo di supporto alla vita che garantisce sicurezza e di camminare a mani libere. La superficie concava permette al piede dell'utilizzatore di tornare indietro, per gravità, dopo ogni passo, mentre una superficie piana richiederebbe all'utente di spostare fisicamente i piedi all'indietro, limitando la naturalezza della passeggiata Interazione Brain Computer Interfaces Possono essere utilizzati come dispositivi di interazione per persone con diversi gradi di disabilità (es. Domotica, Chat Testuale etc.) L’utilizzo in Ambienti Virtuali consente di testare questi dispositivi in ambiente sicuro (es. gVRSys di gTec) Interazione Brain Computer Interfaces Le BCI possono misurare l’attività cerebrale in risposta ad uno stimolo (es. P300, picco misurabile in un EEG circa 300 ms dopo uno stimolo infrequente che interrompe una serie frequente di altri stimoli). Il meccanismo della P300 può essere usato per rilevare la selezione di un elemento in una matrice le cui righe/colonne lampeggiano secondo pattern predefiniti. Le BCI basate su biofeedback misurano cambiamenti dell’attività cerebrali in risposta ad un atto conscio di pensiero/concentrazione dell’utente (es. direzionalità destra/sinistra anche solo immaginata!) Interazione Metafore di interazione Interazione Metafore di interazione Le metafore riproducono concetti, conosciuti dall’utente in un contesto, al fine di trasferire questa conoscenza in un nuovo contesto legato all’esecuzione di un certo task. Una buona metafora deve essere rappresentativa del task e compatibile con la conoscenza dell’ utente. Una buona metafora deve essere compatibile con i vincoli fisici dell’interfaccia usata. I tipici task della VR sono essenzialmente di tre tipi: - Navigazione e Movimento - Selezione di oggetti - Manipolazione e modifica di oggetti Interazione Metafore per la navigazione Metafore 2DOF o 3DOF Sono metafore controllate da dispositivi 2/3Dof come mouse o joystick. Per consentire i normali 6DOF di movimento, se richiesto, è necessario utilizzare comandi aggiuntivi (pulsanti del dispositivo o sulla GUI) Metafore 6DOF Sono metafore controllate da dispositivi inerentemente 6DOF. Interazione Navigazione: Flying Vehicle L’utente si sposta all’interno della scena controllando un veicolo virtuale sul quale è posta la camera Non necessita di una fisica del volo accurata Prevede per sua natura sei gradi di libertà ma, tipicamente, alcuni gradi di libertà non sono controllabili dall’utente a causa di: • vincoli posti dal task (es. Walking -> 3 DOF) • necessità di rendere l’interazione più semplice (es. disabilitazione del rollio -> 5 DOF) Varie tecniche di controllo del veicolo In ambito desktop il controllo avviene per mezzo di mouse o joystick. Questi dispositivi permettono di controllare soltanto 2DOF, contro i 3/5 richiesti. Soluzione: • Pulsanti/tasti aggiuntivi • Utilizzo combinato di mouse e tastiera Contributo: A.Salvadori Interazione Navigazione: Flying Vehicle Hand directed flying La direzione di spostamento è determinata dalla posizione e dall’orientamento della mano Velocità di spostamento: • Velocità costante • Accelerazione costante • Hand-controlled L’utente può muovere la testa liberamente Può risultare stancante Cross-air La direzione di spostamento è determinata dal vettore che, partendo dall’occhio dominante dell’utente, passa attraverso un “mirino” situato sulla mano. Contributo: A.Salvadori Interazione Navigazione: Flying Vehicle Speed coupled flying Vengono messe in relazione altezza e inclinazione della camera con la velocità di navigazione: Permette sia una navigazione immersiva a bassa velocità, sia di percorrere lunghe tratte a velocità sostenuta fornendo al contempo una visione d’insieme (dall’alto) della scena Richiede un device a 2 DOF per essere implementato Non è adatta per scene piccole o che modellano ambienti chiusi Contributo: A.Salvadori Interazione Navigazione: Eyeball in Hand La scena è visibile esclusivamente per mezzo di un “occhio” tenuto in mano dall’utente (ovvero un oggetto/punto rilevato da un tracker) Corrispondenza biunivoca tra i movimenti del device e quelli dell’occhio: la navigazione avviene spostandosi all’interno della stanza reale Problema: le dimensioni della scena sono limitate sia dal raggio di azione del dispositivo sia dalla dimensione dell’ambiente di lavoro Possibile soluzione: Seven League Boots L’utente può attivare una modalità nella quale ogni passo produce uno spostamento di (ad es.) 7 passi nell’ambiente virtuale Problema: camminando l’utente non si sposta soltanto lungo la direzione “di viaggio”, ma genera anche una oscillazione orizzontale. Una semplice amplificazione dello spostamento produrrebbe l’amplificazione dell’oscillazione laterale, disorientando l’utente. Possibile soluzione: amplificare solo lungo la direzione di viaggio Gaze-directed walking: direzione di viaggio = orientamento della testa Metodo misto: media pesata tra orientamento testa e ultime X direzioni di viaggio (pesi variabili: es. utente fermo: solo testa) Contributo: A.Salvadori Interazione Navigazione: Orbiting L’attività principale dell’utente consiste nel visionare un oggetto di interesse da varie angolazioni La camera si può movere esclusivamente sulla superficie di una sfera invisibile centrata sull’oggetto ed è sempre orientata verso di esso. Zoom (in/out) = variazioni del raggio della sfera Modalità di interazione: • Scene in hand (è l’inverso del flying vehicle: spostare la camera all’interno della scena equivale allo spostare la scena mantenendo fissa la camera. Richiede un dispositivo 6DOF: mapping tra rotazioni e traslazioni del dispositivo e quelle della scena. • Mouse/touchscreen (multitouch) • Head tracking Possibili problemi di occlusione visiva dovuta ad altri modelli della scena che si interpongono tra la camera e l’oggetto di interesse Contributo: A.Salvadori Interazione Navigazione: Point of Interest Versione tridimensionale ed egocentrica della metafora “point and click” utilizzata in molti videogames per muovere un personaggio Necessita soltanto di un dispositivo a 2 DOF (mouse, touchscreen...): cliccando su un punto di interesse all’interno della scena tridimensionale la camera si sposta automaticamente (con una animazione) in modo da fornire un’inquadratura “ravvicinata” del POI Varie implementazioni che si differenziano sostanzialmente per: Velocità: deve permettere di percorrere qualsiasi distanza in poco tempo e decelerare in prossimità del POI (es. logaritmica) Posizionamento finale della camera rispetto al POI: completamente hard-coded o guidato dall’utente Es. Navidget Contributo: A.Salvadori Interazione Navigazione: Camera in Hand Viene impiegato un PHANToM (interfaccia aptica desktop 6DOF) per controllare la navigazione. L’orientamento della camera corrisponde all’orientamento della stylus Due modalità di spostamento Walking: spostamento della stylus su un piano orizzontale virtuale percepito dall’utente tramite force-feedback Flying vehicle: il piano viene sostituito da un cubo virtuale. Il veicolo viene messo in movimento spingendo lo stylus oltre i bordi del cubo. Maggiore è la forza con cui l’utente si oppone alla resistenza del device, maggiore sarà la velocità del veicolo Contributo: A.Salvadori Interazione Navigazione: Map based Varie metafore prevedono la navigazione all’interno della scena utilizzando una sorta di mappa. Particolarmente interessanti sono quelle che combinano un display tradizionale ad un touchscreen: - il display viene utilizzato per visualizzare la scena - il touchscreen mostra una mappa della scena e un’icona della camera Camera-Based navigation: L’utente manipola l’icona l’icona della camera. Le trasformazioni applicate all’icona vengono applicate in real-time anche alla camera nella scena View-Based navigation technique: La posizione dell’icona è fissa, centrata nello schermo e sempre orientata verso il display. Anziché manipolare l’icona della camera, si manipola l’intera mappa. Corrispondenza diretta tra l’immagine mostrata sul touchscreen e quanto visualizzato sul display Contributo: A.Salvadori Interazione Navigazione: World in miniature Viene creata una copia in scala ridotta dell’intera scena. Tale miniatura è interattiva: è possibile selezionare e manipolare gli elementi in essa presenti (compresa la camera); ogni modifica apportata alla miniatura verrà applicata anche al modello originale Non è stato pensato per sostituire completamente le altre metafore, ma per fornire all’utente una modalità di interazione alternativa basata su una scala differente Contributo: A.Salvadori Interazione Navigazione: Multitouch Usano sistemi touch e “gesture” spesso già familiari The DabR (Un.Tubinga) Muovendo un dito sullo schermo si cambia l’orientamento della camera Avvicinando o allontanando due dita si ottiene uno zoom (pinch zoom) che preserva la pick correlation tra le dita e gli elementi della scena sottostanti Windows on the world L’analogia utilizzata in questa metafora è quella di una finestra sulla scena collegata ad un giunto sferico: • premendo la finestra in basso la camera ruota verso l’alto, premendola a destra la camera ruota a sinistra ecc.; premendo con due dita la camera si muove lungo la direzione di vista • ruotando la finestra (con la classica gesture) si provoca il rollio della camera • supporto a pinch zoom Contributo: A.Salvadori Interazione Navigazione: Wiimote Utilizzano il wiimote come dispositivo di interazione o come vero e proprio tracker Flying vehicle / Walking: • Si utilizza il remote per controllare l’orientamento della camera e lo stick del Nunchuk per effettuare lo spostamento • Tilt-based control: ruotando il remote si sterza il veicolo. Inclinandolo in avanti o indietro si può controllare la velocità (in alternativa ai pulsanti) o il beccheggio Accelerometer-based: Sfruttando gli accelerometri incorporati, è possibile imitare attraverso più wiimote il movimento effettuato dalle gambe nel camminare, correre e saltare, utilizzarli come fossero “bastoni da sci” per muoversi e curvare, o legarli direttamente alle gambe per replicare la camminata reale. Contributo: A.Salvadori Interazione Navigazione: Wii balance board Dispositivo economico e particolarmente adatto alla navigazione: permette di spostarsi all’interno dell’ambiente virtuale attraverso delle “foot gesture”, consentendo così di lasciare libere le mani di eseguire altri compiti È dotata di 4 sensori di pressione Facilmente applicabile alle metafore Orbiting e Walking Wii Balance Board + Multitouch: Human Transporter vehicle Metafora ispirata al monopattino elettrico. Il monopattino viene controllato per mezzo della Balance Board Sul monopattino è installato uno schermo multitouch utilizzato per visualizzare e manipolare un World in Miniature Il WIM risulta utile sia per il wayfinding che per implementare spostamenti veloci su lunghe distanze (teletrasporto) La scena viene proiettata su un Powerwall Contributo: A.Salvadori Interazione Altre metafore di navigazione TREADMILLS: virtual camera segue i movimenti fisici dell’utente TELEPORTATION: l’utente è istantaneamente trasportato nel luogo desiderato (speech commands o selezione da lista) Interazione Metafore per la selezione A differenza delle applicazioni 2D, in cui gli oggetti sono accessibili per manipolazione diretta, le applicazioni 3D aggiungono un grado di complessità ulteriore che non sempre è facilmente gestibile (ad es. la valutazione della profondità, specie con monitor 2D, o i problemi di occlusione). Sono classificabili in tre grandi categorie: Selezione diretta (es. da lista, tramite speech recognition, etc.) Virtual hand Virtual pointer Interazione Selezione: Virtual hand È presente nella scena una rappresentazione virtuale della mano dell’utente (può essere anche un semplice cursore) La selezione di un oggetto avviene muovendo la “mano” in modo da farla intersecare con l’oggetto scelto Le varie tecniche che implementano questa metafora si distinguono in base alla funzione che associa la posizione e l’orientamento della mano reale alla posizione e all’orientamento della mano virtuale Nel virtual hand “classico” tale funzione è l’identità: per selezionare gli oggetti non “a portata di mano”, l’utente deve spostarsi nella scena. Nel “go-go” si possono allungare le proprie braccia interattivamente, in modo da poter raggiungere e manipolare oggetti distanti. In questo caso il mapping tra la posizione della mano reale e quella della mano virtuale è non lineare e a tratti Interazione Selezione: Virtual pointer L’utente seleziona un oggetto semplicemente puntandolo Le metafore appartenenti a questa famiglia si differenziano sostanzialmente in base a: • come viene determinata la direzione di puntamento • il tipo di volume di selezione • eventuali politiche di disambiguazione Interazione Selezione: Ray Casting Il volume di selezione consiste in una sorta di “raggio laser” infinito La selezione avviene quindi orientando il raggio in modo da intersecare l’oggetto scelto Nel caso in cui più di un oggetto venga intersecato dal raggio, viene scelto l’oggetto più vicino all’utente L’orientamento del raggio è controllato tramite: • mouse • hand tracking (virtual hand) • hand gesture Difficoltà nel selezionare oggetti piccoli o distanti (sensitività all’angolo) Interazione Selezione: Ray Casting e co co.. Possibile soluzione per oggetti piccoli e distanti: Deformable Ray Casting: Si seleziona l’oggetto più vicino al raggio (anche se non è stato “centrato in pieno”), come se il raggio venisse “curvato” verso tale oggetto Cone Casting: Il raggio viene sostituito da un cono di lunghezza infinita. Così facendo si ottiene un vero e proprio “volume di selezione”, che consente di selezionare oggetti piccoli o distanti più facilmente. È necessaria una politica discriminatoria nel caso in cui più oggetti si trovino dentro il cono alla stessa distanza dall’utente. Interazione Metafore per la manipolazione Si distinguono in: - esocentriche (viste dall’esterno del mondo) - egocentriche (viste in prima persona) RAY-CASTING (egocentrica): Una volta selezionato un oggetto è possibile utilizzare lo stesso raggio per spostare l’oggetto nello spazio Per ruotare l’oggetto attorno ad un asse diverso da quello definito dal raggio o per variare la distanza tra l’utente e l’oggetto sono necessari pulsanti aggiuntivi VIRTUAL HAND (egocentrica): Tutte le metafore basate su virtual hand (Go-Go compreso) offrono buoni risultati anche per la manipolazione, grazie alla semplicità con cui è possibile convertire posizione e orientamento della mano in trasformazioni (traslazioni e rotazioni) da applicare all’oggetto Interazione Metafore per la manipolazione HOMER: (Hand-centered Object Manipulation Extending Ray-casting) (egoc.) Utilizza il ray-casting per la selezione ma, una volta scelto un oggetto, il raggio scompare e una mano virtuale legata all’oggetto lo sostituisce È possibile traslare l’oggetto solo all’interno di un volume sferico di raggio pari alla massima estensione del braccio dell’utente Per ovviare a questa limitazione è stato implementato un meccanismo per variare la distanza tra l’utente e l’oggetto attraverso due pulsanti WORLDS IN MINIATURE (esocentrica): Per modificare la posizione o l’orientamento di un oggetto, l’utente “afferra” il corrispondente proxy nella miniatura e lo sposta o lo ruota come desidera Molto efficace per manipolazioni a “grana grossa”, ma presenta serie limitazioni sia sotto il profilo della precisione degli spostamenti sia nella manipolazione di piccoli oggetti Interazione Metafore per la manipolazione Fino a questo momento abbiamo considerato come possibili manipolazioni su un oggetto la sua traslazione o rotazione, azioni che dipendono dal contesto in cui è inserito l’oggetto Ci sono però manipolazioni che non dipendono dal contesto in cui è inserito l’oggetto. Tipici esempi sono la colorazione di un oggetto, il texture painting ecc.. Per gli esseri umani è naturale effettuare questo tipo di manipolazioni usando entrambe le mani (la mano dominante lavora rispetto al sistema di riferimento definito dalla mano non dominante) OBJECT IN HAND (egocentrica): Scambio di ruoli tra mano dominante e mano non dominante a seconda dei tempi dell’interazione: Mano non dominante portata vicino a mano dominante -> trigger menu Mano dominante -> Selezione azione da menu Mano non dominante -> Gestisce trasformazioni “geometriche” Mano dominante -> Gestisce interazione CLIP Interazione