Grafica - videogiochi - metodi
Buongiorno. Vorrei provare a studiare un po' di grafica-matematica, non ho un nome migliore, ovvero capire cosa c'è dietro ai motori grafici dei videogiochi, piuttosto che alle funzioni ed ai filtri dei programmi di editing video e immagini o i software cad. Ad esempio mi piacerebbe sapere come fa il tal programma di grafica a calcolare i filtri che uso spesso quando faccio i fotomontaggi o che metodi si usano per codificare informazioni multimediali. Mi occorre qualche indicazione, da qualcuno che già frequenta la materia, riguardo libri, dispense e ancora di più su quali siano le problematiche in modo da sapere quali chiavi usare per una ricerca personale. Le ricerche 'metodi numerici per la grafica' o 'metodi matematici per la grafica' mi danno tanta tanta roba e vorrei evitare di perdere giorni a capire cosa sto cercando.
Nota: non sono sicuro se la sezione più adatta sia questa o quella di informatica.
Grazie.
Buona domenica.
Nota: non sono sicuro se la sezione più adatta sia questa o quella di informatica.
Grazie.
Buona domenica.
Risposte
In genere i metodi usato non li considererei numerici quanto più geometrici e non ho capito perché metti insieme filtri di fotomontaggi con videogiochi.
Per i videogiochi guardati una qualsiasi libro di computer graphics (ne trovi molti) e su opengl/directX. Ci sono anche libri molto più pratici sui videogiochi (davvero moltissimi) e sulla programmazione su gpu.
Per i filtri invece si parla di computer vision oppure di image processing. Rispetto alla computer grafica e al rendering sono praticamente il problema inverso.
I libri di metodi numerici per la grafica si occupano di più di nurbs e simili. Nei videogiochi tutto è approssimato usando triangoli.
P.S: su coursera è appena iniziato un corso sulla computer vision. Ma penso che ci si possa iscrivere solo fino a stasera.
Per i videogiochi guardati una qualsiasi libro di computer graphics (ne trovi molti) e su opengl/directX. Ci sono anche libri molto più pratici sui videogiochi (davvero moltissimi) e sulla programmazione su gpu.
Per i filtri invece si parla di computer vision oppure di image processing. Rispetto alla computer grafica e al rendering sono praticamente il problema inverso.
I libri di metodi numerici per la grafica si occupano di più di nurbs e simili. Nei videogiochi tutto è approssimato usando triangoli.
P.S: su coursera è appena iniziato un corso sulla computer vision. Ma penso che ci si possa iscrivere solo fino a stasera.
Per la parte sui programmi di grafica, ci sono due ottimi programmi di grafica, GIMP (bitmap) ed Inkscape (vettoriale) che sono entrambi open source, il che significa che puoi scaricare il codice sorgente e vedere come funzionano dentro

Grazie per le risposte. Da esse mi sembra che la mia ignoranza sia maggiore di quanto pensassi. In ogni caso provo a chiarire meglio cosa cerco. Non mi interessa più di tanto l'aspetto legato alla programmazione e all'implementazione del metodo quanto piuttosto al metodo stesso. Ad esempio studiando PDE spesso ho trovato citazioni del tipo: "questo metodo viene usato per approssimare superfici in un ambiente virtuale" o cose simili. Essendo studente di analisi matematica volevo cercare di capire queste applicazioni ed eventualmente studiarle. Ho accumunato probabilmente problemi di natura molto diversa perchè ciò che ho a disposizione al momento sono solo indizi. Mi interesserebbe capire la matematica che c'è dietro. Insomma dare un volto ai tanti "questo metodo ha molte applicazioni nella tecnologia e nell'informatica" che ho sentito e che nessuno ha mai avuto il buon gusto di sviluppare all'università.
Ps. Questo sito, coursera, non lo conoscevo ma è molto ganzo. Grazie per la segnalazione.
Ps. Questo sito, coursera, non lo conoscevo ma è molto ganzo. Grazie per la segnalazione.
Un videogioco è composto da tanti sistemi diversi interagenti che conviene considerare separatamente in questo contesto.
Un motore grafico ha il solo scopo di prendere la descrizione geometrica di una scena (rappresentata normalmente come una lista di poligoni - triangoli per lo più) e di visualizzarla su schermo. Per descrivere la scena e mapparla nelle coordinate dello schermo si usano più che altro concetti di analisi lineare (di geometria affine e proiettiva). Per "illuminare" la scena si utilizzano poi alcuni modelli semplificati come quello di Phong. Con l'aumento della potenza di calcolo i metodi sono diventati più complicati e lo stesso è avvenuto per la pipeline che ora include anche metodi per calcolare la luce indiretta che può fare uso di versioni moderne di lightmap oppure si memorizzano utilizzando le armoniche sferiche (o altro insieme di basi sulla sfera) oppure si calcola tutto a partire dall'immagine finale (ovviamente in questo caso il risultato è molto meno preciso). In un motore grafico non si fa molto uso di tecniche di analisi numerica. Solo di recente sono state introdotte tecniche di tessellazione nelle schede video che sono in parte basate sulle superfici spline (o comunque su questo tipo di idee).
Nella parte del videogioco riservata all'animazione dei personaggi, si determina la posizione dei diversi giunti degli scheletri che determinano la posizione dei personaggi. In questo caso si potrebbero applicare metodi di inverse kinematics che consiste nella soluzione di un sistema di equazioni.
Nei motori fisici dei giochi puoi invece trovare parecchia analisi numerica. Di fatto risolvi numericamente le equazioni della dinamica a partire dalle forze che interagiscono sui diversi oggetti. Il problema più grande consiste però nel gestire correttamente le interazioni tra i vari oggetti e soprattutto gestire le posizioni di equilibrio. Utilizzando i metodi numerici si tende infatti ad arrivare a situazioni in cui l'oggetto vibra invece di fermarsi nella posizione di equilibrio ed è necessario riconoscere queste situazioni e correggerle.
Questa è una rapidissima panoramica ma se ti interessa qualcosa di più dettagliato chiedi pure.
Un motore grafico ha il solo scopo di prendere la descrizione geometrica di una scena (rappresentata normalmente come una lista di poligoni - triangoli per lo più) e di visualizzarla su schermo. Per descrivere la scena e mapparla nelle coordinate dello schermo si usano più che altro concetti di analisi lineare (di geometria affine e proiettiva). Per "illuminare" la scena si utilizzano poi alcuni modelli semplificati come quello di Phong. Con l'aumento della potenza di calcolo i metodi sono diventati più complicati e lo stesso è avvenuto per la pipeline che ora include anche metodi per calcolare la luce indiretta che può fare uso di versioni moderne di lightmap oppure si memorizzano utilizzando le armoniche sferiche (o altro insieme di basi sulla sfera) oppure si calcola tutto a partire dall'immagine finale (ovviamente in questo caso il risultato è molto meno preciso). In un motore grafico non si fa molto uso di tecniche di analisi numerica. Solo di recente sono state introdotte tecniche di tessellazione nelle schede video che sono in parte basate sulle superfici spline (o comunque su questo tipo di idee).
Nella parte del videogioco riservata all'animazione dei personaggi, si determina la posizione dei diversi giunti degli scheletri che determinano la posizione dei personaggi. In questo caso si potrebbero applicare metodi di inverse kinematics che consiste nella soluzione di un sistema di equazioni.
Nei motori fisici dei giochi puoi invece trovare parecchia analisi numerica. Di fatto risolvi numericamente le equazioni della dinamica a partire dalle forze che interagiscono sui diversi oggetti. Il problema più grande consiste però nel gestire correttamente le interazioni tra i vari oggetti e soprattutto gestire le posizioni di equilibrio. Utilizzando i metodi numerici si tende infatti ad arrivare a situazioni in cui l'oggetto vibra invece di fermarsi nella posizione di equilibrio ed è necessario riconoscere queste situazioni e correggerle.
Questa è una rapidissima panoramica ma se ti interessa qualcosa di più dettagliato chiedi pure.