Argomenti matematici per la programmazione di grafica 3D [chiuso]


14

Comprendo che i seguenti argomenti matematici sono necessari per la programmazione grafica 3D. Ho iniziato a farne alcuni nel mio corso di matematica. Qualcuno può indicarmi la direzione di una risorsa che spiega come si applicano? Quali problemi di grafica / gioco vengono utilizzati per risolvere?

  • matematica vettoriale
  • matematica di matrice
  • quaternioni
  • algebra lineare

Per quanto posso vedere questi sono tutti argomenti di algebra / matrice lineare. Ci sono altri argomenti richiesti?


Questa domanda ha alcune buone informazioni al riguardo: gamedev.stackexchange.com/questions/2029/…
michael.bartnett

@beardcp Potrei arrivare fino al duplicato.
L'anatra comunista il

Risposte:


10

L'algebra lineare è la disciplina principale per la programmazione grafica 3D semplicemente perché è il linguaggio matematico per descrivere la geometria spaziale. Gli altri tre argomenti sono in realtà solo sottogruppi di algebra lineare:

  • I vettori sono un modo di pensare ai punti nello spazio
  • Le matrici sono modi di pensare alle trasformazioni dello spazio e degli oggetti: tradurre oggetti, ridimensionarli, ecc.
  • I quaternioni sono una rappresentazione naturale per un sottogruppo specifico di quelle trasformazioni, le rotazioni
  • ecc. ecc.

Per quanto riguarda altri importanti pezzi di matematica per la programmazione grafica 3D, quello che consiglierei di non avere abbastanza amore è la geometria computazionale. Molti problemi naturali si riducono agli argomenti della geometria computazionale:

  • Uno dei modi più naturali per definire un volume da una serie di punti (ad esempio, per definire un volume audio in cui verrà riprodotto un rumore di fondo specifico, o un volume di nebbia o simili) è trovare lo scafo convesso dei punti ; ci sono buoni algoritmi per farlo in 2 e 3 dimensioni, ma anche gli algoritmi 2d non sono immediatamente ovvi.
  • Il problema di poter determinare quali oggetti sono vicini a un determinato punto o vicini l'uno all'altro (ad esempio, per ridurre il numero di oggetti che devono essere controllati per possibili collisioni o per capire quali nemici noteranno i giocatori in un punto specifico) entra nel campo dei problemi di query geometrica e in schemi di partizionamento spaziale (e quindi in strutture come alberi BSP e ocre). Le stesse idee generali vengono utilizzate anche per rispondere alle query di "tracciamento della linea" (ad esempio, "cosa colpisce questo raggio laser?")

Successivamente, incoraggio a esaminare il calcolo di base e in particolare i metodi numerici per le equazioni differenziali; questi sono meno rilevanti per la grafica 3D di per sé rispetto alla fisica 3d, ma in generale i due argomenti sono piuttosto strettamente accoppiati (anche per semplici problemi di cinematica - ad esempio, per animazioni di personaggi e simili) e una certa conoscenza di entrambi migliorare sostanzialmente la tua conoscenza di entrambi; è difficile, se non impossibile, lavorare la fisica pertinente senza la stessa conoscenza di algebra lineare di base utilizzata dalla grafica, ma allo stesso tempo avere le conoscenze di fisica fornisce un altro punto di riferimento per comprendere gli argomenti nella grafica.


Questa è stata una risposta fantastica, Steven, grazie. Ho adorato i tuoi riassunti di come pensare a vettori, matrici e quaternioni (purtroppo, più informativo in 2 secondi rispetto al mio attuale docente di algebra lineare) Mi hai anche dato una migliore comprensione dei tipi di sfide di modellazione poste ai programmatori di grafica 3D. Saluti!
Katherine Rix,



1

Se hai familiarità con le coordinate cartesiane, l'applicazione degli argomenti di cui sopra alla computer grafica dovrebbe essere abbastanza chiara. Esistono tutorial come questi per OpenGL che aiuteranno a chiarire l'applicazione della matematica per risolvere i problemi di visualizzazione di base, ad esempio come far sembrare che un modello wireframe ruoti. L'articolo di Wikipedia sul disegno prospettico potrebbe aiutare con un po 'di background storico.

Oltre a ciò ci sono molti argomenti di visualizzazione che traggono beneficio dalla formulazione matematica. Ad esempio, i solidi 3D sono generalmente rappresentati da triangolazioni della loro superficie. Come mostriamo solo quella parte della superficie che un osservatore "dovrebbe" vedere (algoritmi di superficie / linea nascosti)? Se un oggetto deve essere illuminato da una particolare sorgente / direzione, in che modo questo interagisce con la prospettiva per fornire un rendering della superficie convincente?

Oltre a ciò ci sono tutti i tipi di argomenti di modellazione interessanti, come l'animazione di una nebbia o una fiamma. Ma la trasformazione delle coordinate, dato che la tua lista di argomenti sembra centrare, è un punto fermo di tutti i successivi progressi.



1

Non sono tutti richiesti. La matematica vettoriale è in tutta la grafica 3D, potresti essere in grado di impostare la geometria senza conoscere i punti più fini della matematica vettoriale, ma cose come le mappe a sbalzo diventeranno molto difficili e passerai alla fisica.

I quaternioni offrono semplicemente una descrizione diversa per alcuni dei calcoli, può essere bello avere, ma non è certamente necessario in quanto è sufficiente una matematica più convenzionale per descrivere qualsiasi calcolo che si può fare con i quaternioni.

La matematica a matrice e l'algebra lineare sono strettamente correlate, soprattutto descrivono operazioni lineari su insiemi di numeri. Ma ancora una volta, è solo un altro modo di descrivere alcune cose che potrebbero essere descritte con vettori e algebra.

Non so se lo consideri solo una parte della matematica di base, ma sicuramente anche la trigonometria deve fare la lista.


Finora ho visto alcune menzioni di fisica: puoi dirmi a quali concetti ti riferisci qui? Non ho toccato l'argomento da 12 anni (cioè dal liceo) e francamente l'ho odiato. Forse, però, troverò la sua applicazione più facile da digerire.
Katherine Rix,

Fisica newtoniana, principalmente risoluzione delle collisioni. Potresti non averti insegnato questa roba al liceo, ma è tutto molto matematico, quindi se ti piacciono solo la matematica dovresti essere bravo.
aaaaaaaaaaaa
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.