Je vais actuellement à l'université pour l'informatique. Bien que je prévoie d'utiliser un moteur existant à un moment donné pour créer un petit jeu, mon objectif est actuellement d'apprendre les principes fondamentaux: à savoir la programmation 3D. J'ai déjà fait des recherches sur le choix entre DirectX et OpenGL, et le sentiment général qui en est ressorti est que si vous choisissez OpenGL ou DirectX comme plate-forme de roues d'entraînement, une grande partie des connaissances sont transférables à l'autre plate-forme. . Par conséquent, étant donné qu'OpenGL est pris en charge par plus de systèmes (probablement une raison idiote pour choisir quoi apprendre), j'ai décidé que je vais d'abord apprendre OpenGL.
Après avoir pris cette décision d'apprendre OpenGL, j'ai fait plus de recherches et découvert une dichotomie que je n'étais pas au courant de tout ce temps: OpenGL à fonction fixe vs OpenGL basé sur un shader programmable moderne. Au début, je pensais que c'était un choix évident que je devais choisir d'apprendre OpenGL basé sur des shaders, car c'est ce qui est le plus couramment utilisé dans l'industrie aujourd'hui. Cependant, je suis tombé par la suite sur la très populaire programmation graphique moderne d'apprentissage par Jason L. McKesson, située ici: http://www.arcsynthesis.org/gltut/
J'ai lu les morceaux d'introduction et dans la section "À propos de ce livre", l'auteur déclare:
"Premièrement, une grande partie de ce qui est appris avec cette approche doit être inévitablement abandonnée lorsque l'utilisateur rencontre un problème graphique qui doit être résolu avec la programmabilité. La programmabilité efface presque tout le pipeline de fonctions fixes, de sorte que les connaissances ne sont pas facilement transférées."
mais en même temps, le fait que la fonctionnalité fixe offre une courbe d'apprentissage plus facile et plus immédiate pour les débutants en déclarant:
"Il est généralement considéré comme le plus facile d'enseigner aux programmeurs graphiques néophytes en utilisant le pipeline de fonctions fixes."
Naturellement, vous pouvez voir pourquoi je pourrais être en conflit sur le paradigme à apprendre: est-ce que je passe beaucoup de temps à apprendre (puis à désapprendre plus tard) les moyens de la fonctionnalité fixe, ou est-ce que je choisis de commencer avec des shaders? Ma principale préoccupation est que les shaders programmables modernes nécessitent en quelque sorte que le programmeur comprenne déjà le pipeline de fonctions fixes, mais je doute que ce soit le cas.
TL; DR = En tant que futur programmeur graphique de jeu, est-il dans mon intérêt d'apprendre la programmation 3D par le biais d'une programmation à fonctionnalité fixe ou d'un shader moderne?