4 points par GN⁺ 2025-06-02 | 1 commentaires | Partager sur WhatsApp
  • RenderFormer est un pipeline de rendu neuronal qui génère directement des images à partir de scènes en maillages triangulaires, avec comme point clé la prise en charge de l’illumination globale, sans apprentissage spécifique à chaque scène
  • Il définit le rendu non pas comme une procédure de simulation physique, mais comme une transformation séquence-vers-séquence qui convertit des tokens de triangles et de propriétés de réflexion en petits tokens de patchs de pixels
  • Le pipeline est divisé en une étape indépendante du point de vue et une étape dépendante du point de vue, toutes deux entraînées avec une architecture Transformer et un minimum de contraintes a priori
  • L’étape indépendante du point de vue modélise le transfert de lumière entre triangles, tandis que l’étape dépendante du point de vue convertit des tokens de faisceaux de rayons en valeurs de pixels
  • Les exemples publics couvrent l’éclairage, les matériaux, la complexité géométrique, l’animation et la simulation physique, avec un rendu sans rastérisation ni ray tracing

Structure de rendu de RenderFormer

  • RenderFormer est un pipeline de rendu neuronal qui rend directement des images à partir d’une représentation de scène basée sur des triangles
  • Il inclut les effets complets d’illumination globale tout en ne nécessitant ni apprentissage ni ajustement fin spécifiques à chaque scène
  • Le processus de rendu est construit comme une transformation séquence-vers-séquence
    • L’entrée est une séquence de tokens de triangles incluant les propriétés de réflexion
    • La sortie est une séquence de tokens représentant de petits patchs de pixels
  • Le pipeline en 2 étapes sépare le calcul du transfert de lumière indépendant du point de vue et la génération effective des pixels
    • Étape indépendante du point de vue : modélise le transfert de lumière entre triangles
    • Étape dépendante du point de vue : convertit des tokens de faisceaux de rayons en valeurs de pixels, guidée par la séquence de triangles issue de l’étape indépendante du point de vue
  • Les deux étapes reposent sur une architecture Transformer et sont entraînées avec un minimum de contraintes a priori
  • Le processus de rendu n’utilise ni rastérisation ni ray tracing

Résultats publics et ressources de référence

  • La galerie de rendus montre diverses conditions d’éclairage, matériaux et niveaux de complexité géométrique, sans apprentissage ni ajustement fin spécifiques à chaque scène
    • Cornell Box, Stanford Bunny in Cornell Box, Lucy Statue, Utah Teapot
    • Composed Scene, Constant Width Bodies, Crystals, Fox in the Wild
    • Horse and Heart, RenderFormer Logo, Interior Room, Shader Ball, Tree, Veach MIS
  • Des images de référence sont proposées pour les comparaisons détaillées
  • Des ressources vidéo supplémentaires sont disponibles avec des vidéos non compressées et des vidéos de référence
  • Scènes teaser

  • Animation et simulation

    • Les exemples de rendu d’animation incluent Cascade Cube Animation, Animated Crab, Gyroscope Motion, Animated Character, Marching Cubes Animation et Robot Animation
    • Les exemples de simulation basée sur la physique incluent Bowling Ball Physics Simulation, Rotating Box Dynamics et Constant Width Body Simulation
    • L’article sera publié dans les ACM SIGGRAPH 2025 Conference Papers, et le titre de l’entrée BibTeX est “RenderFormer: Transformer-based Neural Rendering of Triangle Meshes with Global Illumination”

1 commentaires

 
GN⁺ 2025-06-02
Avis sur Hacker News
  • Ce qu’il y a de plus impressionnant ici est peut-être la vitesse : sur la même scène, RenderFormer prend 0,0760 s, contre 3,97 s pour Blender Cycles (12,05 s avec des réglages plus élevés), tout en conservant un indice de similarité structurelle de 0,9526 (de 0 à 1, 1 correspondant à une image identique). Voir les tableaux 2 et 1 de l’article
    Cela pourrait permettre de fournir aux designers 3D, dans des apps web ou natives, de meilleurs aperçus de rendu instantanés via un modèle Transformer exécuté sur l’appareil
    Les mesures ci-dessus ont été effectuées sur un A100 avec une version PyTorch non optimisée du modèle. Le GPU d’un utilisateur moyen est bien plus faible, mais un GPU destiné aux designers 3D pourrait tout de même suffire à offrir une accélération assez importante par rapport au rendu traditionnel. Dans un système web, on pourrait aussi se connecter à un A100 côté backend et streamer les images vers le navigateur
    La limite est que, à mesure que la complexité de la scène augmente, par exemple avec des ombres aux formes complexes (probablement aussi avec des particules ou des cheveux), le résultat n’est pas totalement exact. Le rendu final restera donc probablement réalisé de manière traditionnelle, afin d’éviter les artefacts visuels disgracieux que l’on voit aujourd’hui dans beaucoup d’images/vidéos générées par IA. Cela dit, si le niveau est suffisamment “correct” et que le gain de vitesse est important, de grands studios d’animation pourraient avoir une raison de l’adopter pour rendre des prévisualisations de longs métrages destinées à la revue de la musique, de l’histoire, etc.

    • Je ne pense pas que les auteurs aient volontairement cherché à tromper, mais sur un GPU de ce niveau, Blender Cycles peut rendre toutes les scènes présentées dans cet article bien plus vite que 4 secondes par image
      Les scènes sont très simples, au niveau d’une démo technique peu complexe, et il semble que Blender ait été configuré pour faire 4 000 itérations par pixel, ce qui n’a pas beaucoup de sens. Blender se rapproche déjà assez bien de la sortie finale après quelques centaines de cycles, puis risque surtout de brûler des cycles GPU pendant les 3 800 cycles restants sans réelle amélioration
      Il semble qu’ils aient inclus par erreur la phase d’initialisation de Blender dans le temps total de rendu, tout en n’incluant pas l’initialisation du Transformer. J’aimerais voir le temps nécessaire pour rendre la deuxième image avec chaque système, et j’imagine que Blender serait bien plus performant. Les résultats de l’article sont intéressants en eux-mêmes, mais il y a des nuances dans les réglages de Blender et la façon de mesurer
    • Sur les scènes montrées, 76 ms est presque une éternité. Bien sûr, cela deviendra beaucoup plus rapide à l’avenir, mais il reste encore beaucoup de chemin avant de pouvoir dire que c’est mieux que le rendu traditionnel
    • La comparaison des temps avec le rendu de référence semble assez malhonnête
      En ray tracing, l’erreur diminue proportionnellement à la racine carrée du nombre d’échantillons. Il est courant d’utiliser un très grand nombre d’échantillons pour l’image de référence servant à comparer la qualité, mais le nombre d’échantillons utilisé par les renderers offline en pratique est inférieur de 1 à 2 ordres de grandeur à celui de cet article
      Dans les articles de graphisme, il est courant d’inclure une image de référence avec un très grand nombre d’échantillons pour comparer la qualité, mais pas de comparer aussi les temps avec cette image de référence. Si le résultat est une approximation, il serait plus juste de le comparer à d’autres algorithmes de rendu approximatif. Les path tracers temps réel modernes et les débruiteurs peuvent rendre des scènes bien plus complexes en moins de 16 ms même sur des GPU grand public
      Le point clé est “des scènes bien plus complexes”. Avec un Transformer, le passage à l’échelle est quadratique à la fois par rapport au nombre de triangles et au nombre de pixels de sortie. Je n’ai pas suivi les recherches ML les plus récentes, donc cela a peut-être été amélioré, mais je doute que cela batte le passage à l’échelle théorique d’un path tracer typique, à savoir O(log n_triangles) et O(n_pixels). En pratique, le passage à l’échelle par rapport au nombre de pixels est presque sous-linéaire, grâce à la forte cohérence entre pixels voisins
    • Il y a ce passage : “la complexité en temps d’exécution des couches d’attention augmente quadratiquement avec le nombre de tokens, et ici le nombre de triangles correspond au nombre de tokens. Par conséquent, nous limitons le nombre total de triangles de la scène à 4 096
    • RenderFormer à 0,0760 s contre Blender Cycles à 3,97 s sur la même scène, cela paraît assez surprenant
      J’ai parcouru rapidement, mais je n’ai pas trouvé de détails sur la configuration. Je me demande si Cycles a utilisé le CPU ou des kernels CUDA sur l’A100. Et s’il s’agit du rendu d’une seule image, une part non négligeable des 3,97 s a peut-être été consacrée au démarrage du renderer. En rendant une séquence, le temps par image diminuerait
      Le passage à l’échelle de la complexité par triangle mentionné dans le commentaire frère fait aussi mal
  • Le deep learning est aussi utilisé avec beaucoup de succès pour le débruitage d’images de rendu à illumination globale [1]
    Dans cette approche, un algorithme traditionnel de ray tracing calcule rapidement une illumination globale approximative de la scène, puis un réseau neuronal débruite la sortie
    [1] https://www.openimagedenoise.org

    • Les images de sortie de la démo semblent étrangement lisses, comme avec un upscaling IA. Cela donne l’impression du phénomène où, quand on essaie d’agrandir une image au-delà de la quantité de données disponible, les contours sont préservés mais la texture est perdue
      Modification : le débruitage paraît meilleur à un zoom de 100 % qu’à un agrandissement DPI de 125 %, et les fougères en bas deviennent aussi plus faciles à reconnaître
  • Avec les articles de graphisme, il faut toujours penser à ce qui n’est pas visible
    Ici, il y a très peu de polygones, une faible résolution, pas de textures, pas de motion blur, pas de profondeur de champ, et l’animation présente quelques artefacts
    C’est une recherche intéressante, mais en remettant les choses en perspective, on produit avec des GPU modernes des images qui ressemblent à ce qu’on obtenait il y a 30 ans avec 1/1 000 000 de la charge de calcul

  • J’ai trouvé étrange qu’aucun exemple ne montre l’arrière de la caméra
    Je ne sais pas si c’est une limite de l’approche ou un oubli dans la création des exemples, mais quand on parle de réflexions et d’éclairage, l’arrière de la caméra est assez important

  • Question de novice : ces scènes sont-elles rendues sur la base de la manière dont on s’attend à ce qu’elles soient rendues ? Si c’est le cas, je ne vois pas pourquoi utiliser ceci plutôt qu’une méthode plus directe. J’ai du mal à croire que ce soit plus rapide qu’une méthode directe

    • Probablement parce que c’est de la recherche cool (Cool Research™). Le coût augmente quadratiquement avec le nombre de triangles, donc ce n’est pas vraiment pratique. C’est pour ça qu’ils n’en utilisent que 4 096 par scène
    • Il pourrait sans doute y avoir des avantages intéressants difficiles à prévoir
      Par exemple, si la scène est un bloc de poids d’entrée, à quoi ressemblerait le résultat si on y ajoutait du bruit ? Pourrait-on obtenir des sorties intéressantes impossibles avec une méthode classique ?
      Serait-il intéressant d’interpoler entre deux représentations de scènes différentes ? Ce genre de questions devient possible
    • D’après un autre commentaire, cette méthode serait plus rapide. Dans une méthode directe, l’illumination globale peut être très lente
  • Waouh, la boucle GPU est donc bouclée. Du rendu au calcul, puis de nouveau au rendu

  • Ça a l’air correct, mais flou. J’aurais aimé voir une comparaison des temps de rendu entre le renderer neuronal et le renderer classique

  • Dans les animations, en particulier Animated Crab et Robot Animation, on remarque assez nettement des artefacts d’art IA qui tourbillonnent de façon peu naturelle autour du modèle lorsque l’objet et la caméra bougent

    • L’article contient quelques éléments sur la dimension temporelle. Ils comparent avec Blender Cycles (path tracing) et, au moins pour les scènes de moins de 4 000 triangles, l’approche par réseau de neurones est beaucoup plus rapide. En revanche, le passage à l’échelle ne semble pas très bon. Ils indiquent que le temps d’exécution de l’attention est quadratique par rapport au nombre de triangles
      https://renderformer.github.io/pdfs/renderformer-paper.pdf
      Je me demande s’il serait pratique d’utiliser l’approche par réseau de neurones uniquement pour l’éclairage indirect, avec une géométrie simplifiée. En gros, utiliser un rastériseur classique et y ajouter l’illumination globale
  • J’ai un ami qui a travaillé avec des moteurs de rendu physiquement réalistes dans l’industrie du cinéma et a aussi fait de la recherche dans ce domaine. J’aime toujours écouter ses récits et ses explications sur la manière dont les choses se passent dans ce secteur
    Je me demande quelles entreprises recrutent ce genre de profils aujourd’hui. Les entreprises d’IA recrutent-elles aussi des ingénieurs rendu pour créer des environnements d’entraînement ?
    Si quelqu’un cherche à recruter un ingénieur rendu expérimenté, à la fois en recherche et dans l’industrie, je peux vous mettre en relation. Mon ami n’est pas sur les réseaux sociaux, mais il explore des opportunités

    • Faites-lui me contacter via mon nom d’utilisateur Gmail
  • C’est une recherche vraiment chouette. J’aime beaucoup ce genre d’application des Transformers à des domaines non textuels
    Ça semble devoir bien fonctionner dans les domaines où l’entrée est séquentielle et où les tokens d’entrée sont liés entre eux. J’ai hâte de voir davantage de recherches dans ce domaine
    Parmi les domaines non textuels, quels seraient ceux où les Transformers seraient particulièrement bien adaptés ?

  • L’idée d’entraîner un Transformer à convertir un ensemble de triangles décrivant une scène en une matrice de pixels 2D, de sorte que le résultat ressemble aux pixels produits par un moteur de rendu à illumination globale pour la même scène, est excellente et passionnante
    Au vu des recherches des cinq dernières années, le fait que cela fonctionne n’est pas en soi choquant, mais le résultat paraît tout de même assez profond. L’architecture Transformer est vraiment polyvalente
    En tout cas, c’est extrêmement rapide, proche de la sortie de rendu de Blender, et cela ressemble grosso modo à un modèle d’un milliard de paramètres. Je ne sais pas si c’est du fp16 ou du fp32, mais un fichier de 2 Go, il n’y a pas vraiment de quoi se plaindre. J’aimerais aussi voir des démos de scènes plus « réalistes », mais on peut le télécharger et l’exécuter soi-même sur Mac si on veut