Bonjour à tous.
J'ai lu récemment un cours sur opengl2. Puis j'ai lu un autre cours sur opengl3. Le problème c'est que le cours d'opengl3 était axé sur la réécriture des fonctions disparues (dépréciées) depuis opengl2 comme glulookat, glperspective, glrotate, etc ...
Je me dit que c'est idiot de détruire quelque chose pour le refaire exactement pareil ...
Alors je me suis posé beaucoup de questions, et j'aimerais bien avoir quelques renseignements sur la philosophie de cette version 3.
1) Le produit matriciel
Les matrices 4x4 permettent de définir un repère par rapport au repère absolu, à l'aide de multiplications de matrices. Est-ce possible, judicieux, de faire faire ces calculs par le GPU au lieu du CPU ? En gros, si on peut passer une série de transformations via un tableau (je ne sais pas si ça marche) et le GPU s'occupe du reste.
2) La projection sur une surface 2D
Dans le cours que j'ai lu, ils définissent une fonction du genre glperspective et une du genre glulookat. Je ne comprend pas pourquoi on passe par deux fonctions. Une fois que toute la scène 2D est définie, on doit la projeter sur une surface rectangulaire selon un certain vecteur directeur. Il y a sûrement une matrice qui le fait d'un coup non ? Pourquoi passer par deux fonctions ?
3) Shader
Je ne connais encore quasiment rien là-dessus donc je vais encore potasser, mais j'ai une question de base déjà. Si on veut utiliser le même shader (un vert et un frag) dans toute l'application (pour commencer) quel est le code minimal ? Parce qu'il y a beaucoup de choses, je ne sais pas où elles vont (à l'initialisation ? dans la boucle principale ? avant/après chaque appel à drawelement/drawarrays ?).
Merci de m'avoir lu et re-merci d'essayer de m'aider
Partager