Programmazione di un motore grafico immersivo
Il lavoro svolto si è prefissato come obbiettivo la realizzazione di un motore grafico autonomo che offrisse una riproduzione realistica e immersiva di uno scenario virtuale dal punto di vista visivo, sonoro e della gestione dei movimenti dell’utente all’interno dell’ambiente simulato.
Per quanto riguarda il primo aspetto si è agito su due fronti. Da una parte si è fatto uso della stereoscopia, generando quindi per ogni fotogramma una coppia di immagini capaci di integrare gli elementi monoculari osservabili ed efficaci anche tramite un solo occhio con la stereopsi, derivante dal processo di fusione sensoriale operato dal cervello ed in grado di conferire una sensazione di profondità analizzando le disparità tra le immagini recepite da entrambi gli occhi. Queste differenze derivano dalla loro separazione orizzontale, la cosiddetta distanza intero¬culare, e dalla relativa generazione di due differenti volumi di visione asimmetrici (frustum off-axis). All’interno del motore grafico questi ultimi vengono generati tramite una modifica originale alla procedura introdotta da Paul Bourke grazie alla quale è stato possibile gestire in maniera corretta la variazione del FOV orizzontale. La corretta rilevazione del movimento parallattico può essere simulata in modo efficace tracciando la posizione dell’osservatore rispetto allo schermo (head-tracking) istante per istante. Per implementare questo processo si è fatto uso della telecamera a raggi infrarossi contenuta all’interno del controller Nintendo Wii Remote da accoppiare con una serie di Led anch’essi a infrarossi da posizionarsi sul capo dell’utilizzatore.
Per offrire una riproduzione convincente della realtа è comunque necessario, oltre alla percezione della profondità, che i fotogrammi in se stessi siano quanto più verosimili possibile. Il lavoro svolto adempie a questo compito grazie all’implementazione di una recente tecnica di rendering chiamata deferred shading; tramite questo sistema soltanto i fragment che realmente contribuiscono a formare l’immagine verranno elaborati. Per farlo gli attributi relativi ad ogni pixel vengono immagazzinati all’interno di un buffer chiamato G Buffer situato nella memoria grafica per un rapido accesso tramite texture multiple. Operare in questo modo comporta un duplice vantaggio: trasferire tutte le informazioni una volta soltanto e poterle in seguito riutilizzare un numero arbitrario di volte applicando luci, ombre e altri effetti visivi tramite algoritmi di image processing. Con lo scopo di ridurre ulteriormente il numero di pixel totali da elaborare, per ogni fonte di luce è stato inoltre definito un proprio volume di influenza successivamente approssimato per eccesso tramite mesh convessa per essere infine sottoposto ad un depth test: in questo modo si ottiene la proiezione bidimensionale che racchiude i pixel per i quali il contributo di quella particolare luce sia diverso da zero. Gli effetti di post processing implementati sono stati selezionati in base al favorevole rapporto tra costo computazionale e grado di realismo offerto: Anti Aliasing, Depth Of Field e Screen Space Ambient Occlusion; gli ultimi due in particolare permettono di simulare rispettivamente la ridotta profondità di campo del sistema visivo umano e una credibile approssimazione di illuminazione globale in real time. Per diminuire la potenza di calcolo complessiva richiesta si è fatto uso di una struttura di partizionamento spaziale necessaria per ridurre il numero di triangoli da renderizzare, nello specifico una BVH (per la cui generazione è stata ideata una particolare ottimizzazione) con volumi di bound sferici da utilizzare in unione ad una procedura di frustum culling ottimizzata per questo scopo. Il tutto è stato realizzato tramite linguaggio C, OpenGL 2.0 e shaders in formato GLSL.
Sotto l’aspetto sonoro si sono utilizzate le librerie OpenAL per generare l’audio posizionale e gestire l’effetto doppler, fornendo una corretta localizzazione dei suoni tramite i diffusori e garantendo un ulteriore grado di immersione all’interno della scena.
Per quanto riguarda la modalitа di navigazione, si è cercato di riprodurre le velocità di spostamento, accelerazione e decelerazione del corpo e della testa dell’uomo tramite l’utilizzo di un vettore (indicizzato secondo il frame rate istantaneo) in base al quale calcolare traslazioni e rotazioni da effettuare per ogni fotogramma.
Grazie al fatto che il motore grafico realizzato considera come potenzialmente dinamici tutti gli elementi che è in grado di gestire (geometria, luci, suoni, osservatore, ecc…), non viene inoltre posto nessun vincolo alla tipologia di algoritmi da implementare; sommando questo fatto alla modularità con cui è stato progettato l’intero sistema, si è reso molto semplice aggiungere nuove funzionalità.
CONSULTA INTEGRALMENTE QUESTA TESI
La consultazione è esclusivamente in formato digitale .PDF
Acquista
CONSULTA INTEGRALMENTE QUESTA TESI
La consultazione è esclusivamente in formato digitale .PDF
Acquista
Informazioni tesi
Autore: | Daniele Salvioni |
Tipo: | Tesi di Laurea |
Anno: | 2009-10 |
Università: | Università degli Studi di Milano |
Facoltà: | Scienze Matematiche, Fisiche e Naturali |
Corso: | Informatica |
Relatore: | Daniele Marini |
Lingua: | Italiano |
Num. pagine: | 319 |
Forse potrebbe interessarti la tesi:
Evoluzione dell'immaginario nei video musicali: la nuova logica selettiva di Koichiro Tsujikawa
FAQ
Come consultare una tesi
Il pagamento può essere effettuato tramite carta di credito/carta prepagata, PayPal, bonifico bancario.
Confermato il pagamento si potrà consultare i file esclusivamente in formato .PDF accedendo alla propria Home Personale. Si potrà quindi procedere a salvare o stampare il file.
Maggiori informazioni
Perché consultare una tesi?
- perché affronta un singolo argomento in modo sintetico e specifico come altri testi non fanno;
- perché è un lavoro originale che si basa su una ricerca bibliografica accurata;
- perché, a differenza di altri materiali che puoi reperire online, una tesi di laurea è stata verificata da un docente universitario e dalla commissione in sede d'esame. La nostra redazione inoltre controlla prima della pubblicazione la completezza dei materiali e, dal 2009, anche l'originalità della tesi attraverso il software antiplagio Compilatio.net.
Clausole di consultazione
- L'utilizzo della consultazione integrale della tesi da parte dell'Utente che ne acquista il diritto è da considerarsi esclusivamente privato.
- Nel caso in cui l’utente che consulta la tesi volesse citarne alcune parti, dovrà inserire correttamente la fonte, come si cita un qualsiasi altro testo di riferimento bibliografico.
- L'Utente è l'unico ed esclusivo responsabile del materiale di cui acquista il diritto alla consultazione. Si impegna a non divulgare a mezzo stampa, editoria in genere, televisione, radio, Internet e/o qualsiasi altro mezzo divulgativo esistente o che venisse inventato, il contenuto della tesi che consulta o stralci della medesima. Verrà perseguito legalmente nel caso di riproduzione totale e/o parziale su qualsiasi mezzo e/o su qualsiasi supporto, nel caso di divulgazione nonché nel caso di ricavo economico derivante dallo sfruttamento del diritto acquisito.
Vuoi tradurre questa tesi?
Per raggiungerlo, è fondamentale superare la barriera rappresentata dalla lingua. Ecco perché cerchiamo persone disponibili ad effettuare la traduzione delle tesi pubblicate nel nostro sito.
Per tradurre questa tesi clicca qui »
Scopri come funziona »
DUBBI? Contattaci
Contatta la redazione a
[email protected]
Parole chiave
Tesi correlate
Non hai trovato quello che cercavi?
Abbiamo più di 45.000 Tesi di Laurea: cerca nel nostro database
Oppure consulta la sezione dedicata ad appunti universitari selezionati e pubblicati dalla nostra redazione
Ottimizza la tua ricerca:
- individua con precisione le parole chiave specifiche della tua ricerca
- elimina i termini non significativi (aggettivi, articoli, avverbi...)
- se non hai risultati amplia la ricerca con termini via via più generici (ad esempio da "anziano oncologico" a "paziente oncologico")
- utilizza la ricerca avanzata
- utilizza gli operatori booleani (and, or, "")
Idee per la tesi?
Scopri le migliori tesi scelte da noi sugli argomenti recenti
Come si scrive una tesi di laurea?
A quale cattedra chiedere la tesi? Quale sarà il docente più disponibile? Quale l'argomento più interessante per me? ...e quale quello più interessante per il mondo del lavoro?
Scarica gratuitamente la nostra guida "Come si scrive una tesi di laurea" e iscriviti alla newsletter per ricevere consigli e materiale utile.
La tesi l'ho già scritta,
ora cosa ne faccio?
La tua tesi ti ha aiutato ad ottenere quel sudato titolo di studio, ma può darti molto di più: ti differenzia dai tuoi colleghi universitari, mostra i tuoi interessi ed è un lavoro di ricerca unico, che può essere utile anche ad altri.
Il nostro consiglio è di non sprecare tutto questo lavoro:
È ora di pubblicare la tesi