Desdinova Engine: Motore grafico 3D per rendering di ambienti outdoor in temp...Daniele Ferla
L’obiettivo di questa tesi (a cura di Daniele Ferla) è la realizzazione di una componente ad alto livello in grado di gestire la visualizzazione a video di ambienti 3D esterni. Si è quindi dovuto ricorrere alla creazione di quello che in gergo viene definito “motore grafico” e cioè una serie di classi, funzioni e quant’altro possa essere utile ad un programmatore che voglia avvicinarsi allo sviluppo di un videogioco e di una applicazione grafica in generale, senza essere a conoscenza di tutte le regole e le formule che ne derivano. Il motore quindi si occupa di tutte le metodologie inerenti il rendering della scena e la sua gestione.
Il progetto del motore grafico denominato Desdinova Engine risale a qualche hanno fa, precisamente nel maggio del 2000 quando venne iniziato il suo sviluppo in Visual C++ tramite le librerie OpenGL, in quel periodo molto in auge e utilizzate da parecchi produttori di grafica 3D. Con il passare del tempo però queste librerie hanno perduto il loro “fascino” anche perché poco aggiornate e utilizzate solo in ambiti specifici (rimangono comunque le librerie cross-platform più usate) e quindi la realizzazione del motore grafico si è diretta verso l’utilizzo delle più performanti, documentate e semplici Microsoft DirectX nella versione attuale 9.0c
Seppur a livello molto alto, le librerie della multinazionale di Redmond, non offrono tutto il necessario per la realizzazione di un prodotto finito semplice ed intuitivo ma, anzi, risultano essere “aperte” a nuove ottimizzazioni e utilizzi. Per questo, dunque, in questa tesi è stata sviluppata una libreria ancora più ad alto livello, avente come base le DirectX, ma finalizzate all’utilizzo più intuitivo e semplice del programmatore quale utente finale.
La seguente tesi (in bozza) non è mai stata pubblicata e non è un documento valido a fini pubblici in quanto non è mai stata discussa e valutata dalla commissione accademica.
Le slides della presentazione fatta per The Diligence il 24 marzo 2014.
Mostro due dei problemi che abbiamo riscontrato e di come li abbiamo risolti nella realizzazione del sito di Evoluzioen Telematica
Desdinova Engine: Motore grafico 3D per rendering di ambienti outdoor in temp...Daniele Ferla
L’obiettivo di questa tesi (a cura di Daniele Ferla) è la realizzazione di una componente ad alto livello in grado di gestire la visualizzazione a video di ambienti 3D esterni. Si è quindi dovuto ricorrere alla creazione di quello che in gergo viene definito “motore grafico” e cioè una serie di classi, funzioni e quant’altro possa essere utile ad un programmatore che voglia avvicinarsi allo sviluppo di un videogioco e di una applicazione grafica in generale, senza essere a conoscenza di tutte le regole e le formule che ne derivano. Il motore quindi si occupa di tutte le metodologie inerenti il rendering della scena e la sua gestione.
Il progetto del motore grafico denominato Desdinova Engine risale a qualche hanno fa, precisamente nel maggio del 2000 quando venne iniziato il suo sviluppo in Visual C++ tramite le librerie OpenGL, in quel periodo molto in auge e utilizzate da parecchi produttori di grafica 3D. Con il passare del tempo però queste librerie hanno perduto il loro “fascino” anche perché poco aggiornate e utilizzate solo in ambiti specifici (rimangono comunque le librerie cross-platform più usate) e quindi la realizzazione del motore grafico si è diretta verso l’utilizzo delle più performanti, documentate e semplici Microsoft DirectX nella versione attuale 9.0c
Seppur a livello molto alto, le librerie della multinazionale di Redmond, non offrono tutto il necessario per la realizzazione di un prodotto finito semplice ed intuitivo ma, anzi, risultano essere “aperte” a nuove ottimizzazioni e utilizzi. Per questo, dunque, in questa tesi è stata sviluppata una libreria ancora più ad alto livello, avente come base le DirectX, ma finalizzate all’utilizzo più intuitivo e semplice del programmatore quale utente finale.
La seguente tesi (in bozza) non è mai stata pubblicata e non è un documento valido a fini pubblici in quanto non è mai stata discussa e valutata dalla commissione accademica.
Le slides della presentazione fatta per The Diligence il 24 marzo 2014.
Mostro due dei problemi che abbiamo riscontrato e di come li abbiamo risolti nella realizzazione del sito di Evoluzioen Telematica
SVILUPPO DI VIDEOGIOCHI SU PIATTAFORMA ANDROID: TUTTA LA POTENZA SU DUE DIMEN...Danilo Riso
Into the game. Le basi concettuali. Cosa sono sprites e i tiles. In cosa consistono gli effetti di scrolling e di parallasse. Come si realizzano le animazioni dei fondali e degli sprites . Quali sono gli strumenti adatti per realizzare la grafica, gli effetti sonori? Usare Allegro Sprites Editor, Tiled Map Editor, GiMP, GrafX2. Quali tecnologie scegliere per scrivere un gioco? Panoramica fra gli engine 2D free ed a pagamento attualmente disponibili sul mercato. Introduzione ad uno di questi. AndEngine. Come rendere redditizio lo sviluppo di un gioco. Scelta del target, scelta delle logiche di distribuzione, sceglierlo come veicolo pubblicitario.Impostare e gestire la logica del gioco con AndEngine. Come creare il corretto loop per la gestione del flusso del gioco; Impostazione del GameLoop e corrispondenti azioni. Concetti di multithreading applicati al gamingGestire le animazioni con AndEngine. Come creare grafica ed animazioni e come integrarle ed utilizzarle. Gestire gli eventi e le collisioni sprite-sprite e sprite-background. Impariamo a gestire sprites e tiles. In cosa consistono gli effetti di scrolling, parallasse e come si ottengono. Come si realizzano le animazioni dei fondali e degli sprites.
Speech SMAU Milano del 19/10/2012 tenuto da Francesco Abbo sviluppatore Xonne.
La realizzazione di App mobile sfruttando le potenzialità di OpenGL e i concetti della realtà aumenta. Presentazione delle tecnologie ed approccio allo sviluppo di un prototipo.
Microsoft Kinect è un accessorio originariamente pensato per Xbox 360 ma che si è fatto strada anche per applicazioni non ludiche grazie alla sua semplicità d'uso e al suo SDK per il mondo .NET. In questa sessione introdurremo i concetti e le funzionalità che contraddistinguono la versione 1.0 di Kinect for Windows mettendo il luce pregi e difetti e cercando di dare un'idea di come possa essere sfruttato per realizzare applicazioni NUI di nuova generazione.
Slide della sessione "Introduzione a Kinect" tenuta durante il DotNetCampus 2014 a Roma il 10/05/2014
Una delle aree in cui l'introduzione dell'uso del computer e delle sue sempre crescenti capacità si esprimono al meglio è certamente quella della produzione multimediale.
Ebbene oggi esistono tantissimi software open source dedicati alle varie aree della produzione multimediale che non hanno nulla da invidiare ai software più blasonati e sono disponibili per tutti i principali sistemi operativi.
Ecco 21 soluzioni Open Source da usare subito + 1 bonus!
ITALIAN INTERACTION DESIGN DAY Firenze 19.06.2015Roberto Fazio
Un giorno di talks, workshops e tavola rotonda dedicato ai professionisti che lavorano all’intersezione tra arte, tecnologia e design organizzato dallo Studio Roberto Fazio
L’evento è totalmente sostenuto dagli stessi speaker.
Ingresso gratuito per il pubblico con 60 posti limitati prenotabili su Eventbrite.
http://www.i-i-d-d.org/
Una carrellata sugli strumenti di sviluppo per le principali piattaforme mobile: Android, iPhone, Windows Phone 7, Symbian e Blackberry.
Le principali caratteristiche, IDE, tool crossplatform e application store.
WhyMCA HappyHour
Design of G.E.M.I.X.: Game Engine Movie Interaction eXperienceAntonio Notarangelo
G.E.M.I.X. (Game Engine Movie Interaction Experience) è un’applicazione progettata e sviluppata come soluzione al problema dell’utilizzo dei game engine nell’ industria
cinematografica, più precisamente nel campo delle pre-visualizzazioni.
Il suo scopo è quello di comprovare l’effettiva efficacia di un motore grafico, Unreal Engine 4 nello specifico,
nella creazione di pre-visualizzazioni, ottenendo il massimo rendimento dalle sue caratteristiche principali:
il rendering in tempo reale e le modifiche al volo delle scene.
SVILUPPO DI VIDEOGIOCHI SU PIATTAFORMA ANDROID: TUTTA LA POTENZA SU DUE DIMEN...Danilo Riso
Into the game. Le basi concettuali. Cosa sono sprites e i tiles. In cosa consistono gli effetti di scrolling e di parallasse. Come si realizzano le animazioni dei fondali e degli sprites . Quali sono gli strumenti adatti per realizzare la grafica, gli effetti sonori? Usare Allegro Sprites Editor, Tiled Map Editor, GiMP, GrafX2. Quali tecnologie scegliere per scrivere un gioco? Panoramica fra gli engine 2D free ed a pagamento attualmente disponibili sul mercato. Introduzione ad uno di questi. AndEngine. Come rendere redditizio lo sviluppo di un gioco. Scelta del target, scelta delle logiche di distribuzione, sceglierlo come veicolo pubblicitario.Impostare e gestire la logica del gioco con AndEngine. Come creare il corretto loop per la gestione del flusso del gioco; Impostazione del GameLoop e corrispondenti azioni. Concetti di multithreading applicati al gamingGestire le animazioni con AndEngine. Come creare grafica ed animazioni e come integrarle ed utilizzarle. Gestire gli eventi e le collisioni sprite-sprite e sprite-background. Impariamo a gestire sprites e tiles. In cosa consistono gli effetti di scrolling, parallasse e come si ottengono. Come si realizzano le animazioni dei fondali e degli sprites.
Speech SMAU Milano del 19/10/2012 tenuto da Francesco Abbo sviluppatore Xonne.
La realizzazione di App mobile sfruttando le potenzialità di OpenGL e i concetti della realtà aumenta. Presentazione delle tecnologie ed approccio allo sviluppo di un prototipo.
Microsoft Kinect è un accessorio originariamente pensato per Xbox 360 ma che si è fatto strada anche per applicazioni non ludiche grazie alla sua semplicità d'uso e al suo SDK per il mondo .NET. In questa sessione introdurremo i concetti e le funzionalità che contraddistinguono la versione 1.0 di Kinect for Windows mettendo il luce pregi e difetti e cercando di dare un'idea di come possa essere sfruttato per realizzare applicazioni NUI di nuova generazione.
Slide della sessione "Introduzione a Kinect" tenuta durante il DotNetCampus 2014 a Roma il 10/05/2014
Una delle aree in cui l'introduzione dell'uso del computer e delle sue sempre crescenti capacità si esprimono al meglio è certamente quella della produzione multimediale.
Ebbene oggi esistono tantissimi software open source dedicati alle varie aree della produzione multimediale che non hanno nulla da invidiare ai software più blasonati e sono disponibili per tutti i principali sistemi operativi.
Ecco 21 soluzioni Open Source da usare subito + 1 bonus!
ITALIAN INTERACTION DESIGN DAY Firenze 19.06.2015Roberto Fazio
Un giorno di talks, workshops e tavola rotonda dedicato ai professionisti che lavorano all’intersezione tra arte, tecnologia e design organizzato dallo Studio Roberto Fazio
L’evento è totalmente sostenuto dagli stessi speaker.
Ingresso gratuito per il pubblico con 60 posti limitati prenotabili su Eventbrite.
http://www.i-i-d-d.org/
Una carrellata sugli strumenti di sviluppo per le principali piattaforme mobile: Android, iPhone, Windows Phone 7, Symbian e Blackberry.
Le principali caratteristiche, IDE, tool crossplatform e application store.
WhyMCA HappyHour
Design of G.E.M.I.X.: Game Engine Movie Interaction eXperienceAntonio Notarangelo
G.E.M.I.X. (Game Engine Movie Interaction Experience) è un’applicazione progettata e sviluppata come soluzione al problema dell’utilizzo dei game engine nell’ industria
cinematografica, più precisamente nel campo delle pre-visualizzazioni.
Il suo scopo è quello di comprovare l’effettiva efficacia di un motore grafico, Unreal Engine 4 nello specifico,
nella creazione di pre-visualizzazioni, ottenendo il massimo rendimento dalle sue caratteristiche principali:
il rendering in tempo reale e le modifiche al volo delle scene.
5. COMPUTER VISION
Lo scopo principale della visione artificiale è quello di riprodurre la vista
umana. Vedere è inteso non solo come l'acquisizione di una fotografia
bidimensionale di un'area, ma soprattutto come l'interpretazione del
contenuto di quell'area.
6. LIBRERIE CHE HO VALUTATO
AForge.NET
http://www.aforgenet.com
Hanno implementato loro le
funzionalità
Usa DirectShow per la webcam
Supporta i Lego Mind Storm
EmguCV
http://www.emgu.com
Wrap di openCV
Compila sotto Mono
Performance migliori con la versioni
commerciali (IPP, TBB)
7. COSA SI PUÒ FARE
Object detection
Face detection
Motion detection
Riconoscimento dei segnali stradali
8. HO VALUTATO ANCHE IL FACE
RECOGNITION
L’idea
Fotografia prima di usare il totem
Il totem riconosce l’utilizzatore
Problemi
Le foto dovevano essere fatte precise
Troppa variazione di luce non permette un riconoscimento accurato
10. COSA PERMETTE DI FARE
Riconosce 2 giocatori
Distanza da 1.5 mt a 3mt
Rileva 20 nodi per ogni scheletro
Riconoscimento vocale
Near mode (40 cm)
11. PROBLEMI
La distanza dell’utente non deve cambiare
Le coordinate sono -1...0…1
Altezze diverse del giocatore
I gesti vanno creati e gestiti
Non ci deve essere ressa intorno al giocatore
12. IL NUOVO SDK 1.7
Aggiunte due nuove gesture. «Push» e «Grip»
Cambiata la «Human Interface Guidelines». Adesso si usa «Push»
Ci dice direttamente lui se la mano è aperta o meno
Aperto il segnale del laser (1.6)
Aggiunto Kinect Fusion
14. A COSA FARE ATTENZIONE
Cercare di non aprire troppi spriteBatch.Begin()
Numero di poligoni dei modelli
Back-face culling.
Gli shader giusti sulle varie mesh dei modelli
17. HIGH LEVEL SHADER LANGUAGE
Deriva dal C
Nato come progetto congiunto tra NVIDIA e Microsoft
Poi han litigato :/
Viene trasformato in assembler e sparato direttamente alla
scheda video
XNA li pilota tramite gli «Effect» con cui gli passiamo i parametri
Per ogni gruppo di mesh possiamo applicare diversi shader
(era tutto in tedesco e diverso per ogni auto. YAY!)
18. COLLISIONI
Collisioni in 2D è l’intersezione tra le due immagini
Collisioni in 3D si fanno con Bounding Box e Bounding Sphere
19. XNA È MORTO
C++
DirectXTK (http://directxtk.codeplex.com)
DirectX Tex (http://directxtex.codeplex.com)
C#
MonoGame (http://monogame.codeplex.com)