Aller plus loin
Voici plusieurs choses améliorable pour rendre notre forward renderer plus interessant:
Normal Mapping
Ajouter une texture de normales dans le fragment shader et faire le necessaire pour charger la texture de normales de chaque objet.
L'utiliser à la place de uViewSpaceNormal pour calculer l'illumination.
Vous pouvez vous réferer à ce tutorial.
Plusieurs Lights
Actuellement le shader ne gère que deux lumières, c'est un peu triste.
Utilisez les Shader Storage Buffer Objects pour accéder à des tableau de directions, positions et intensités depuis le fragment shader, correspondant à un nombre arbitraire de directional et point lights (stockez leur nombre dans des uniforms).
Bouclez sur ces lights et accumulez la contribution de chacune avant de l'écrire dans la variable de sortie fFragColor.