Proiezione Stereoscopica



Documenti analoghi
OpenGL: visualizzazione 3D

Introduzione. Costruzione di Interfacce Primi passi in OpenGL. Sierpinski Gasket. Sierpinski gasket. Event driven programming. Stuttura del programma

PROGETTO ESCAVATORE VIRTUALE

LA VISIONE STEREOSCOPICA

gestione e modifica di immagini fotografiche digitali

Autostereoscopy as a Representation Criteria for Distributed Simulation

Il Digital Signage. Utilizzi. Il Digital Signage

GUIDA ALLE SOLUZIONI


Esame di INFORMATICA

IsoStereo 3D: il sistema generale ed automatizzato per ricostruzione tridimensionale

EM Camera Web con microfono

Corso di grafica vettoriale

Simulazioni in Realtà Virtuale con sistemi multi-schermo

Processo di rendering

Come guardare i contenuti 3D su un proiettore BenQ: Requisiti minimi di sistema per riprodurre contenuti 3D su un proiettore BenQ:

Capitolo 13: L offerta dell impresa e il surplus del produttore

CARATTERISTICHE VIDEO

Lunghezza ocale. Donato Di Bello

Attualmente esistono sul mercato videoendoscopi sempre più sofisticati con una buona risoluzione di immagine ed estremamente portatili.

Dimensione di uno Spazio vettoriale

ICARO Terminal Server per Aprile

Stereoscopia e anaglifi: vi sono nuove prospettive? Stereoscopia su mobile device

3DE Modeling Professional

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL

Processo di rendering

Il controllo della visualizzazione

SPSS Statistics per Windows - Istruzioni di installazione per (Licenza per utenti singoli)

Codifica delle Informazioni

Overlay - video. Formati video: h264 - flv Dimensione: non superiore a 100 MB.

Tutorial di HTML basato su HTML 4.0 e CSS 2

Calcolo Focale. Ing. Vincenzo Falanga

Proiezioni Grafica 3d

AddCAD per ZWCad. Passa alla progettazione 3D rimanendo sul tuo Cad famigliare

Guida di Brother Image Viewer per Android

Manuale IT_VNA by IZ1PMX

Librerie digitali. Video. Gestione di video. Caratteristiche dei video. Video. Metadati associati ai video. Metadati associati ai video

VideoLive Talia tools

TiAxoluteNighterAndWhiceStation

C (1) SNC toolbox mobile. Guida applicativa Software Versione Sony Corporation

Progettaz. e sviluppo Data Base

WoWords. Guida all uso: creare ed utilizzare le frasi. In questa guida è descritto come creare ed utilizzare le frasi nel software WoWords.

La struttura dati ad albero binario

Accessibilità e Guida all'uso del Sito

Unione Europea Repubblica Italiana Regione Calabria Cooperativa sociale

Animazioni 3D. Informatica Grafica I. Le basi dell'animazione 3D. Le basi dell'animazione 3D. Le basi dell'animazione 3D. Le basi dell'animazione 3D

Classificazione dei Sensori. (raccolta di lucidi)

EW1051 Lettore di schede USB

Google AdWords. Corrispondenze Parole Chiave

Guida alla registrazione on-line di un DataLogger

Tipi di colore. Informazioni sul colore. Durante la stampa. Uso del colore. Gestione della carta. Manutenzione. Risoluzione dei problemi

Creare una Rete Locale Lezione n. 1

Tutorial 3DRoom. 3DRoom

IBM SPSS Statistics per Linux - Istruzioni di installazione (Licenza per sito)

HANDICAP FISICI. Sotto argomento 2.1

ISTR Uso del Windows Messenger

T*SOL è un software di simulazione dinamica professionale per il dimensionamento e l'ottimizzazione di impianti solari termici.

Riconoscimento tramite OCR di testi presentati sullo schermo in forma grafica

Corso di Sistemi di Elaborazione delle informazioni

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

INTRODUZIONE. Gianni Rossi

Stampe in rete Implementazione corretta

Dino-Lite TrichoScope

La Videosorveglianza Criteri per il dimensionamento dello storage

Sistema operativo. Sommario. Sistema operativo...1 Browser...1. Convenzioni adottate

Presentation Draw. Guida dell utilizzatore

I quattro ordini di scuola a confronto Elisabetta Malaguti

WBT Authoring. Web Based Training STUDIO

AddCAD per ZWCad. Passa alla progettazione 3D rimanendo sul tuo Cad famigliare

Scheda di approfondimento gioco I pixel

2 Gli elementi del sistema di Gestione dei Flussi di Utenza

Analisi con due Velocità

Il tutto a meno, e spesso a molto meno, del costo di un caffé al giorno

HDTV LA TELEVISIONE AD ALTA DEFINIZIONE

Foveonizzazione. E' possibile scaricare DCRaw per piattaforme Windows e MacOS da questo sito:

Manuale di imos CAD. Modulo Document Manager

Aggiornamenti Net2. Il Centrafari. Il Centrafari

- la possibilità di monitorare lo stato attuale della macchina - fornire una reportistica sulla base di alcune variabili

TECNICA E TATTICA VOLLEY

PULSANTI E PAGINE Sommario PULSANTI E PAGINE...1

Il database management system Access

SPC e distribuzione normale con Access

Informatica Grafica. Prof. Massimiliano Dellisanti Fabiano Vilardi. (2a parte) a.a. 2011/2012

Descrizione generale della tecnologia usata

CONVERTITORE SERIALE ASINCRONO RS485 / USB

APRIRE UN PROGRAMMA DI FOGLIO ELETTRONICO

Francesco Cicogna. Creazione di un e-book

IMPIANTI DI SORVEGLIANZA TVCC PER APPLICAZIONI DI SICUREZZA (VIDEOSORVEGLIANZA)

Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main

Tutorial per il modulo Composizione e tecnica fotografica Un approfondimento sulla fotografia panoramica. Roberto Gonella, Alberto Terragni

Mon Ami 3000 Produzione base Produzione articoli con distinta base e calcolo dei fabbisogni

CONTROLLO NUMERICO Z32

Il vantaggio comparato. Il vantaggio comparato. Il vantaggio comparato

SYSTEMPRO PROGRAMMA DI CALCOLO. Xcare

L ambiente grafico e le viste

Features. Senza limite. Numero di immagini importabili. Gestione di immagini terrestri (EVO) e aeree (ufly)

La lente singola rimane ancora in uso nelle macchine più economiche e, entro certi limiti, dà dei risultati accettabili.

Nel caso di erogazione di un servizio a distanza, Q-Room permette

Guida rapida Vodafone Internet Box

FUNZIONE. Si scrive: A B f: A B x y=f(x) (si legge: f funzione da A in B) x f y= f(x)

Transcript:

Proiezione Stereoscopica Sistema di Realtà Virtuale e 3D Stereo Rendering Museo dell'informatica di Cesena Andrea Bernardi (bernardi@csr.unibo.it) Stefano Cacciaguerra (scacciag@cs.unibo.it)

Contenuto Introduzione Visione stereoscopica Sistemi stereo passivi e attivi Storia dei dispositivi VR Il nostro sistema 3D Stereo Rendering Riferimenti

Introduzione La realtà virtuale è stata il soggetto di molti film di fantascienza. Nell immaginario collettivo è associata a videogame più immersivi. In realtà, i sistemi VR (da più di 20 anni) permettono la progettazione di nuove e vecchie tecnologie incrementando i gradi di libertà disponibili per la loro rappresentazione.

Realtà Virtuale Howard Rheingold definisce la Realtà Virtuale (VR): As an experience in which a person is surrounded by a threedimensional computer-generated representation, and is able to move around in the virtual world and see it from different angles, to reach into it, grab it, and reshape it. Un sistema di realtà virtuale fornisce una scena real-time centrata sull utente con head-tracking, controllo interattivo e display binoculare.

Visione Stereoscopica Stereoscopia significa visione spaziale, dalle parole greche stereo che significa spazio e skopein che vuol dire vedere. Gli occhi sono posizionati sul viso ad una certa distanza l uno dall altro ogni occhio vede il medesimo oggetto da un angolazione prospettica leggermente diversa. A questo punto interviene il cervello Fusione: sovrapposizione delle due immagini provenienti dai due occhi. Stereopsi: analisi delle differenze esistenti tra le immagini provenienti dai due occhi a causa del parallasse, permettendo la percezione della profondità.

Sistemi Stereo I sistemi stereo sono classificati in attivi e passivi : i sistemi attivi usano occhiali con componenti elettronici quelli passivi che ne sono sprovvisti. Attivi LCD Shutter Glasses Interlacing Passivi Anaglifici Polarizzati Page-Flipping Sync-Doubling

Sistemi Stereo Attivi Gli occhiali utilizzati contengono componenti elettroniche. Le immagini stereo sono presentate alternando rapidamente la scena per l occhio dx e sx mentre viene mascherato l altro occhio usando occhiali otturanti, come gli LCD shutter glasses. Tali occhiali utilizzano diverse tecniche di switching.

Interlacing Un singolo frame è diviso in due campi: uno contenente le linee di scansione dispari e l altro quelle pari. Le immagini per l occhio dx e per il sx sono divise in linee di scansione pari e dispari. Prima sono visualizzate le linee di scansione pari, poi quelle dispari. Quando il frame per l occhio dx è visualizzato sullo schermo, l occhio sx è coperto dagli occhiali e viceversa. È usato nei sistemi televisivi esistenti, come NTSC, PAL.

Page-Flipping Le immagini per l occhio dx e sx sono mostrate alternativamente sullo schermo. Quando il frame per un occhio è mostrato sullo schermo, l altro occhio è coperto. In questo modo, entrambi le risoluzioni verticali e orizzontali sono le stesse, perchè i frame sono visualizzati uno per uno sullo schermo intero. Serve hardware ad alte prestazioni, dato che il frame rate è dimezzato ed il monitor deve supportare almeno 120 Hz di refresh verticale.

Sync-Doubling I frame per l occhio dx e sx sono scalati verticalmente e inseriti rispettivamente nella metà alta e bassa dello schermo. Non richiede alcun hardware particolare. Cmq, adottando un sync-doubler si possono allungare le immagini alla dimensione naturale (la qualità non è buona come nel page-flipping).

Sistemi Stereo Passivi I sistemi anaglifici creano un immagine di colori differenti per l occhio dx e sx. Gli utenti vedono l immagine usando occhiali composti da lenti colorate. Pro tali occhiali costano circa 1 euro Contro la qualità dell immagine è bassa la perdita del colore

Polarizzazione È basato sul principio della luce polarizzata. Le immagini per l occhio dx e sx sono separate attraverso filtri polarizzati negli occhiali e filtri polarizzati opposti applicati ai due proiettori. L onda luce non polarizzata vibra in tutte le direzioni, mentre quella polarizzata vibra in una singola direzione. La polarizzazione dell onda luce in un determinato momento dipende dall orientamento dell onda in quel momento. La luce non polarizzata può essere trasformata in luce polarizzata facendo passare l onda luce attraverso un polarizzatore. Inoltre l occhio umano è poco sensibile alla polarizzazione della luce, pertanto l immagine non è degradata.

Polarizzazione lineare Se la luce è polarizzata in una singola direzione (nord/sud, est/ovest o anche diagonalmente), si dice che la luce è polarizzata linearmente. Se l utente cambia l orientamento degli occhiali polarizzati linearmente, inclinando la testa, l orientamento della polarizzazione dell utente non coinciderà con quello dei filtri montati sui proiettori, e ci sarà una perdita di informazione stereo.

Polarizzazione circolare Usando una polarizzazione circolare si ottiene un immagine stereo che non è influenzata dall inclinazione. Occhiali con lenti polarizzate. Il prezzo varia dai 5 ai 50 euro.

Storia dei Sistemi di VR: Prima del 1991 BOOMs forniscono una visione binoculare tramite schermi CRT. Head Mounted Display (HMD) utilizzano schermi LCD di dimensioni 320x200. Entrambi i dispositivi seguono il movimento della testa (head-tracking).

Storia dei Sistemi di VR: 1991 Il Cave Automatic Virtual Enviroment (CAVE) è considerato lo stato dell arte di tali sistemi. Supera le limitazioni degli HMD: Pro Alta risoluzione Grande campo visivo Display stabile Fino a 10 persone Head-tracking e sonoro 3D Contro Costa circa 10 milioni di dollari Necessita di un team altamante qualificato Necessita di una stanza dedicata

Storia dei Sistemi di VR: 1994 L ImmersaDesk è un display stereoscopico: fino a cinque utenti alta risoluzione head-tracking facilmente installabile trasportabile

Storia dei Sistemi di VR: 1995 L Infinity Wall è un sistema su grande scala: per presentazioni a più di dieci persone, installabile in una normale classe.

Storia dei Sistemi di VR: 2002 I display autostereoscopici riproducono un effetto 3D dentro la stereo zone senza la necessità di altri dispositivi. Date le due prospettive un software specifico inserisce alternativamente una linea appartenente a un immagine e all altra.

Storia dei Sistemi di VR: 2002 L effetto 3D è ottenuto con un normale monitor TFT a cui è stata aggiunta una lens plate. La lente riflette la luce in maniera tale che ogni occhio dell utente possa vedere le righe pari o le righe dispari. Svantaggi: la risoluzione orizzontale è dimezzata. il display non può visualizzare tutte le immagini 2D se l utente si sposta dalla stereo zone, l immagine sarà invertita.

Storia dei Sistemi di VR: 2002 I display prodotti ora, superano quest ultimo ostacolo cercando la posizione degli occhi tramite infrarossi o telecamere, ma i loro prezzi superano ancora i 10.000$. Es: Display autostereoscopico con tracciamento degli occhi prodotto dalla A.C.T. Kern che trova gli occhi tramite due telecamere montate sopra il display (prezzo 19000$).

Storia dei Sistemi di VR: 2003 I sistemi stereo passivi forniscono delle performance sostanzialmente diverse da un sistema CAVE ad un prezzo più ragionevole: PC e schede video presenti nel mercato consumer il sistema operativo Linux o Windows Alcuni esempi: GeoWall, VizTek P1 Virtual Wall e VisBox. Il GeoWall utilizzato per lo studio della geografia, è possibile installarlo con un prezzo minimo di 8.500$.

Storia dei Sistemi di VR: 2003 Il VizTek P1 Virtual Wall è più grande di un GeoWall e fornisce la possibilità di seguire il movimento della testa o delle mani dell utente. La VisBox (50.000$) è uno schermo di dimensioni variabili formato da tanti blocchi di piccole dimensioni in modo da avere un altissima definizione.

Storia dei Sistemi di VR: 2003 La Virtual Room è lo stato dell arte dei sistemi di visione stereoscopica passiva adatti a un grande pubblico: È un sistema a otto schermi, 360 gradi, proiettato da dietro. Il prezzo di un installazione è circa di 500000 $ ed si trova al Museo di Melbourne in Australia.

Il Nostro Progetto Un sistema stereo passivo, basato sulla polarizzazione circolare.

Hardware Impiegato Il sistema è composta dai seguenti componenti: workstation Intel P4 3.2 GHz, 1GB di RAM, scheda grafica ATI Radeon Sapphire X300 SE 128 MB di RAM due proiettori Acer PD521 con tecnologia DLP e 2000 Lumen un pannello di dimensione 2,5x2 m due filtri polarizzati circolarmente

3D Stereo Rendering Un esempio per creare una scena stereoscopica con tale hardware utilizzando le librerie OpenGL e GLUT. int main(int argc, char** argv) { glutinit(&argc, argv); glutinitdisplaymode(glut_rgb GLUT_DEPTH GLUT_DOUBLE); HALF_WIDTH=SCREEN_WIDTH=glutGet(GLUT_SCREEN_WIDTH))*2; SCREEN_HEIGHT=glutGet(GLUT_SCREEN_HEIGHT); glutinitwindowsize(screen_width,screen_height); glutdisplayfunc(display); glutmainloop(); return 0; }

Ripasso OpenGL void gluperspective(gldouble fovy, GLdouble aspect, GLdouble znear, GLdouble zfar) void glulookat(gldouble eyex, GLdouble eyey, GLdouble eyez, GLdouble centerx, GLdouble centery, GLdouble centerz, GLdouble upx, GLdouble upy, GLdouble upz)

Metodo Toe-in void display(void) { glclear( GL_COLOR_BUFFER_BIT GL_DEPTH_BUFFER_BIT ); ratio = (GLfloat) HALF_WIDTH / SCREEN_HEIGHT; //left screen glmatrixmode(gl_projection); glloadidentity(); gluperspective(60, ratio, 1, 600); glmatrixmode(gl_modelview); glloadidentity(); glviewport(0, 0, HALF_WIDTH, SCREEN_HEIGHT); glulookat(-eye_separation, 0.0,distanceobj,0.0,0.0,0.0,0.0,1.0,0.0); glpushmatrix(); DrawModel(); glpopmatrix();

Metodo Toe-in //right screen glmatrixmode(gl_projection); glloadidentity(); gluperspective(60, ratio, 1, 600); glmatrixmode(gl_modelview); glloadidentity(); glviewport(half_width,0,half_width,screen_height); glulookat(eye_separation, 0.0,distanceobj,0.0,0.0,0.0,0.0,1.0,0.0); glpushmatrix(); DrawModel(); glpopmatrix(); } glutswapbuffers();

Metodo Toe-in

Parallel Axis Asymmetric Frustum Perspective Projection Il metodo che riproduce correttamente il nostro sistema visivo è chiamato proiezione prospettica asimmetrica ad assi paralleli. In questo caso il vettore vista per ogni camera è parallelo ed è utilizzata la glfrustum() per descrivere la proiezione prospettica. void glfrustum(gldouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far)

Parallel Axis Asymmetric Frustum Perspective Projection void display(void) { xyz r; double ratio,radians,wd2,ndfl; double left,right,top,bottom; double lnear=0.1; double lfar=10000; lnear = camera.focallength / 5; ratio = (double) HALF_WIDTH / SCREEN_HEIGHT; radians = DTOR * camera.aperture / 2; wd2 = lnear * tan(radians); ndfl = lnear / camera.focallength; CROSSPROD(camera.vd,camera.vu,r); Normalise(&r); r.x *= camera.eyesep / 2.0; r.y *= camera.eyesep / 2.0; r.z *= camera.eyesep / 2.0; glclear( GL_COLOR_BUFFER_BIT GL_DEPTH_BUFFER_BIT );

Parallel Axis Asymmetric Frustum Perspective Projection //left screen glmatrixmode(gl_projection); glloadidentity(); left = - ratio * wd2-0.5 * camera.eyesep * ndfl; right = ratio * wd2-0.5 * camera.eyesep * ndfl; top = wd2; bottom = - wd2; glfrustum(left,right,bottom,top,lnear,lfar); glviewport(0, 0, HALF_WIDTH, SCREEN_HEIGHT); glmatrixmode(gl_modelview); glloadidentity(); glulookat(camera.vp.x+r.x,camera.vp.y+r.y,camera.vp.z+r.z, camera.vp.x + r.x + camera.vd.x, camera.vp.y + r.y + camera.vd.y, camera.vp.z + r.z + camera.vd.z, camera.vu.x,camera.vu.y,camera.vu.z); glpushmatrix(); DrawModel(); glpopmatrix();

Parallel Axis Asymmetric Frustum Perspective Projection } //right screen glmatrixmode(gl_projection); glloadidentity(); left = - ratio * wd2 + 0.5 * camera.eyesep * ndfl; right = ratio * wd2 + 0.5 * camera.eyesep * ndfl; top = wd2; bottom = - wd2; glfrustum(left,right,bottom,top,lnear,lfar); glviewport(half_width, 0, HALF_WIDTH, SCREEN_HEIGHT); glmatrixmode(gl_modelview); glloadidentity(); glulookat(camera.vp.x-r.x,camera.vp.y-r.y,camera.vp.z - r.z, camera.vp.x - r.x + camera.vd.x, camera.vp.y - r.y + camera.vd.y, camera.vp.z - r.z + camera.vd.z, camera.vu.x,camera.vu.y,camera.vu.z); glpushmatrix(); DrawModel(); glpopmatrix(); glutswapbuffers();

Parallel Axis Asymmetric Frustum Perspective Projection

Riferimenti Sito di P. Bourke http://astronomy.swin.edu.au/%7epbourke/stereographics/ GeoWall Consortium http://geowall.geo.lsa.umich.edu/ GLUT Library http://www.xmission.com/~nate/glut.html OpenGL Programming Guide