40 points par GN⁺ 2025-12-29 | 1 commentaires | Partager sur WhatsApp
  • 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
  • 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
  • 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
  • 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
  • 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

 
GN⁺ 2025-12-29
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

    • Je me souviens qu’autrefois, quand un étudiant disait vouloir créer un jeu 3D, le professeur ne savait pas trop quoi répondre. Je lui avais donc conseillé d’emprunter à la bibliothèque le livre de Foley & Van Dam. Il en existe maintenant plusieurs éditions — Computer Graphics (Goodreads)
  • 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

    • Je recommande WebGL ou, encore mieux, WebGPU. C’est bien plus facile à apprendre, et les concepts acquis s’appliquent aussi aux autres API — WebGPU Fundamentals, WebGL2 Fundamentals
    • J’ai un ressenti similaire. Inspiré par Zbrush et Maya, j’ai voulu créer de l’art avec des shaders, mais j’ai l’impression qu’il faudrait se consacrer à ce domaine tous les jours pour ne serait-ce que reproduire partiellement ce genre d’énormes logiciels. Les performances de Zbrush sont vraiment stupéfiantes
    • Vulkan n’est pas fait pour les débutants. Même quand on connaît les bases, c’est beaucoup trop verbeux. Du Modern OpenGL suffit largement, et si vous devez absolument utiliser Vulkan, mieux vaut passer par une bibliothèque de plus haut niveau comme SDL3
    • À mon avis, l’informatique graphique moderne est devenue trop complexe. Il ne faut pas confondre programmation GPU et informatique graphique. Pour un débutant, il est bien plus utile d’implémenter soi-même un rasterizer ou un ray tracer sur CPU que de se lancer dans Vulkan
      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
    • Vulkan n’est en réalité pas une API graphique, mais une API GPU bas niveau. Le graphisme n’est qu’une des capacités du GPU. Quand on comprend cela, le design de Vulkan devient beaucoup plus logique
  • 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 IAlien vers le retour HN

    • Cela dit, c’est dommage qu’il reste encore sur la page principale des images truffées de fautes. Pour un site éducatif, ce n’est pas très heureux
  • 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

    • Excellente approche. C’est aussi ainsi que j’enseigne depuis longtemps. La plupart des gens pensent que la 3D se résume à la rasterization, mais j’ai plutôt le sentiment d’avoir eu de la chance de commencer par le ray tracing
    • Si vous voulez un autre point de vue, je recommande aussi Computer Graphics from Scratch. C’est gratuit, et le nom ressemble beaucoup, donc on peut facilement confondre
    • Il y a aussi Tiny Renderer, qui est une autre très bonne ressource
    • On trouve également un guide connexe dans la collection de projets “build-your-own-x” — lien GitHub
    • Il existe aussi une vidéo qui explique toute la 3D graphique avec une seule formule — YouTube: One Formula That Demystifies 3D Graphics
  • 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

    • Je me demande cependant s’il existe un LLM avec une fenêtre de contexte assez grande pour traiter un PDF de 1000 pages
  • 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