Elija uno de cada uno de estos y avance.
1. Fundamentos de CG
† estos no son libros de OpenGL, solo usan OpenGL para enseñar conceptos rudimentarios de CG
De estos, mis favoritos personales son los dos últimos. Más práctico y por lo tanto fascinante para el principiante; Las explicaciones no son muy crípticas, a diferencia de los otros libros más académicos de la lista.
La razón por la que se omite la representación en tiempo real es que no es un libro para ensuciarse las manos ; Es una encuesta amplia de las técnicas utilizadas en la industria que en los fundamentos de CG; Teoría-pesada que entrenamiento-pesado: algo que los principiantes necesitan entender bien lo básico. Incluso la teoría tratada es de alto nivel en muchos puntos.
2. Conceptos básicos de matemáticas
Para dominar los gráficos por computadora o incluso comprender los conceptos básicos, es necesario comprender una cantidad decente de conceptos matemáticos; requiere que uno se sienta cómodo al usar trigonometría y álgebra lineal. Para esto te recomiendo
- Vector Math para 3D Computer Graphics es, con mucho, el mejor tutorial para principiantes para vectores y matrices. También es interactivo porque al final de cada sección hay una pregunta de prueba para verificar y sellar la comprensión de ese tema.
Libros
De estos libros de matemáticas, el más intuitivo es el primero con muchas anécdotas divertidas en el medio, el último es para los fanáticos de las matemáticas (si tienes miedo al vómito con símbolos, aléjate de él), aunque es un buen libro para programadores de CG experimentados que necesitan una referencia. El uno en el medio es realmente bueno porque detalla algunas cosas que los otros dos (o muchos libros para el caso) omiten, y en el espectro de la intuición y las matemáticas básicas se encuentra en el medio.
3. Tutoriales
Solo leer no sella los conceptos, por lo que definitivamente se recomienda hacer ejercicio. Para eso encontré estos tutoriales muy buenos; la mayoría da una explicación decente de la teoría también.
No se apegue demasiado a una biblioteca o herramienta específica (por ejemplo, OpenGL, Direct3D, Metal, Vulkan, WebGL, SDL, Quartz, etc.) Una vez que comprenda los conceptos básicos (matemática detrás de ellos), impleméntelos en cualquier lenguaje, marco o la biblioteca no sería un gran problema. Solo la sintaxis / compilador cambiaría, pero las técnicas mismas siguen siendo las mismas.