La gestion de données 3D massives est un enjeu majeur pour les applications graphiques. Dans un pipeline de production classique, le rendu d’une scène 3D est indépendant de la génération des textures contenant ses détails visuels. Notre projet vise à coupler étroitement la synthèse procédurale de texture avec le rendu photo-réaliste.
L’usage de modèles procéduraux est courant pour construire ces textures, en particulier les textures stochastiques qui imitent nombre de phénomènes naturels. Il s’agit d’une approche générative, où les textures sont représentées de manière compacte à l’aide de fonctions et de procédures qui sont évaluées pour produire la texture finale. Dans le présent projet, nous nous intéressons au modèle des “Procedural Texture Graph” (PTG), qui représente ce processus génératif sous forme d’un graphe dont les noeuds-source sont des fonctions mathématiques, les noeuds internes des opérateurs de calcul, et les noeuds-puits les textures finales.<br />Dans une chaîne de production classique, ces textures sont calculées, soit de manière directe en amont du rendu (ce qui crée un goulet d’étranglement mémoire car les textures doivent être stockées explicitement), soit à la demande du rendu, ce qui implique une multitude de calculs redondants. Notre projet vise à résoudre ce dilemme, en traitant de manière couplée la synthèse de textures procédurales à la demande et le rendu photo-réaliste. Cela nous permettra de rendre des scènes extrêmement détaillées tout en réduisant les calculs redondants. Pour cela nous souhaitons développer de nouveaux schémas de cache mémoire qui prennent en compte tout le pipeline, du calcul effectif des textures aux besoins du rendu de haute qualité. Ce rendu requiert en particulier de filtrer les textures, c’est-à-dire de calculer une moyenne pondérée des texels sur une sous-région de la texture (intuitivement, l’ensemble des texels qui contribuent à un pixel dans l’espace écran), déterminée par des “ray differentials”. Pour relever les défis posés, nous allons développer une nouvelle théorie pour le préfiltrage et l’anti-aliassage de textures créées par des PTG. La clé, pour réussir un rendu performant, sera de développer des algorithmes de gestion de cache qui exploitent intensivement le PTG, c’est-à-dire en tenant compte de la manière dont la texture et les rayons évoluent à travers le graphe.
Dans cette première phase du projet, nous avons choisi de représenter les objets texturés avec des modèles par micro-facettes. Ceux-ci modélisent les interactions entre les objets et les rayons lumineux, et sont particulièrement bien adaptés au rendu par lancer de rayons. L’idée est alors de générer directement la résultante du graphe (PTG) à différents niveaux de préfiltrage. Nous avons utilisé des dictionnaires parcimonieux pour approximer ces résultantes pré-filtrées, et ainsi conserver une génération procédurale.
Nous avons publié des algorithmes et des codes pour la génération et le rendu.
Dans une première publication [CGF-2020] nous proposons un nouveau modèle de synthèse d’un phénomène de scintillement (comportement lumineux microscopique), qui soit à la fois procédural, temps réel, et physiquement réaliste. Dans une seconde publication [I3DG-2021] nous combinons la technique précédente avec des techniques de rendu avancées et temps-réel. Dans une troisième publication [EGSR-2021] nous explorons la combinaison avec les techniques de lancer de rayons. Ces travaux sont accompagnés de codes informatiques que nous avons rendus publiques dans la bibliothèque logicielle ASTex (Open Source, développée par le partenaire français).
Dans la seconde phase du projet nous allons continuer les travaux sur le WP3 (thèse de Vincent Schuessler) pour développer des techniques de «caching» sur GPU. Des travaux sur un nouveau modèle de graphe de textures est en cours (thèse de Charline Grenier). Nous prévoyons des soumission au premier semestre 2022. A mesure que les travaux avancent, il apparaît que le WP5 est très ambitieux. Il faudra peut-être revoir les objectifs à la baisse.
[CGF-2020] X. Chermain, B. Sauvage, J-M. Dischler, C. Dachsbacher, «Procedural Physically based BRDF for Real-Time Rendering of Glints«, Computer Graphics Forum, Wiley-Blackwell, pages 243--253, Volume 39, n° 7, novembre 2020. doi:10.1111/cgf.14141
[I3DG-2021] X. Chermain, S. Lucas, B. Sauvage, J-M. Dischler, C. Dachsbacher, «Real-Time Geometric Glint Anti-Aliasing with Normal Map Filtering«, ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games, Volume 4, n° 1, 2021, doi:10.1145/3451257
[EGSR-2021] X. Chermain, B. Sauvage, J-M. Dischler, C. Dachsbacher «Importance Sampling of Glittering BSDFs based on Finite Mixture Distributions«, Eurographics Symposium on Rendering, 2021, doi:10.2312/sr.20211289
La gestion de données 3D massives est un enjeu majeur pour les applications graphiques, comme pour la production de médias. Les textures constituent un élément essentiel, dans la mesure où elles servent massivement à la représentation de détails fins, qu’il s’agisse de variations dans les matériaux ou dans la micro-géométrie. L’usage de modèles procéduraux est courant pour construire ces textures, en particulier les textures stochastiques qui imitent nombre de phénomènes naturels. Il s’agit d’une approche générative, où les textures sont représentées de manière compacte à l’aide de fonctions et de procédures qui sont évaluées pour produire la texture finale. Dans le présent projet, nous nous intéressons au modèle des “Procedural Texture Graph” (PTG), qui représente ce processus génératif sous forme d’un graphe dont les noeuds-source sont des fonctions mathématiques, les noeuds internes des opérateurs de calcul, et les noeuds-puits les textures finales.
Dans une chaîne de production classique, ces textures sont calculées, soit de manière directe en amont du rendu (ce qui crée un goulet d’étranglement mémoire car les textures doivent être stockées explicitement), soit à la demande du rendu, ce qui implique une multitude de calculs redondants. Notre projet vise à résoudre ce dilemme, en traitant de manière couplée la synthèse de textures procédurales à la demande et le rendu photo-réaliste. Cela nous permettra de rendre des scènes extrêmement détaillées tout en réduisant les calculs redondants. Pour cela nous souhaitons développer de nouveaux schémas de cache mémoire qui prennent en compte tout le pipeline, du calcul effectif des textures aux besoins du rendu de haute qualité. Ce rendu requiert en particulier de filtrer les textures, c’est-à-dire de calculer une moyenne pondérée des texels sur une sous-région de la texture (intuitivement, l’ensemble des texels qui contribuent à un pixel dans l’espace écran), déterminée par des “ray differentials”. Pour relever les défis posés, nous allons développer une nouvelle théorie pour le préfiltrage et l’anti-aliassage de textures créées par des PTG. La clé, pour réussir un rendu performant, sera de développer des algorithmes de gestion de cache qui exploitent intensivement le PTG, c’est-à-dire en tenant compte de la manière dont la texture et les rayons évoluent à travers le graphe.
La synthèse procédurale fait face à un autre grand défi : comment contrôler la création d’une texture ayant l’apparence souhaitée. Le processus de création du graphe est une tâche fastidieuse, qui demande non seulement des compétences artistiques, mais un compréhension technique et scientifique des opérations du graphe. Notre nouvelle approche ajoute de nouvelles méta-données au PTG, rendant la tâche de construction encore plus difficile. Pour contourner cela, nous proposons d’en faciliter la construction par une approche semi-automatique exploitant des textures d’exemple, souvent disponibles en pratique. Nous allons développer de nouveaux algorithmes pour extraire, à partir d’un exemple, des fonctions élémentaires et des opérateurs permettant de synthétiser une texture similaire à l’exemple. Une méthode complètement automatique n’est ici ni réaliste, ni souhaitable, car l’artiste doit conserver une large part de contrôle. Nous proposons une approche interactive, intégrant l’artiste (qui fixe des contraintes) et les algorithmes (qui résolvent des sous-problèmes) dans une boucle de rétro-interaction.
Ces deux défis, celui du rendu et celui de la création, sont intimement liés, et font appel à l’expertise des deux partenaires : la synthèse de texture à Strasbourg, et le rendu à Karlsruhe.
Monsieur Basile Sauvage (Laboratoire des sciences de l'Ingénieur, de l'Informatique et de l'Imagerie (UMR 7357))
L'auteur de ce résumé est le coordinateur du projet, qui est responsable du contenu de ce résumé. L'ANR décline par conséquent toute responsabilité quant à son contenu.
KIT Karlsruhe Institute of Technology / Institute for Visualization and Data Analysis
ICube Laboratoire des sciences de l'Ingénieur, de l'Informatique et de l'Imagerie (UMR 7357)
Aide de l'ANR 131 684 euros
Début et durée du projet scientifique :
décembre 2019
- 36 Mois