Skip to content

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
Mostra/Nascondi contenuto.
Introduzione Il rendering 3D in realnulltime consiste nel far generare al Computer immagini tridimensionali molto rapidamente. Un’immagine appare sullo schermo, l’osservatore la vede ed interaginull sce, influendo tramite questo feedback su quello che sarà generato successivamente. Quenull sto ciclo di azione, reazione e rendering avviene ad una velocità sufficiente da fare in modo che l’osservatore non distingua le singole immagini ma veda un unico movimento che lo immerga in un processo dinamico e realistico. La frequenza con cui queste immagini sono visualizzate viene misurata in fps (frame per second). Da 5fps a 15fps si parla di interattività, mentre superata la frequenza di 25null30fps si può parlare effettivamente di realnulltime, con una soglia ottimale fissata a 60fps. Visto che 60 immagini al secondo corrispondono a poco più di 16 millisecondi disponibili per generare ogni frame, risulta evidente come sia poco il tempo a disposizione per creare un’immagine che riproduca in modo convincente la realtà, senza considerare che non tutto il tempo a disposizione può essere dedicato alla componente visiva. Sebbene l’hardware dedicato alla grafica tridimensionale fosse disponibile da molti anni per le workstation professionali, è solo in tempi relativamente recenti che l’uso di questi acceleratori 3D si è ampiamente diffuso anche a livello consumer. L’introduzione da parte di 3DFX della scheda Voodoo nel 1996 ha dato inizio a questa era. Con il passare degli anni la potenza computazionale delle schede è aumentata in modo vertiginoso, secondo un tasso di crescita tuttora ineguagliato da qualsiasi settore informatico; grazie infatti al continull nuo raffinamento dei processi produttivi è stato possibile stipare una sempre maggiore quantità di transistor per mm² il che, unito all’intrinseco parallelismo offerto dai calcoli inenull renti la generazione di scene tridimensionali, ha permesso di creare schede grafiche costinull tuite da migliaia di unità di calcolo parallelo. Lo straordinario sviluppo hardware è stato trainato dal mercato videoludico che in questi anni ha sorpassato l’industria dell’intrattenimento per eccellenza, ovvero Hollywood, alnull meno per quanto riguarda l’home video. Questo avanzamento tecnologico ha anche alimentato la ricerca nel campo della grafica interattiva, con la scoperta di nuove tecniche atte ad incrementare sia la velocità di rendering sia la qualità visiva. Nonostante il livello di realismo della grafica realnulltime continui a progredire ogni anno, la fruizione dei contenuti è continuata a restare prettamente bidimensionale. Lo schermo su cui vengono visualizzate le immagini infatti è (e lo rimarrà almeno per il medio periodo) 5

CONSULTA INTEGRALMENTE QUESTA TESI

La consultazione è esclusivamente in formato digitale .PDF

Acquista

FAQ

Per consultare la tesi è necessario essere registrati e acquistare la consultazione integrale del file, al costo di 29,89€.
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
Ingiustamente snobbata durante le ricerche bibliografiche, una tesi di laurea si rivela decisamente utile:
  • 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.
  • 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.
L'obiettivo di Tesionline è quello di rendere accessibile a una platea il più possibile vasta il patrimonio di cultura e conoscenza contenuto nelle 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]

Ci trovi su Skype (redazione_tesi)
dalle 9:00 alle 13:00

Oppure vieni a trovarci su

Parole chiave

3d
bvh
deferred shading
depth of field
frustum culling
glsl
grafica
head-tracking
informatica
motore grafico
obj/mtl
openal
opengl
partizionamento spaziale
post-processing
programmazione
real time
rendering
screen space ambient occlusion
shader
stereo
stereoscopia
tracciamento
wii remote

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