Bonjour à tous,
J'ai suivi plusieurs tutoriels sur OpenGL 3 et j'arrive à faire les choses de bases (shaders, textures, VAO, VBO, ...). Je souhaiterai maintenant m'attaquer à la gestion de la lumière et des ombres.
D'après ce que j'ai pu comprendre, depuis OpenGL 3, tout passe par les shaders (calcul des coordonnées des vertex, texture, lumière, ...). Donc toutes les fonctions du style glVertex2f(...), glPerspective(...), etc. ont été dépréciées.
Maintenant, l'utilisateur doit calculer la matrice de projection, la caméra, etc. tout seul ou bien à l'aide d'une librairie tiers (GLM). C'est ensuite dans le vertex shader que les coordonnées de chaque vertex sont calculées grâce aux matrices données au shader.
Donc pour la lumière, les fonctions glLightfv(...) et toute la troupe sont dépréciées et il faut calculer tout soit-même.
Pour l'instant, j'espère que je ne dis pas de conneries, sinon dîtes-le moi
Ce que j'ai compris pour le moment : la lumière et ombrages sont réalisés en modifiant la couleur de chaque pixel en fonction de la position de la source de lumière est la normale du vertex. Ces calculs sont effectués par le fragment shader.
Il existe plusieurs type de lumière : diffuse, ambiante et spéculaire. L'alliance de ces trois types de lumières se nomme "l'ombrage de Phong".
C'est lors de la pratique que je suis perdu.
Je suis bloqué au calcul des normales de chaque vertex de mon cube (et je suis très nul en mathématiques).
Apparement, ce n'est pas la normale d'une face qu'il faut calculer mais la normale d'un vertex. Ceci car le vertex shader traite vertex par vertex et non face par face, c'est ça ?
Je ne sais pas par où commencer pour calculer ces normales. Je possède, pour le moment, un tableau de vecteurs (coordonnées des sommets) d'un simple cube sans texture.
Bref, je cherche un tutoriel en français, complet et qui travaille avec OpenGL 3.
Pouvez-vous aussi confirmer tout ce que j'ai dit, ou bien je me plante complètement ?
Merci d'avoir lu, j'espère que je vais avoir une bonne note pour ce rapport![]()
Partager