Actualmente voy a la universidad para ciencias de la computación. Aunque planeo utilizar un motor existente en algún momento para crear un juego pequeño, mi objetivo en este momento es aprender los fundamentos: la programación 3D. Ya he realizado algunas investigaciones sobre la elección entre DirectX y OpenGL, y el sentimiento general que surgió de eso fue que si elige OpenGL o DirectX como su plataforma de ruedas de entrenamiento, gran parte del conocimiento es transferible a la otra plataforma . Por lo tanto, dado que OpenGL es compatible con más sistemas (probablemente una razón tonta para elegir qué aprender), decidí que primero aprenderé OpenGL.
Después de tomar esta decisión de aprender OpenGL, investigué un poco más y descubrí una dicotomía que de alguna manera desconocía todo este tiempo: OpenGL de función fija versus OpenGL moderno basado en sombreador programable. Al principio, pensé que era una opción obvia que debería elegir aprender OpenGL basado en sombreadores, ya que eso es lo que más se usa en la industria hoy en día. Sin embargo, luego me topé con la muy popular programación de aprendizaje moderno de gráficos en 3D de Jason L. McKesson, que se encuentra aquí: http://www.arcsynthesis.org/gltut/
Leí los fragmentos introductorios, y en la sección "Acerca de este libro", el autor declara:
"Primero, gran parte de lo que se aprende con este enfoque debe abandonarse inevitablemente cuando el usuario encuentra un problema gráfico que debe resolverse con la capacidad de programación. La capacidad de programación borra casi toda la canalización de funciones fijas, por lo que el conocimiento no se transfiere fácilmente".
Sin embargo, al mismo tiempo, también establece que la funcionalidad fija proporciona una curva de aprendizaje más fácil e inmediata para los principiantes al afirmar:
"En general, se considera más fácil enseñar a los programadores de gráficos de neófitos que utilizan la canalización de funciones fijas".
Naturalmente, puede ver por qué podría estar en conflicto sobre qué paradigma aprender: ¿Paso mucho tiempo aprendiendo (y luego desaprendiendo) las formas de funcionalidad fija, o elijo comenzar con sombreadores? Mi principal preocupación es que los sombreadores programables modernos de alguna manera requieren que el programador ya comprenda la tubería de función fija, pero dudo que ese sea el caso.
TL; DR = Como aspirante a programador de gráficos de juegos, ¿me interesa aprender a programar en 3D a través de la funcionalidad fija o la programación moderna basada en sombreadores?