ScratchPixel - apprendre gratuitement l’infographie depuis les bases
(scratchapixel.com)- Plateforme d’apprentissage en ligne permettant d’étudier gratuitement l’infographie, des bases jusqu’aux sujets avancés
- Couvre de manière structurée divers thèmes comme le rendu 3D, les fondements mathématiques, l’imagerie numérique, la génération procédurale et les outils
- Structure de cours centrée sur la pratique, conçue pour faire expérimenter d’abord des résultats concrets plutôt que de longues explications théoriques
- Évolution continue avec un parcours d’apprentissage de l’API Vulkan (nouveau), un blog sur la programmation 3D (à venir) et un livre (à paraître)
- Ressource d’apprentissage gratuite permettant aux développeurs et designers de comprendre en profondeur les principes de l’infographie et les techniques d’implémentation
- Scratchapixel est un site web pour apprendre gratuitement l’ensemble de l’infographie, sous le slogan « Learn computer graphics from scratch and for free »
Cours actuellement proposés
-
Les bases du rendu 3D (The Foundations of 3D Rendering)
- Cours d’introduction au rendu conçu dans un ordre adapté aux débutants
- Adopte une approche qui traite d’abord de la mise en œuvre de résultats concrets plutôt que de la théorie
- Les principaux thèmes abordés sont les suivants
- Introduction au ray tracing, rendu de scènes 3D, rasterization, matrice de projection, shading et éclairage, texturing, structures d’accélération, rendu volumétrique, etc.
- Chaque cours couvre, avec des exemples d’implémentation réels, des notions comme le calcul des coordonnées de pixels, le modèle de caméra à sténopé, les BRDF et les concepts de shaders
- Cours d’introduction au rendu conçu dans un ordre adapté aux débutants
-
Mathématiques pour l’infographie (Mathematics for Computer Graphics)
- Explique les théories et outils mathématiques nécessaires à l’implémentation graphique
- Cette section n’est pas une introduction, mais un ensemble de ressources de référence pour consulter les concepts mentionnés dans les autres cours
- Les principaux sujets incluent la géométrie, l’inversion de matrices (méthode de Gauss-Jordan), l’interpolation, la fonction LookAt, les mathématiques du shading, la méthode de Monte-Carlo et la transformée de Fourier
- Explique les théories et outils mathématiques nécessaires à l’implémentation graphique
-
Computer Graphics Gems
- Recueil de sujets graphiques individuels intéressants qui n’entrent pas dans une catégorie précise
- Pour l’instant, il contient uniquement un cours sur le rayonnement du corps noir
- Recueil de sujets graphiques individuels intéressants qui n’entrent pas dans une catégorie précise
-
Geometry
- Traite de la manière de définir les formes en infographie
- Explique comment représenter des formes à l’aide de courbes et surfaces de Bézier
- Traite de la manière de définir les formes en infographie
-
Digital Imaging
- Traite du traitement des fichiers image et de la gestion des couleurs
- Les principaux sujets sont la lumière et les espaces colorimétriques, la conversion des images numériques du fichier à l’écran et les manipulations d’image de base
-
Procedural Generation of Virtual Worlds
- Traite de la simulation procédurale de phénomènes naturels
- Inclut des sujets comme Value Noise, Perlin Noise et la simulation de la couleur du ciel
-
Tooling
- Traite du développement d’outils 3D et des techniques d’interaction
- Inclut notamment la gestion des fenêtres (windowing), le format de fichier OBJ et les contrôles de navigation de caméra
Actualités récentes
- Le blog qui ouvrira bientôt couvrira non seulement la programmation 3D, mais aussi des sujets connexes comme l’IA et l’éducation
- Un nouveau cours sur l’API Vulkan sera ajouté prochainement
- Un livre intitulé "Learn Computer Graphics Programming from Scratch" est également prévu
1 commentaires
Commentaires sur Hacker News
Ce site a énormément progressé. Il est tellement remarquable que Santa devrait y laisser un don
Je pense qu’il faut davantage de ressources éducatives ouvertes dans le domaine de l’informatique graphique. Les anciennes techniques sont enfouies dans de vieux livres, et les nouvelles sont cachées derrière les murs des entreprises. Le livre 3D Graphics Programming Games and Beyond de Sergei Savchenko en est un bon exemple.
Les API graphiques actuelles sont inutilement complexes, donc je pense qu’il vaut mieux oublier le GPU au départ et commencer plutôt par implémenter soi-même un rasterizer logiciel ou un ray tracer.
Cela dit, c’est dommage que ce site n’offre aucun autre moyen de contact que Discord. Ce serait bien aussi que la page de don soit accessible directement depuis la page principale
C’est vraiment une ressource précieuse
Mon pseudo vient de mon ancien moteur 3D Reactor. Quake 3 a changé ma vie au lycée. Doom m’a fait découvrir l’informatique, mais Quake 3 m’a fait tomber amoureux de la 3D.
Je n’étais pas très fort en maths, mais j’ai appris en recopiant du code, et aujourd’hui j’ai une carrière à la croisée du web et de l’informatique graphique. Grâce à la généralisation de WebGL et WebGPU, il m’est même arrivé au travail d’enseigner à des docteurs le vertex packing et la manière d’envoyer des structures au GPU.
J’ai aussi travaillé avec un développeur XNA Silverlight, donc je suis en quelque sorte un lointain cousin de MonoGame. Aujourd’hui, ce sont surtout les nouvelles approches comme Vulkan/DX12/Metal qui dominent
Ce site est vraiment superbe. Je vais absolument y jeter un œil
Pendant mon master, j’ai implémenté moi-même un ray tracer, et le livre de référence que j’utilisais à l’époque était An Introduction to Ray Tracing d’Andrew S. Glassner. On peut maintenant le télécharger gratuitement — lien
J’ai une ancienne collection de ressources gratuites sur la programmation graphique. Je ne la mets plus beaucoup à jour aujourd’hui, mais elle peut toujours être utile — lien gist
Pendant la majeure partie de ma carrière, le graphisme a été mon angle mort. Je me suis orienté vers la donnée et les systèmes distribués, mais à l’origine, j’ai commencé la programmation parce que je voulais créer des jeux
J’ai autrefois fait une simulation d’orbites planétaires avec OpenGL, ou encore un étrange shoot’em up en Flash. Mais chaque fois que j’essaie d’apprendre Vulkan, je finis par abandonner devant la quantité de code. Je pense que c’est parce que je ne maîtrise pas bien les concepts fondamentaux. Quand j’aurai plus de temps, j’aimerais vraiment m’y remettre sérieusement
Comme ressources d’exemple, je recommande Tiny Renderer et Ray Tracing in One Weekend.
Ce parcours permet de comprendre en profondeur pourquoi les GPU ont été conçus de cette manière. Ensuite, je conseillerais d’élargir vers OpenGL 4.6 ou D3D11, ainsi que vers des sites comme ShaderToy et ShaderAcademy
Le rendu sur CPU reste important, notamment parce que les moteurs de rendu pour le cinéma utilisent encore le CPU pour des questions de précision. À titre de référence, WARP et LLVMpipe sont des rasterizers logiciels réellement utilisés en production
J’apprécie vraiment le contenu de ce site. Merci aussi d’avoir pris en compte l’an dernier les retours sur les miniatures générées par IA — lien vers le retour HN
L’un de mes objectifs cette année est de créer moi-même un rendu 3D logiciel à partir de zéro. Sans moteur de jeu ni GPU, juste une implémentation pure
Aujourd’hui, on peut donner à un LLM le lien d’un site web ou un PDF pour le transformer en ressource d’apprentissage interactive. J’ai d’ailleurs fait cela aujourd’hui avec un PDF de 1000 pages pour étudier un moteur de jeu. C’est mieux que de simplement laisser ça dans ses favoris
J’espère qu’un jour prendra fin le monopole de NVIDIA sur les API graphiques, la domination du web par Google et la faiblesse des alternatives proposées par AMD