Otros dieron buenas respuestas. No comience la programación del juego con OpenGL (o renderizado en absoluto). Sin embargo, si desea ser un programador de motores de juegos , entonces y solo entonces, recomendaría construir su propio motor (o al menos algunos de los subsistemas). Si desea hacer una programación gráfica (¡programador gráfico! = Programador del motor en la mayoría de los casos), concéntrese más en las matemáticas e impleméntelo con sombreadores para algunos motores existentes porque no tratará mucho con OpenGL / Direct3D / vulkan ya que el motor se resumió aquellos. Puede escribir algunas demostraciones simples en OpenGL / Direct3D después de obtener ese microfacet BRDF correcto.
Para responder a tu pregunta, necesito saber qué papel en la programación de juegos quieres tomar. Como no lo sé, aquí hay algunos roles posibles:
- Programador del motor del juego: Lea Arquitectura del motor del juego: Jason Gregory, Jeff Lander, Matt Whiting: 9781568814131: Amazon.com: Libros. Cubre algunos conceptos básicos de renderizado lo suficiente para un programador de motores de juegos. Además, lea los libros que otras personas sugirieron aquí.
- Programador de gráficos: lea los libros de GPU Pro y, lo más importante, los trabajos / cursos de SIGGRAPH. También debe elegir un libro sobre su API de gráficos favorita (no sé sobre OpenGL ya que soy un chico de Direct3D, pero la búsqueda rápida en Amazon le dará una respuesta).
- Programador de juego: Olvídate del renderizado, motor personalizado, OpenGL o cualquier otra cosa similar. Descarga Unity / UE4 y comienza a expresar tu creatividad.