L’infographie est définie comme étant le domaine de création d’image numérique assisté par ordinateur, le domaine dans lequel des logiciels spécifiques sont utilisés pour aider à modeler des images et des illustrations graphiques, la suite d’Adobe avec ses logiciels phares Photoshop et Illustrator est sans doute la plus célèbre dans le domaine. Mais le livre dont on va parler ici concerne une autre définition du terme infographie, en Anglais c’est appelé Computer Graphics, et c’est la discipline de l’informatique englobant les études de méthodes pour générer et synthétiser du contenu visuel par ordinateur, généralement de la 3D (3 dimensions) mais ça peut inclure aussi de la 2D (2 dimensions), en d’autres mots c’est l’étude des algorithmes utilisés pour reproduire les scènes en 3D comme ceux utilisées dans les jeux vidéo, la simulation 3d, les environnements virtuels, les films d’animation 3D…etc.
Le livre avec la couverture en haut est nommé Computer Graphics from Scratch, from scratch signifie à partir de zéro. L’auteur est un enseignant en infographie et il a avec le temps réussi à rassembler une collection d’articles sur les algorithmes du domaine, et qui a décidé un jour de tout mettre dans un livre, le livre est payant mais tous les articles dans le livre sont heureusement gratuits et disponibles sur le site de l’auteur. Le livre et le site sont subdivisés en 2 parties, une pour le Raytraycing, dans laquelle des techniques et des algorithmes sont expliqués pour générer de la 3D en images de synthèse, c’est généralement la 3D utilisée dans les films et les séquence vidéos en 3D, la particularité du Raytraycing c’est que ça permet de produire de la 3D réaliste et de très bonne qualité, mais elle n’est pas temps réel, son rendu doit passer par un processus très lent de précalcul pour générer une séquence vidéo. La deuxième partie est sur la Rasterization, ça concerne le rendu en temps réel de la 3D, c’est la technologie utilisée dans les jeux vidéo, le rendu est instantanément produit sans précalcul, mais la qualité de la 3D n’est pas aussi réaliste que le Raytraycing.
L’avantage de ce livre c’est qu’il traite les principaux concepts de mathématique et de la géométrie, qui sont généralement assez difficiles dans d’autres livres du même genre, et arrive à les simplifier au niveau d’un lycéen, les algorithmes sont aussi présentés d’une manière très simple et très claire, sans oublier de mentionner sa taille qui est de 200 pages, le rendant très accessible. J’ai eu par le passé l’occasion de travailler sur un Rasterizer, il est présenté sur la vidéo en haut, c’est un petit moteur de rendu 3D dans lequel j’ai implémenté les éléments de base dans un Rasterizer, à savoir la translation, la rotation, le changement d’échelle, la texture, l’élimination de faces cachées…etc, malgré qu’il lui manque encore beaucoup de choses comme, le chargement d’objet 3D, le shading, l’ombrage..etc. C’est l’un des projets que j’ai beaucoup apprécié la programmation et dont j’ai beaucoup appris, le code est très petit sur approximativement 3000 lignes de code en C, il est public et disponible sur mon dépôt GitHub et que vous pouvez tester par vous même par ce lien.