Scegline uno da ciascuno di questi e fatti strada.
1. Fondamenti di CG
† questi non sono libri OpenGL, usano semplicemente OpenGL per insegnare concetti di CG rudimentali
Di questi, i miei preferiti personali sono gli ultimi due. Più pratico e quindi coinvolgente per il principiante; le spiegazioni non sono molto enigmatiche, a differenza degli altri, più libri accademici nell'elenco.
Motivo Il rendering in tempo reale viene omesso se non è un libro sporco ; è un ampio sondaggio delle tecniche utilizzate nel settore rispetto ai fondamenti di CG; teoria pesante di allenamento pesante: qualcosa che i principianti devono capire bene le basi. Anche la teoria trattata è abbastanza di alto livello in molti punti.
2. Nozioni di base di matematica
Per essere esperto in computer grafica o anche per comprendere le basi, è necessario comprendere una discreta quantità di concetti matematici; richiede di essere a proprio agio nell'usare la trigonometria e l'algebra lineare. Per questo mi raccomando
- Vector Math for 3D Computer Graphics è di gran lunga il miglior tutorial per principianti per vettori e matrici. È anche interattivo in quanto alla fine di ogni sezione c'è una domanda di prova per verificare e sigillare la comprensione di tale argomento.
Libri
Di questi libri di matematica, il più intuitivo è il primo con molti aneddoti divertenti in mezzo, l'ultimo è per i fanatici della matematica (se hai paura del simbolo del vomito, stai alla larga da esso), anche se è un buon libro per programmatori CG esperti che hanno bisogno di un riferimento. L'uno nel mezzo è davvero buono in quanto descrive in dettaglio qualcosa che gli altri due (o molti libri per quella materia) omettono, e nello spettro dell'intuitività e della matematica hard core è nel mezzo.
3. Tutorial
La sola lettura non sigilla i concetti, quindi è consigliabile allenarsi. Per questo ho trovato questi tutorial molto buoni; molti danno anche una spiegazione decente della teoria.
Non attaccarti troppo a una libreria o strumento specifico (ad es. OpenGL, Direct3D, Metal, Vulkan, WebGL, SDL, Quartz, ecc.) Una volta compresi i concetti di base (matematica alla base di essi), implementandoli in qualsiasi lingua, framework o la biblioteca non sarebbe un grosso problema. Solo la sintassi / compilatore cambierebbe, ma le tecniche stesse rimangono le stesse.