Brevet FR2912240A1 — publié le 20080808

La présente invention concerne un procédé de rendu d'images en temps réel de modèles en trois dimensions de pièces de joaillerie comprenant au moins une pierre transparente ou translucide comprenant des facettes. Pour réaliser le rendu d'image d'un modèle en trois dimensions permettant de simuler des réflexions multiples, il est connu d'utiliser la technique dite du lancer de rayon ( ray-tracing ). Cette technique permet de calculer de façon précise l'intersection d'un rayon sur les surfaces du modèle et la direction des rayons réfléchis et réfractés. Des réflexions multiples à l'intérieur de l'objet sont prises en compte. Cette technique donne satisfaction en ce qui concerne la qualité du rendu des images. Toutefois, les calculs réalisés sont complexes et ne sont pas optimaux pour un rendu en temps réel. Pour des applications de rendu temps réel, il convient de simplifier les calculs effectués. A cet effet, il est connu de supprimer les effets de la réfraction et des multiples réflexions pour les objets transparents ou translucides, en appliquant une simple transparence à ces objets qui sont ainsi traversé en ligne droite par un rayon, avec l'application d'un coefficient de transparence pour calculer la couleur d'un pixel comme une moyenne pondérée de la couleur de la face avant de l'objet transparent, de sa face arrière et d'un objet opaque situé derrière-lui. II est également connu, comme dans le document WO0049573, de simuler une réfraction simple à travers une surface par l'utilisation d'une texture décalée d'une distance calculée en fonction des paramètres de réfraction. Toutefois, les différentes techniques évoquées ci-dessus ne permettent pas de réaliser un rendu temps réel réaliste dans le cas de modèles en trois dimensions de pièces de joaillerie comprenant au moins une pierre transparente ou translucide comprenant des facettes. Le problème technique à la base de l'invention est donc de fournir un procédé de rendu d'images en temps réel de modèles en trois dimensions de pièces de joaillerie comprenant au moins une pierre transparente ou translucide comprenant des facettes, dans lequel l'effet des réflexions internes multiples dans une pierre est pris en compte, par l'intermédiaires de calculs compatibles avec les contraintes de temps d'un rendu temps-réel. A cet effet, la présente invention a pour objet un procédé de rendu 35 d'images en temps réel de modèles en trois dimensions de pièces de joaillerie comprenant au moins une pierre transparente ou translucide comprenant des facettes, comprenant les étapes consistant à : déterminer un point de référence dans la pierre, - calculer les composantes des normales aux facettes de la pierre dans un ensemble discret de directions autour du point de référence, et stocker ces composantes dans une carte des normales, simuler des réflexions de la lumière à l'intérieure de la pierre : o en calculant une approximation du point d'intersection d'un rayon et de la pierre en utilisant une forme géométrique simplifiée de la pierre, et o en utilisant, pour calculer la direction du rayon réfléchi, une normale extraite de la carte des normales, correspondant au point de la surface de la pierre situé dans la direction du point par rapport au point de référence. La forme géométrique simple permet de calculer rapidement les points d'intersection avec le rayon. La normale de la pierre est utilisée pour calculer la direction du rayon réfléchi selon la loi de Schnell - Descartes. Ces dispositions permettent de fournir un rendu en temps réel réaliste par exemple lorsque l'utilisateur provoque un mouvement relatif de la pièce de joaillerie par rapport à la position d'observation virtuelle. En effet, la combinaison de la géométrie simplifiée et de l'utilisation d'une carte des normales déduite de la géométrie réelle allie la simplicité du calcul et la restitution des réflexions multiples entre facettes donnant de la profondeur à l'ensemble. Ce calcul s'adapte de plus particulièrement bien à des formes quasi convexes et des dimensions caractéristiques étant dans le même ordre de grandeur. Les résultats sont de qualité comparable à ceux que l'on pourrait obtenir avec la méthode traditionnelle de lancer de rayon non temps réel. Les approximations prises ne conduisent pas à des artefacts visuels perceptibles. De préférence, la première intersection d'un rayon incident sur la pierre est calculée en utilisant la géométrie réelle. Selon une possibilité, la forme géométrique simplifiée est une sphère. Selon une autre possibilité, la forme géométrique simplifiée comprend deux cônes opposés par la base. De préférence, selon cette autre possibilité, la forme géométrique simplifié est délimitée par l'intersection des deux cônes et d'un demi-espace délimité par un plan coïncidant avec la face supérieure d'une pierre. De préférence, la carte des normales est stockée sous forme d'une image, l'information de couleur d'un pixel donné correspondant aux coordonnés de la normale en un point donné d'une facette de la pierre dans une direction donnée. Selon ces dispositions, la pierre vue de l'intérieure est comme dépliée pour être affichée sur une image. Les processeurs graphiques sont adaptés pour stocker et manipuler les données stockées sous forme d'image ou de textures. Avantageusement, les calculs relatifs aux intersections d'un rayon 15 et de la pierre en utilisant une forme géométrique simplifiée sont réalisés sur un processeur graphique. Le processeur graphique est chargé de la conversion de données géométriques en pixels affichables à l'écran. Il construit à partir d'un ensemble de triangles formant un objet, une représentation 2D visualisable sur les 20 moniteurs d'ordinateur. A partir d'informations sur les matériaux, le modèle d'éclairage et la géométrie, il associe une couleur à chaque pixel. Ces dispositions exploitent les possibilités offertes par ces pipelines graphiques programmables dans un langage permettant de contrôler directement les opérations effectuées par le processeur de la carte graphique. 25 On adapte ainsi un calcul en parallèle au calcul sur carte graphique. De préférence, le point de référence (Pr) est calculé comme l'intersection de plans de symétrie de la pierre, d'axes de symétrie de la pierre, ou comme le centre de la plus grande section de la pierre. Avantageusement, un nombre de réflexions maximum à prendre en 30 compte est utilisé dans les étapes de calcul. De préférence, des indices de réfraction distincts sont pris en compte pour des longueurs d'ondes distinctes. Ces dispositions permettent de restituer des effets d'irisation. Avantageusement, l'approximation de la position du point 35 d'intersection est précisée en utilisant le point de la surface de la pierre situé sur le segment reliant : - le point d'intersection entre un rayon, et la forme de géométrie simplifiée, et - le point de référence dans la pierre. De préférence, la position du point est calculée en utilisant une carte des distances comprenant dans un ensemble discret de directions autour du point de référence, la distance entre la surface de la pierre et le point de référence. Ces dispositions permettent d'améliorer l'approximation réalisée, tout en conservant l'efficacité de calcul. La présente invention concerne également un produit programme d'ordinateur comprenant des instructions permettant de réaliser les étapes du procédé décrit ci-dessus et un support de stockage de données comprenant un tel produit programme d'ordinateur. De toute façon, l'invention sera bien comprise à l'aide de la description qui suit, en référence au dessin schématique annexé représentant, à titre d'exemple non limitatif, une forme de mise en oeuvre de ce procédé. La figure 1 est un organigramme montrant les différentes étapes du procédé selon l'invention. La figure 2 illustre l'étape de détermination du centre géométrique 20 d'une pierre. Les figures 3 à 6 illustrent les différentes phases de l'étape de calcul de la carte des normales. Les figures 7 à 18 illustrent les différentes phases de l'étape de calcul des réflexions multiples. 25 Les figures 19 et 20 illustrent une variante de calcul des réflexions multiples en affinant l'approximation par une carte des distances. Ainsi que représenté sur la figure 1, un procédé de rendu d'images en temps réel de modèles en trois dimensions de pièces de joaillerie comportant au moins une pierre transparente ou translucide comprenant des 30 facettes selon l'invention comprend les étapes suivantes, effectuées par des moyens de calcul, en particulier par un ordinateur muni d'un écran et comprenant un processeur central CPU et une carte graphique munie d'un processeur graphique GPU. Dans une première étape El, le procédé est initialisé. L'utilisateur 35 fournit un ensemble de paramètres relatif à une pierre à visualiser sur l'écran. En particulier, il convient de fournir : une définition géométrique GEOM de la pierre S à afficher, l'indice de réfraction n0 du milieu extérieur dans lequel est placé la pierre S, l'indice de réfraction n1 de la pierre S, le nombre de réflexion nbRef interne dans la pierre S qui doivent être prise en compte, et les valeurs a(i) d'atténuation du ième rayon réfléchi. Certains de ces paramètres peuvent être définis par défaut si l'utilisateur ne les fournit pas, et/ou chargés à partir de bibliothèques. II est à noter que plusieurs valeurs de l'indice de réfraction de la pierre S peuvent être donnés pour plusieurs longueurs d'ondes distinctes. Dans une seconde étape E2, on vérifie si la carte des normales est initialisé et à jour avec la définition géométrique de la pierre S. Si la réponse est oui, le procédé passe directement à la sixième 15 étape E6 d'initialisation de l'affichage. Dans le cas contraire, il convient de réaliser le calcul de la carte des normales texNormal. Ainsi, dans une troisième étape E3, on réalise une détermination d'un point de référence Pr dans la pierre S. Ce point de référence Pr est calculé par exemple comme 20 l'intersection de plans de symétrie de la pierre, d'axes de symétrie de la pierre, ou le cas échéant si la pierre ne présente pas suffisamment de plans ou d'axes de symétrie, comme le centre de la plus grande section de la pierre S, ainsi que représenté sur la figure 2. Dans une quatrième étape E4, on réalise le calcul de la carte des 25 normales texNormal, qui sera stockée sous forme d'image ou de texture. L'objectif de cette étape est d'obtenir une image représentant les normales de la pierre S utilisée. Dans une première phase, représentée sur la figure 3, un lancer de rayons R dans un ensemble discret de directions de l'espace est réalisé à partir 30 du point de référence Pr. Dans une seconde phase, pour chaque rayon R, le point d'intersection I avec la surface de la pierre S est calculé, ainsi que représenté sur la figure 4. Les composantes Nxi, Nyi, Nzi, de la normale N à la surface en ce point sont calculées. Dans une troisième phase, on stocke les directions de normales N ainsi trouvées dans la deuxième phase dans une image ou une texture en fonction de la direction du rayon lancé dans la première phase. A chaque direction définie, on associe une position de pixel sur l'image ou la texture texNormal. Le lien entre direction et position du pixel se fait de manière connue en soi avec la méthode des cartes d'environnement cubique. Ce procédé n'est pas présenté en détail ici. II s'agit de considérer une surface fermée de géométrie simplifiée entourant le point de référence, notamment un cube, et de reporter les différentes surfaces de ce cube à plat dans une image, en dépliant ce cube. Il est à noter qu'il serait possible d'utiliser d'autres méthodes utilisant une relation entre une direction 3D et une image 2D qui associe à chaque direction un point 2D unique. A chaque direction définie, on associe une couleur de pixel, correspondant aux composantes de la normale dans cette direction. On peut notamment convertir en couleur RGB les composantes de la normale selon une formule simple: R = (Nx+1)*0.5 G = (Ny+1)*0.5 B = (Nz+1)*0.5 Les composantes de la normale sont normées de sorte que le module de la normale soit égal à 1. On reporte ensuite la couleur ainsi définie sur le pixel correspondant à la direction du rayon. On obtient ainsi une image ou une texture texNormale qui peut être 25 exportée dans une cinquième étape E5. II est à noter que les étapes El à E5, sont réalisées sur le processeur central CPU, bien que la méthode utilisée puisse aussi être adaptée pour le processeur GPU de la carte graphique. Ces étapes ne sont effectuées qu'une seule fois à l'initialisation de la géométrie. 30 Une fois la texture texNormal exportée, celle-ci peut être communiquée au processeur graphique GPU pour que celui-ci effectue les étapes suivantes. Ces étapes tirent donc profit de la forte parallélisation du processus. Dans une sixième étape E6, une initialisation de l'environnement 35 graphique est réalisée par le processeur graphique. Dans une septième étape E7, un ensemble de traitement est réalisée pour chaque pixel de l'image du rendu affichant une partie de la pierre comme montré sur la figure 7, cet ensemble couvrant une huitième étape E8, une neuvième étape E9, et une dixième étape E10. Dans la huitième étape E8, on réalise un calcul du rayon incident. On utilise pour cela la géométrie GEOM exacte de la pierre pour déterminer l'intersection I entre : - un rayon incident RI provenant de la position d'observation Obs, dans une direction correspondant à un pixel donné, et -la surface de la pierre S, ainsi que représenté sur la figure 8. Dans la neuvième étape E9, on réalise un calcul du rayon de réfraction dans la pierre, en utilisant : l'indice de réfraction n0 du milieu extérieur, l'indice de réfraction n1 de la pierre, éventuellement différentié pour différentes longueurs d'ondes ou gammes de longueurs d'ondes, la normale à la surface donnée par le processeur graphique, Cette normale pouvant être obtenu directement car on utilise dans cette étape la géométrie exacte de la pierre S, Ces paramètres sont utilisés dans un calcul selon la loi de Descartes pour calculer le rayon réfracté Rr dans la pierre. Dans une dixième étape E10, on réalise le calcul des réflexions internes dans la pierre. Ce calcul est en fait une simulation des réflexions de la lumière à l'intérieure de la pierre qui n'utilise pas la géométrie GEOM réelle de la pierre. En effet, une géométrie simplifiée de la pierre est utilisée qui englobe la pierre. Ainsi que représenté sur les figures 10 et 11, on peut notamment choisir une sphère ou un double cône formé de deux cônes Cl et C2 opposés par la base, associé à un plan PI coïncidant avec la face supérieure d'une pierre S. Dans le mode de mise en oeuvre présenté ci-dessous, une sphère Sph est utilisée. Pour obtenir un effet de réflexion proche de la réalité, il est préférable que la sphère Sph, qui est centrée sur le point de référence Pr, soit 35 de diamètre légèrement supérieur à la dimension la plus grande de la pierre. Pour chaque phase du calcul d'une réflexion interne, on calcule l'intersection du rayon avec la sphère Sph. En particulier, pour la première réflexion interne, on calcule l'intersection Isph du rayon réfracté Rr avec la sphère Sph, ainsi que représenté sur la figure 12. Pour calculer la réflexion du rayon au point d'intersection Ipsh, les normales utilisées ne sont pas celles de la sphère mais celles de la carte de normales pré calculées. Ainsi, on détermine la direction D du centre de la pierre Pr au point d'intersection Isph, comme représenté sur la figure 13, puis le point correspondant de l'image des normales comme représenté sur la figure 14. La couleur de ce point est convertie en coordonnées de normale. Les coordonnées correspondent à la valeur réelle de la normale N au point Is de la surface de la pierre S situé sur le segment reliant le point d'intersection sur la sphère Isph et le centre de la pierre Pr. Muni des valeurs de la normale N et du point Isph, nous pouvons calculer la contribution du rayon à la couleur du pixel, en tenant compte du facteur d'atténuation a(0). La normale N obtenue est reportée au point Isph d'intersection sur la sphère, comme représenté sur la figure 16. Ainsi que représenté sur la figure 17, c'est cette normale qui est utilisée pour réfléchir le rayon Rr selon les lois de Descartes. Munis de cette normale, nous pouvons calculer la réflexion dans la sphère et continuer la propagation du rayon réfracté Rr avec la sphère Sph en un rayon R1. On répète ensuite les phases de calcul d'une réflexion interne NbRef fois avec le rayon RI, puis avec les rayons réfléchis suivants R2 à RNbRef-1, ainsi que représenté sur la figure 18. Il est à noter que le calcul d'intersection entre un rayon et une sphère est simple et peut être fait en temps réel. Chaque intersection apporte 30 sa contribution à la couleur. Une fois que les étapes E8 à El0 ont été effectuées pour chaque pixel de l'image du rendu affichant une partie de la pierre, l'ensemble de traitement formant l'étape E7 est achevée. Dans une onzième étape El 1, le processeur graphique procède à 35 l'affichage de l'image de rendu obtenue. Dans une douzième étape E12, on vérifie si une modification de la géométrie de la pierre est intervenue. Si la réponse est OUI, les étapes E2 à El 1 du procédé sont à nouveau effectuées. Dans le cas contraire, une treizième étape est effectuée. Dans la treizième étape, on vérifie si une modification du positionnement relatif entre la position d'observation Obs et la pierre est intervenue. Si la réponse est OUI, les étapes E6 à E12 du procédé sont à nouveau effectuées par le processeur graphique. Dans le cas contraire, la douzième étape est effectuée à nouveau. Une boucle est ainsi réalisée entre la douzième et la treizième étape si la géométrie et le positionnement de la pierre restent identiques. II est à noter que le processus est automatisé et s'adapte à chaque type de pierre sans intervention d'un opérateur, mais simplement en fournissant les paramètres cités ci-dessus. Etant donné la qualité du rendu obtenu, il est possible d'utiliser le même procédé dans un rendu non temps réel avec lancer de rayon, pour diminuer le temps de calcul. Selon une variante de mise en oeuvre du procédé, on peut augmenter la précision de la simulation des réflexions multiples en utilisant comme point d'intersection d'où repart le rayon réfléchi RI le point ls de la surface de la pierre S situé sur le segment reliant le point d'intersection sur la sphère Isph et le centre de la pierre Pr. Une position plus précise du point ls peut être obtenue, ainsi que représenté sur la figure 19, avec une carte de distance texDistance, dont un 25 exemple est représenté sur la figure 20. Dans ce cas, il convient de calculer, comme cela est fait pour la carte des normales, dans toutes les directions à partir du point de référence, la distance entre la surface de la pierre et le point de référence. Ce calcul est réalisé une seule fois pour une géométrie donnée. 30 On stocke ensuite ces valeurs de distance dans une image, selon un principe similaire à celui de la carte des normales si ce n'est que la couleur ne représente plus la direction mais une distance. Comme il va de soi, l'invention ne se limite pas à la seule forme de réalisation de cet appareil, décrite ci-dessus à titre d'exemple, mais elle 35 embrasse au contraire toutes les variantes. REVENDICATIONS 1. Procédé de rendu d'images en temps réel de modèles en trois dimensions de pièces de joaillerie comprenant au moins une pierre (S) 5 transparente ou translucide comprenant des facettes, comprenant les étapes consistant à : déterminer un point de référence (Pr) dans la pierre (S), calculer les composantes des normales (N) aux facettes de la pierre (S) dans un ensemble discret de directions autour du 10 point de référence (Pr), et stocker ces composantes dans une carte des normales (texNormal), simuler des réflexions de la lumière à l'intérieure de la pierre (S) : o en calculant une approximation du point 15 d'intersection (Isph) d'un rayon (Rr, RI, R2, R3) et de la pierre (S) en utilisant une forme géométrique simplifiée (Sph) de la pierre, et o en utilisant, pour calculer la direction du rayon réfléchi (R1, R2, R3), une normale (N) extraite de la carte 20 des normales (texNormal), correspondant au point (Is) de la surface de la pierre (S) situé dans la direction du point (Isph) par rapport au point de référence (Pr). 2. Procédé selon la revendication 1, dans lequel la première intersection d'un rayon incident (RI) sur la pierre (S) est calculée en utilisant la 25 géométrie réelle (GEOM). 3. Procédé selon l'une des revendications 1 ou 2, dans lequel la forme géométrique simplifiée est une sphère (Sph). 4. Procédé selon l'une des revendications 1 à 3, dans lequel la forme géométrique simplifiée comprend deux cônes (Cl, C2) opposés par la 30 base. 5. Procédé selon la revendication 4, dans lequel la forme géométrique simplifié est délimitée par l'intersection des deux cônes (Cl, C2) et d'un demi-espace délimité par un plan (PI) coïncidant avec la face supérieure d'une pierre (S). 35 6. Procédé selon l'une des revendications 1 à 5, dans lequel la carte des normales est stockée sous forme d'une image (texNormal),l'information de couleur d'un pixel donné correspondant aux coordonnés de la normale (N) en un point donné d'une facette de la pierre (S) dans une direction donnée (D). 7. Procédé selon l'une des revendications 1 à 6, dans lequel les calculs relatifs aux intersections d'un rayon (Rr, RI, R2, R3) et de la pierre (S) en utilisant une forme géométrique simplifiée (Sph) sont réalisés sur un processeur graphique (GPU). 8. Procédé selon l'une des revendications 1 à 7, dans lequel le point de référence (Pr) est calculé comme l'intersection de plans de symétrie de la pierre, d'axes de symétrie de la pierre, ou comme le centre de la plus grande section de la pierre (S). 9. Procédé selon l'une des revendications 1 à 8, dans lequel un nombre de réflexions maximum (NbRef) à prendre en compte sont utilisés dans les étapes de calcul. 10. Procédé selon la revendication 9, dans lequel des indices de réfraction (n1) distincts sont pris en compte pour des longueurs d'ondes distinctes. 11. Procédé selon l'une des revendications 1 à 10, dans lequel l'approximation de la position du point d'intersection (Isph) est précisée en utilisant le point (Is) de la surface de la pierre (S) situé sur le segment reliant : - le point d'intersection (Isph) entre un rayon (Rr, R1, R2, R3), et la forme de géométrie simplifiée (Sph), et - le point de référence (Pr) dans la pierre (S). 12. Procédé selon la revendication 11, dans lequel la position du point (Is) est calculée en utilisant une carte des distances comprenant dans un ensemble discret de directions autour du point de référence (Pr), la distance entre la surface de la pierre (S) et le point de référence (Pr). 13. Produit programme d'ordinateur comprenant des instructions permettant de réaliser les étapes du procédé selon l'une des revendications 1 à 30 12. 14. Support de stockage de données comprenant un produit programme d'ordinateur selon la revendication 13.