Brevet FR2974217A1 — publié le 20121019

PROCEDE D'ESTIMATION D'UNE INFORMATION REPRESENTATIVE D'UNE HAUTEUR 1. Domaine de l'invention. L'invention se rapporte au domaine de la composition d'images de synthèse et plus particulièrement au domaine de la génération de carte de hauteur pour environnement virtuel. L'invention s'inscrit également dans le contexte des effets spéciaux pour une composition en temps réel (de l'anglais « live »). 2. Etat de l'art. Selon l'état de la technique, il est connu d'utiliser une carte de hauteur (de l'anglais « heightmap »), dite aussi champ de hauteur (de l'anglais « heightfield »), dans des techniques telle que le placage de déplacement (de l'anglais « displacement mapping ») pour simuler des détails de surfaces d'un objet virtuel. Il existe plusieurs méthodes pour générer une carte de hauteur, par exemple en utilisant des fractales ou en utilisant un programme de génération de terrain (de l'anglais « terrain-editing program ») ou encore en utilisant un programme de peinture (de l'anglais « paint program »), chacune de ces méthodes étant coûteuse en terme de calcul ou en terme de temps à passer pour obtenir la carte de hauteur. 3. Résumé de l'invention. L'invention a pour but de pallier au moins un de ces inconvénients de l'art antérieur. Plus particulièrement, l'invention a notamment pour objectif d'optimiser les temps de calcul et/ou la puissance de calcul nécessaire pour estimer une information représentative de hauteur. L'invention concerne un procédé d'estimation d'une information représentative d'une hauteur, comprenant les étapes de : - sélection d'un premier point parmi une pluralité de points d'une carte de normales, une normale étant associée à chacun des points de la pluralité, une hauteur de référence étant associée au premier point ; - estimation d'une différence de hauteur entre le premier point et un deuxième point de la carte de normales différent du premier point en fonction de la normale associée au deuxième point et de la distance séparant le premier point du deuxième point dans la carte de normales. Selon une caractéristique particulière, l'étape d'estimation d'une différence de hauteur comprend une étape d'estimation d'un vecteur entre le premier point et le deuxième point. Avantageusement, la hauteur associée au deuxième point est égale à la hauteur de référence à laquelle est ajoutée la différence de hauteur estimée. Selon une caractéristique spécifique, l'estimation de la différence de hauteur est pondérée d'un facteur de pondération. De manière avantageuse, le procédé comprend une étape d'estimation d'une différence de hauteur entre le deuxième point et un troisième point de la carte de normales différent des premier et deuxième points en fonction de la normale associée au troisième point et de la distance séparant le deuxième point du troisième point dans la carte de normales. Selon une autre caractéristique, la différence de hauteur est associée au deuxième point et stockée dans une carte de hauteur. Avantageusement, la carte de hauteur est appliquée à une surface d'un objet d'un environnement virtuel. Selon une caractéristique particulière, le procédé comprend une étape d'estimation d'un facteur d'occultation associé au deuxième point, le facteur d'occultation étant estimé à partir de hauteurs associées à une pluralité de points entourant le deuxième point. Selon une autre caractéristique, le facteur d'occultation est stocké dans une carte d'occultation. 4. Liste des figures. L'invention sera mieux comprise, et d'autres particularités et avantages apparaîtront à la lecture de la description qui va suivre, la description faisant référence aux dessins annexés parmi lesquels : - la figure 1 illustre schématiquement un environnement virtuel éclairé par une source de lumière, selon un mode de réalisation particulier de l'invention ; - la figure 2 illustre schématiquement une carte de normales apte à être appliquée à la surface d'un objet de l'environnement virtuel de la figure 1, selon un mode de réalisation particulier de l'invention ; - la figure 3 illustre schématiquement une méthode pour l'estimation d'une carte de hauteur à partir de la carte de normales de la figure 2, selon un mode de réalisation particulier de l'invention ; - la figure 4 illustre une méthode pour l'estimation de facteurs d'occultations à partir de la carte de hauteur de la figure 3, selon un mode de réalisation particulier de l'invention ; - la figure 5 illustre un dispositif mettant en oeuvre un procédé d'estimation d'une information représentative d'une hauteur, selon un exemple de mise en oeuvre particulier de l'invention ; - les figures 6 et 7 illustrent un procédé d'estimation d'une information représentative d'une hauteur, selon deux exemples de mise en oeuvre particuliers de l'invention. 5. Description détaillée de modes de réalisation de l'invention. La figure 1 illustre un environnement virtuel ou une scène virtuelle 1 éclairée par une source de lumière 10. L'éclairage fourni par la source lumineuse 10 forme un cône de lumière 101. L'environnement virtuel 1 comprend un ou plusieurs objets virtuels 11, 12, 13 et 14, modélisés selon toute méthode connue de l'homme du métier, par exemple par modélisation polygonale, dans laquelle le modèle est assimilé à un ensemble de polygones chacun défini par la liste des sommets et des arêtes qui le compose, par modélisation par courbe de type NURBS (de l'anglais « Non uniform rational basic spline » ou en français « Spline basique rationnelle non uniforme ») dans laquelle le modèle est défini par un ensemble de courbes créées grâce à des points de contrôle (de l'anglais « control vertices »), par modélisation par subdivision de surfaces... On entend par objet virtuel toute représentation virtuelle (obtenue par modélisation) d'un objet (réel ou fictif) composant un environnement réel (par exemple le sol, une maison ou une façade d'une maison, une voiture, un arbre, c'est-à-dire tout élément composant un environnement tel qu'une pièce d'une maison, une rue, une ville, la campagne, ...) ou imaginaire. Chaque objet 11, 12, 13 et 14 de l'environnement virtuel est caractérisé par une surface le recouvrant, la surface de chaque objet ayant des propriétés de réflectance (correspondant à la proportion de lumière incidente réfléchie par la surface dans une ou plusieurs directions) qui lui sont propres. Avantageusement, la réflectance de la surface d'un objet varie en fonction de la zone de l'objet réfléchissant la lumière (une zone de la surface comprenant un ou plusieurs points de la surface) c'est-à-dire que la réflectance de la surface d'un objet n'est pas constante. Selon une variante, la réflectance de la surface d'un objet est constante en tout point de la surface de l'objet. Ainsi, l'objet 11 reçoit une quantité de lumière incidente de la source lumineuse 10, cette lumière incidente étant réfléchie par des points de la surface de l'objet 11 éclairés par la source lumineuse 10. On entend par points d'une surface des points singuliers ou selon une variante à des éléments de surface, chaque élément de surface comprenant plusieurs points (par exemple 5, 10, 20 points). Dans la suite de la description de la figure 1, un point d'une surface désignera aussi bien un point unitaire qu'un élément de surface. De la même manière, chacun des objets 12 à 14 reçoit une quantité de lumière incidente de la source lumineuse 10, cette lumière incidente étant réfléchie par les points éclairés par la source lumineuse 10. L'information relative à la normale de chaque élément de surface réfléchissant la lumière est utile pour estimer la quantité de lumière réfléchie selon une direction donnée. Selon une variante, l'environnement virtuell est éclairé par une pluralité de sources lumineuses, par exemple 100, 1000, 100000 ou 1000000 sources lumineuses. La figure 2 illustre schématiquement une carte de normales 2, selon un mode de mise en oeuvre particulier et non limitatif de l'invention. La carte de normales 2 est composée d'une pluralité de texels (de l'anglais « TEXture ELement » ou en français « Elément de texture ») 200 à 20m. La carte de normales 2 correspond à une image RGB (de l'anglais « Red, Green, Blue » ou en français « rouge, vert, bleu ») composée de m texels, les 3 canaux RGB de chaque texel étant utilisés pour stocker les valeurs en X, Y et Z des coordonnées d'un vecteur normal au plan tangent en un texel (ou en un point) d'une surface à laquelle serait appliquée la carte de normale. En prenant comme exemple l'application de la carte de normales 2 à une surface d'un objet virtuel de l'environnement virtuel 1, par exemple la surface de l'objet virtuel 11, cette application permettrait de fournir des informations d'orientation à la surface de l'objet 11, chaque normale de la carte de normales 2 étant associée à un point ou à un élément de surface de la surface de l'objet 11, sans modifier la modélisation de la surface de l'objet 11, c'est-à-dire sans modifier le nombre de polygones servant à la modélisation de l'objet 11. Lors de l'éclairage de l'objet 11 par la source de lumière 10, la prise en compte des informations d'orientations associées à la surface de l'objet 11 par le biais de la carte de normales 11 permet de générer des nuances dans l'éclairage de la surface de l'objet 11 en ajoutant des ombres dues à l'orientation de la surface. L'application d'une carte de normale offre donc l'avantage de simuler un microrelief sur la surface de l'objet 11 sans augmenter le nombre de polygones utilisés pour la modélisation de l'objet 11. Cette simulation des microreliefs est satisfaisante lorsque l'objet 11 est vu de suffisamment loin mais elle est par contre insuffisante lorsque l'objet est vu de près. En effet, la silhouette de la surface n'étant pas réellement déformée, les jeux d'ombre et de lumière donnant une impression de relief ne sont pas suffisants lorsque l'objet 11 est vu de près. Dans la suite de la description, les notions de texel et de pixel seront confondues et on parlera de point, un point correspondant à un élément unitaire (c'est-à-dire un texel) de la carte de normales ou à un élément d'une surface (un élément unitaire d'une surface, par exemple un pixel, ou à un élément de surface associé à cet élément unitaire). De manière avantageuse, la carte de normales 2 fait partie d'une bibliothèque de cartes de normales comprenant plusieurs cartes de normales. Chaque carte de normales de la bibliothèque est avantageusement représentative d'un type de relief particulier pouvant être appliqué à la surface d'un ou plusieurs objets virtuels de l'environnement virtuel 1. La figure 3 illustre schématiquement une méthode pour la génération d'une carte de hauteur à partir de la carte de normales 2, selon un mode de réalisation particulier et non limitatif de l'invention. Les vecteurs 300, 301, 302, 303 et 304 correspondent à une partie des vecteurs normaux de la carte de normales 2. Ainsi, les vecteurs normaux 301, 302 et 303 sont les représentations graphiques des informations représentatives des vecteurs normaux stockés (c'est-à-dire les coordonnées en X, Y et Z) dans respectivement les points 244, 245 et 246 de la carte de normales 2. L'axe vertical est représenté par le vecteur v 310. Pour déterminer une carte de hauteur à partir de la carte de normales 2, la première étape consiste à choisir un premier point de la carte de normales 2, par exemple le point P1 244, et de lui assigner une hauteur de référence Hr, par exemple 0 m (mètre). Le choix du premier point P1 dit de référence est un choix arbitraire qui est avantageusement réalisé par un utilisateur. Selon une variante, le choix du point de référence est prédéterminé, c'est-à-dire qu'il correspond à des coordonnées fixes d'un point de la carte de normales 2. Selon, cette variante, le point de référence sera identique quelle que soit la carte de normale. De la même manière, la valeur de la hauteur de référence associée au point de référence P1 est choisie de manière arbitraire par un utilisateur et peut prendre toute valeur, par exemple 0 m, 0.1 m, 0.5 m, 1 m ou plus. Cette valeur de hauteur de référence peut également être négative, par exemple -1 m, -0.5 m ou encore -0.1 m. La hauteur de référence est avantageusement assignée à un premier point P1 31 d'une carte de hauteur (dite aussi champ de hauteur) 3. Dans une deuxième étape, la différence de hauteur entre un deuxième point P2 de la carte de normales 2 et le premier point P1 est déterminée. Le deuxième point P2 est un point dans le voisinage immédiat du premier point P1. Ce deuxième point P2 appartient avantageusement à l'un des points touchant (ou entourant) le premier point P1 dans la carte de normales 2. La sélection du deuxième point est avantageusement réalisée en utilisant une méthode de remplissage par diffusion, dite « seed fill » en langue anglaise (ou en français « semence de remplissage »). Selon une variante, le deuxième point P2 sélectionné correspond au point situé par exemple à droite du premier point P1 dans la ligne comprenant le premier point P1. Selon cette variante, la sélection du deuxième point P2 est réalisée en utilisant la méthode de remplissage par diffusion dite « flood fill » en langue anglaise (ou en français « remplissage par inondation »). Pour déterminer la différence de hauteur entre le deuxième point P2 et le premier point P1, le vecteur normal 302 associé au deuxième point P2 est extrait de la carte de normales 2. Puis la distance séparant le premier point P1 du deuxième point P2 dans le plan de la carte de normales 2 est estimée, par exemple en déterminant le vecteur b 3011 ayant pour origine le premier point P1 et pour deuxième extrémité le point P2. La différence de hauteur d entre le premier point P1 et le deuxième point P2 est ensuite estimée par rapport à l'axe vertical représenté par le vecteur v 310 à partir de l'équation suivante : d = (n - v)-6 Equation 1 où d est la différence de hauteur en mètre (m), n est le vecteur normal à la surface au deuxième point P2, v est le vecteur représentatif de l'axe vertical, b correspond au vecteur séparant les premier P1 et deuxième P2 points au niveau du plan de la carte de normales. Selon une variante, l'équation 1 permettant d'estimer la différence de hauteur entre deux points voisins est pondérée d'un coefficient a de la manière suivante : d = a.(n - v).6 Equation 2 où a peut prendre toute valeur, par exemple 0.1, 0.5, 1, 2, 3 etc. Ce facteur a permet avantageusement de donner plus ou moins d'amplitude à la variation de hauteur entre deux points et, comme cela sera expliqué en regard de la figure 4, de moduler les variations d'occultations calculées à partir de la carte de hauteur. La différence de hauteur d estimée est avantageusement associée à un deuxième point P2 32 de la carte de hauteur 3. Selon une variante, la hauteur absolue du deuxième point P2 est associée au deuxième point de la carte de hauteur à la place de la différence de hauteur, la hauteur absolue H en mètre (m) du deuxième point P2 correspondant à la somme de la hauteur de référence Hr en mètre (m) et de la différence de hauteur d en mètre (m), à savoir : H = Hr + d Equation 3 Lors d'une étape supplémentaire, la différence de hauteur entre un troisième point P3 et le deuxième point P2 est estimée. Le troisième point P3 est sélectionnée selon l'une des méthodes de sélectionnée mentionnée ci-dessus, à savoir la méthode dite du « seed fill » ou la méthode du « flood fill ». Si l'on choisit le troisième point comme étant celui à droite du deuxième point P2 dans la ligne de la carte de normales 2 contenant le deuxième point P2, le troisième point P3 sélectionné est le point référencé 246 dans la carte de normales 2. Si l'on utilise la méthode dite du « seed fill » le troisième point correspond à un point voisin du deuxième point P2 dans la carte de normales 2 pour lequel la différence de hauteur n'a pas été estimée. Pour estimer la différence de hauteur entre le troisième point P3 246 et le deuxième point P2 245, le vecteur normal u 303 associé au troisième point P3 246 est extrait de la carte de normales 2. Puis la distance séparant le deuxième point P2 du troisième P3 dans le plan de la carte de normales 2 est estimée, par exemple en déterminant le vecteur 6' 3012 ayant pour origine le deuxième point P2 et pour deuxième extrémité le troisième point P3. En appliquant l'une des équations 1 ou 2 à ces nouvelles données, on obtient la différence de hauteur d' entre le deuxième point et le troisième point, à savoir : d' = (u - v).6', ou Equation 4 d' = a.(u - v).b' Equation 5 Cette différence de hauteur est avantageusement associée au troisième point P3 33 de la carte de hauteur. Selon une variante, la hauteur absolue H' du troisième point P3 est calculée avant d'être associée au troisième point P3 33 de la carte de hauteur, la hauteur absolue étant égale à : H' = H + d' Equation 6 Selon les étapes décrites ci-dessus, il est possible d'assigner une information représentative de hauteur (c'est-à-dire une différence de hauteur ou une hauteur absolue) à tout point de la carte de normales 2 en sélectionnant les points de la carte de normales de proche en proche en partant du point de référence sélectionnée. On obtient alors une carte de hauteur comprenant autant de point qu'il y a de points dans la carte de normales 2. La méthode décrite ci-dessus présente l'avantage d'obtenir une information de hauteur à partir d'informations stockées dans une carte de normales à faible coût en terme de calcul, une carte de hauteur pouvant ainsi être générée à la volée ou en temps réel. Dans le cas où l'on dispose d'une bibliothèque de cartes de normales comprenant un grand nombre de cartes de normales, il est possible de sélectionner n'importe quelle carte de normales et d'en déduire à la volée une carte de hauteur, ce qui permet d'éviter d'avoir à stocker dans une bibliothèque de cartes de normales autant de cartes de hauteurs qu'il y a de cartes de normales, réduisant ainsi l'espace mémoire nécessaire. En reliant tous les points 30 à 34 de la carte de hauteur auxquels sont associés des informations représentatives de hauteur, on obtient une surface 3 (dont une vue en coupe est représentée à la figure 3) présentant des creux et des bosses. Les vecteurs normaux 300 à 304 associés à chacun de ces points 30 à 34 (et stockés dans les points respectifs de la carte de normales 2) représentent la normale au plan tangent au point considéré. Par exemple, le vecteur 300 est normal au plan tangent à l'élément de surface associé au point 30, le vecteur 301 est normal au plan tangent à l'élément de surface associé au point 31, le vecteur 302 est normal au plan tangent à l'élément de surface associé au point 32, le vecteur 303 est normal au plan tangent à l'élément de surface associé au point 33 et le vecteur 304 est normal au plan tangent à l'élément de surface associé au point 34. Selon un mode de mise en oeuvre particulier de l'invention, la carte de hauteur générée selon la méthode décrite précédemment est appliquée à la surface d'un ou plusieurs objets de l'environnement virtuel 1, par exemple à la surface de l'objet virtuel 11. L'application d'une carte de hauteur permet de déformer la surface de l'objet 11, la déformation en un point de la surface de l'objet 11 correspondant à un déplacement de la surface en ce point égal à la valeur de hauteur du point de la carte de hauteur associé à ce point de la surface de l'objet 11 lors de l'application de la carte de hauteur. Contrairement à l'application d'une carte de normales à la surface d'un objet qui ne déforme pas structurellement la surface de l'objet, l'application d'une carte de hauteur permet de modifier réellement l'aspect visuel de la surface. Un objet sur lequel est appliquée la carte de hauteur vue de près présente des bosses et des creux qui permettent par ailleurs de générer des jeux d'ombre et de lumière. L'application d'une carte de hauteur à la surface d'un objet apporte plus de réalisme à l'objet que l'application d'une carte de normales, et ce d'autant plus que l'objet est vu de près. La figure 4 illustre schématiquement une méthode pour l'estimation de facteurs d'occultations à partir d'une carte de hauteur 3, selon un mode de réalisation particulier et non limitatif de l'invention. Les éléments identiques aux figures 3 et 4 conservent les mêmes signes de référence. Pour déterminer le facteur d'occultation associé par exemple au deuxième point P2 32, un disque 40 de rayon R centré sur le deuxième point P2 32 est choisi. Le rayon R de ce disque 30 est choisi par exemple par un utilisateur, le rayon R étant choisi en fonction de l'effet de diffusion voulu, l'effet de diffusion étant d'autant plus grand que R est grand (R vaut par exemple 10, 30 ou 50 texels autour du point considéré de la carte de normales). Le disque 30 comprend une pluralité de points 30, 31, 33, 34 entourant le deuxième point P2 32 et appartenant à la surface 3. De manière avantageuse, un facteur d'occultation associé au deuxième point P2 32 est déterminé à partir de la distance 400, 401, 403, 404 séparant le deuxième point P2 32 de respectivement chacun des points 30, 31, 33, 34 du disque 30 et de la hauteur associée à chacun de ces points 30, 31, 33, 34 dans la carte de hauteur. Le facteur d'occultation associé au deuxième point P2 32 est représentatif de l'occultation ambiante (de l'anglais « ambient occlusion ») en ce deuxième point P2 due aux variations de hauteur des points entourant ce deuxième point dans la carte de hauteur ou dans la carte de normales correspondantes. De manière avantageuse, le facteur d'occultation associée au deuxième point est égal à la somme des rapports hauteur sur distance au deuxième points pour les points du disque 30 divisée par le nombre de points entourant le deuxième point P2 du disque 30, c'est-à-dire : n Hi, 3 = ~1=1Di F' n Equation 7 Où 13 est le facteur d'occultation, n correspond au nombre de points P; entourant le deuxième point et appartenant au disque 30, H; est la hauteur associée au point P; D; correspond à la distance séparant le deuxième point P2 du point P; Selon une variante, une pluralité de rayons ayant pour origine le deuxième point P2 32 est lancée au travers d'une demi-sphère ayant pour base le disque 30 et pour centre le deuxième point 32 et s'élevant au dessus du disque 30. Les intersections entre chacun de ces rayons et la surface 3 représentative de la carte de hauteur sont déterminées en discrétisant chacun des rayons lancés. Le facteur d'occultation associé au deuxième point P2 correspond par exemple au rapport entre le nombre de rayons ayant une intersection avec la surface 3 sur le nombre de rayons total. La discrétisation de chacun des rayons lancés permet de déterminer avec précision le point d'intersection avec la surface 3 quand celui-ci existe. De manière avantageuse, un facteur d'occultation est déterminé pour chacun des points de la carte de normale (ou de la carte de hauteur qui comprend les mêmes points). Les facteurs d'occultations sont stockés dans une carte d'occultation comportant autant de points que la carte de normales 2. Il est aussi possible de dire qu'un facteur d'occultation est associé à chacun des points de la carte de normales 2 ou qu'un facteur d'occultation est associé à chacun des points de la carte de hauteur. La figure 5 illustre schématiquement un exemple de réalisation matérielle d'un dispositif 5 adapté à l'estimation d'une information représentative de hauteur ou représentative d'occultation ou les deux et à la création de signaux d'affichage d'une ou plusieurs images représentatives de l'environnement virtuel 1. Le dispositif 5 correspondant par exemple à un ordinateur personnel PC, à un ordinateur portable (de l'anglais « laptop ») ou à une console de jeux. Le dispositif 5 comprend les éléments suivants, reliés entre eux par un bus 55 d'adresses et de données qui transporte également un signal d'horloge : - un microprocesseur 51 (ou CPU) ; - une carte graphique 52 comprenant : - plusieurs processeurs de traitement graphique 520 (ou GPUs) ; - une mémoire vive de type GRAM (de l'anglais « Graphical Random Access Memory ») 521 ; - une mémoire non volatile de type ROM (de l'anglais « Read Only Memory ») 56 ; - une mémoire vive ou RAM (de l'anglais « Random Access Memory ») 57 ; - un ou plusieurs dispositifs I/O (de l'anglais « Input/Output » ou en français « Entrée/Sortie ») 54, tels que par exemple un clavier, une souris, une webcam ; et - une alimentation 58. 25 Le dispositif 5 comprend également un dispositif d'affichage 53 de type écran d'affichage relié directement à la carte graphique 52 pour afficher notamment le rendu d'images de synthèse calculées et composées dans la carte graphique, par exemple en temps réel. L'utilisation d'un bus dédié pour relier le dispositif d'affichage 53 à la carte graphique 52 offre l'avantage 30 d'avoir des débits de transmission de données beaucoup plus important et ainsi de diminuer le temps de latence pour l'affichage d'images composées par la carte graphique. Selon une variante, un appareil pour afficher est externe au dispositif 5 et est relié au dispositif 5 par un câble transmettant les signaux d'affichage. Le dispositif 5, par exemple la carte graphique 52, 35 comprend un moyen de transmission ou connecteur (non représenté sur la figure 5) adapté à transmettre un signal d'affichage à un moyen d'affichage externe tel que par exemple un écran LCD ou plasma, un vidéoprojecteur. 20 On observe que le mot « registre » utilisé dans la description des mémoires 521, 56 et 57 désigne dans chacune des mémoires mentionnées, aussi bien une zone de mémoire de faible capacité (quelques données binaires) qu'une zone mémoire de grande capacité (permettant de stocker un programme entier ou tout ou partie des données représentatives de données calculées ou à afficher). A la mise sous tension, le microprocesseur 51 charge et exécute les instructions du programme contenu dans la RAM 57. La mémoire vive 57 comprend notamment : - dans un registre 570, le programme de fonctionnement du microprocesseur 51 chargé à la mise sous tension du dispositif 5, Les algorithmes mettant en oeuvre les étapes du procédé propres à l'invention et décrits ci-après sont stockés dans la mémoire GRAM 521 de la carte graphique 52 associée au dispositif 5 mettant en oeuvre ces étapes. A la mise sous tension et une fois les paramètres 571 représentatifs du milieu chargés en RAM 57, les processeurs graphiques 520 de la carte graphique 52 charge ces paramètres en GRAM 521 et exécute les instructions de ces algorithmes sous la forme de microprogrammes du type « shader » utilisant le langage HLSL (de l'anglais « High Level Shader Language » ou en français « Langage de programmation « shader » de haut niveau »), le langage GLSL (de l'anglais « OpenGL Shading language » ou en français « Langage de shaders OpenGL ») par exemple. La mémoire vive GRAM 521 comprend notamment : - des valeurs 5211 représentatives des coordonnées X, Y et Z des vecteurs normaux d'une carte de normales 2 ; - des valeurs 5212 représentatives de différences de hauteurs associées aux points formant la carte de normales 2 ; - des valeurs 5213 représentatives de hauteurs associées aux points d'une carte de hauteur 3 ; et - des valeurs 5214 représentatives de facteurs d'occultations associées aux points de la carte de normales 2 ou de la carte de hauteur. Selon une variante, les valeurs 5211 à 5214 sont stockées dans la RAM 57 et traitées par le microprocesseur 51. Selon une autre variante, une partie de la RAM 57 est allouée par le CPU 51 pour stocker les valeurs 5211 à 5214 si l'espace mémoire disponible en GRAM 521 est insuffisant. Cette variante entraîne cependant des temps de latence plus important dans la composition d'une image comprenant une représentation de l'environnement 1 composé à partir des microprogrammes contenus dans les GPUs puisque les données doivent être transmises de la carte graphique à la mémoire vive 57 en passant par le bus 55 dont les capacités de transmission sont généralement inférieures à celles disponibles dans la carte graphique pour faire passer les données des GPUs à la GRAM et vice-versa. Selon une autre variante, l'alimentation 58 est externe au dispositif 5. La figure 6 illustre un procédé d'estimation d'une information représentative d'une hauteur mis en oeuvre dans un dispositif 5, selon un premier exemple de mise en oeuvre non limitatif particulièrement avantageux de l'invention. Au cours d'une étape d'initialisation 60, les différents paramètres du dispositif 5 sont mis à jour. En particulier, les paramètres représentatifs de l'environnement virtuel 1 et/ou les informations contenues dans les différentes cartes (par exemple carte de normales) sont initialisés d'une manière quelconque. Ensuite, au cours d'une étape 61, un premier point est sélectionné parmi l'ensemble de points (dits aussi texels) formant une carte de normales. A chaque point de la carte de normales est associé un vecteur normal représenté par ses coordonnées X, Y et Z. Une hauteur de référence est associée à ce premier point, par exemple 0 mètre ou toute autre valeur positive ou négative. Le premier point est avantageusement choisi en fonction de la carte de normales utilisée, par exemple par un utilisateur. En représentant la carte de mémoire par une matrice à deux dimensions comprenant m lignes et n colonnes, un point de la carte de normales correspondant au croisement d'une ligne et d'une colonne et ayant pour indices les indices i et j de respectivement la colonne et le ligne qui se croisent, le premier point est caractérisé par ses indices i et j. Le premier point varie avantageusement d'une carte de normales à une autre, c'est-à-dire que ses indices i et j en partant du principe que toutes les cartes de normales possèdent le même nombre de colonnes et de lignes, à savoir m lignes et n colonnes. Selon une variante, le premier point est le même d'une carte de normales à une autre, c'est-à-dire que ses indices i et j restent les mêmes. La hauteur de référence associée au premier point est identique d'une carte de normales à une autre ou varie d'une carte de normales à une autre. Puis, au cours d'une étape 62, la différence de hauteur entre le premier point sélectionnée à l'étape 61 et un deuxième point est déterminée. Le deuxième point est choisi selon toutes méthodes connues, par exemple selon les méthodes dites de « seed fill » ou de « flood fill ». Le deuxième point est par exemple un point voisin du premier point dans la carte de normales, c'est-à-dire un point touchant le premier point, c'est-à-dire un point choisi parmi les points ayant pour indices [41 ,j], ,j+1],,j-l], [i,j+1 ], [i,j-1], [i-1,j], [i-1,j+1 ], [i-1,j-1 ] en considérant que les indices du premier point sont [i,j]. Le deuxième point est également un point pour lequel la différence de hauteur avec le premier point n'a pas été déterminée. La détermination de la différence de hauteur entre le premier point et le deuxième point dépend de la distance séparant le premier point du deuxième point dans le plan de la carte de normales et de la normale associée au deuxième point dans la carte de normales, par exemple grâce à l'équation 1 décrite précédemment. La normale associée à un point de la carte de normales correspond à la normale au plan tangent à la surface en un point d'une surface d'un objet virtuel auquel serait associé le point considéré de la carte de normales si la carte de normales était appliquée à une surface d'un objet virtuel. L'information de normale stockée dans la carte de normales permet de déduire la pente d'une surface au point considéré si la carte de normales était appliquée à la surface d'un objet virtuel par exemple. Selon une variante, la hauteur absolue associée au deuxième point est déterminée en sommant la hauteur de référence associée au premier point et la différence de hauteur. L'information représentative de hauteur correspond à la différence de hauteur ou à la hauteur absolue. La hauteur absolue déterminée est avantageusement stockée dans une carte de hauteur (dite aussi champ de hauteur) comprenant autant de points que la carte de normales. La hauteur absolue est avantageusement associée à un point de la carte de hauteur ayant les mêmes indices que le deuxième point dans la carte de normales. Selon une variante, c'est la différence de hauteur qui est stockée dans la carte de mémoire, la différence de hauteur déterminée pour le deuxième point de la carte de normales étant associée à un point de la carte de hauteur ayant les mêmes indices que le deuxième point dans la carte de normales. Selon une autre variante, l'estimation de la différence de hauteur entre le premier point et le deuxième point est pondérée d'un coefficient a. La pondération de la différence de hauteur permet d'amplifier les variations de hauteur d'un point à un autre lorsque la valeur absolue du coefficient a est strictement supérieure à 1 (c'est-à-dire lai > 1) (a étant un nombre réel) et de diminuer les variations de hauteur d'un point à un autre lorsque la valeur absolue de a est comprise entre 0 et 1, 0 et tétant exclues (c'est -à-dire 0 La figure 7 illustre un procédé d'estimation d'une information représentative d'une hauteur mis en oeuvre dans un dispositif 5, selon un deuxième exemple de mise en oeuvre non limitatif particulièrement avantageux de l'invention. Au cours d'une étape d'initialisation 70, les différents paramètres du dispositif 5 sont mis à jour. En particulier, les paramètres représentatifs de l'environnement virtuel 1 et/ou les informations contenues dans les différentes cartes (par exemple carte de normales) sont initialisés d'une manière quelconque. Ensuite, au cours d'une étape 71, un premier point est sélectionné parmi l'ensemble de points d'une carte de normales. L'étape 71 étant identique à l'étape 61 précédemment décrite, elle ne sera pas détaillée à nouveau dans ce paragraphe. Puis au cours d'une étape 72, un vecteur localisé entre le premier point et le deuxième point est déterminé. Les extrémités du vecteur correspondent à respectivement le premier point (origine du vecteur) et le deuxième point (deuxième extrémité du vecteur). La distance séparant le premier point du deuxième point dans le plan de la carte de normales est déterminée à partir du vecteur et correspond à la norme du vecteur. Puis, au cours d'une étape 73, la différence de hauteur entre le premier point et le deuxième point est estimée. L'étape 73 étant identique à l'étape 62 précédemment décrite, elle ne sera pas détaillée à nouveau dans ce paragraphe. Enfin, au cours d'une étape 74, un facteur d'occultation 13 associé au deuxième point est estimé à partir des hauteurs associées aux points entourant le deuxième point. Le facteur d'occultation est par exemple déterminé à partir de l'équation 7 décrite précédemment. Selon un autre exemple, une pluralité de rayons ayant pour origine le deuxième point est lancée au travers d'une demi-sphère ayant pour base un disque (ayant pour centre le deuxième point et un rayon déterminé par un utilisateur ou fixé, le rayon étant par exemple choisi de manière à ce que le disque englobe une pluralité de points de la carte de normales autour du deuxième point, par exemple 10, 20, 50 ou 100 points) et pour centre le deuxième point et s'élevant au dessus du disque. Les intersections entre chacun de ces rayons et une surface 3 représentative des variations de hauteurs associées aux points compris dans le disque (ces hauteurs étant par exemple stockées dans la carte de hauteur et déterminées selon la méthode décrite aux étapes 61 et 62 ou aux étapes 71 à 73) sont déterminées en discrétisant chacun des rayons lancés. La surface 3 correspond à la surface d'élévation reliant les points s'élevant de la hauteur H qui leur associée au dessus de la carte de hauteur ou de la carte de normales. Le facteur d'occultation associé au deuxième point correspond au rapport entre le nombre de rayons ayant une intersection avec la surface 3 sur le nombre de rayons total. La discrétisation de chacun des rayons lancés permet de déterminer avec précision le point d'intersection avec la surface 3 quand celui-ci existe. Selon une variante, le facteur d'occultation R est stocké dans une carte d'occultation et est associé à un point de la carte d'occultation dont les indices [i, j] sont identiques à ceux du deuxième point dans la carte de normales. La carte d'occultation comprend avantageusement autant de points que la carte de normales ou que la carte de hauteur, un point de la carte d'occultation étant associé à un point de la carte de normales, un facteur d'occultation étant associé à chacun des points de la carte d'occultation. Bien entendu, l'invention ne se limite pas aux modes de réalisation décrits précédemment. En particulier, l'invention n'est pas limitée à un procédé d'estimation d'une information représentative d'une hauteur mais s'étend également à tout dispositif mettant en oeuvre ce procédé et notamment tous les dispositifs comprenant au moins un GPU. La mise en oeuvre des calculs nécessaires à l'estimation de l'information représentative de hauteur n'est pas non plus limitée à une mise en oeuvre dans des microprogrammes de type shader mais s'étend également à une mise en oeuvre dans tout type de programme, par exemple des programmes exécutables par un microprocesseur de type CPU. L'utilisation de l'invention n'est pas limitée à une utilisation temps réel mais s'étend également à toute autre utilisation, par exemple pour les traitements dits de postproduction en studio d'enregistrement pour le rendu d'images de synthèse par exemple. La mise en oeuvre de l'invention en postproduction offre l'avantage de fournir un excellent rendu visuel en termes de réalisme notamment tout en diminuant les temps de calcul nécessaires. L'invention concerne également un procédé d'estimation de l'occultation ambiante (de l'anglais « ambient occlusion ») dans un environnement virtuel 1 pour le rendu ou la composition d'une image vidéo, en deux dimensions ou en trois dimensions, pour lequel la quantité de lumière reçue par tout point visible depuis un point de vue selon une ou plusieurs directions d'observation est calculée et l'information représentative de la luminance qui en découle est utilisée pour l'affichage des pixels de l'image, chaque pixel correspondant à une direction d'observation. La valeur de luminance calculée pour affichage par chacun des pixels de l'image est recalculée pour s'adapter aux différents points de vue du spectateur. La présente invention peut être utilisée dans des applications de jeux vidéo par exemple, que ce soit par des programmes exécutables dans un ordinateur de type PC ou portable ou dans des consoles de jeux spécialisées produisant et affichant des images en temps réel. Le dispositif 5 décrit en regard de la figure 5 est avantageusement doté de moyens d'interactions tels que clavier et/ou manette de jeux, d'autres modes d'introduction de commandes telle que par exemple la reconnaissance vocale étant également possibles. REVENDICATIONS1. Procédé d'estimation d'une information représentative d'une hauteur, caractérisé en ce que le procédé comprend les étapes suivantes : - sélection (61, 71) d'un premier point (244) parmi une pluralité de points d'une carte de normales (2), une normale étant associée à chacun des points de ladite pluralité, une hauteur de référence (Hr) étant associée audit premier point (244) ; - estimation d'une différence de hauteur entre le premier point (244) et un deuxième point (245) de la carte de normales (2) différent du premier point (244) en fonction de la normale (302) associée au deuxième point (245) et de la distance (3011) séparant le premier point (244) du deuxième point (245) dans la carte de normales (2). 2. Procédé selon la revendication 1, caractérisé en ce que l'étape d'estimation d'une différence de hauteur comprend une étape (72) d'estimation d'un vecteur entre le premier point et le deuxième point. 3. Procédé selon l'une des revendications 1 à 2, caractérisé en ce que la hauteur associée au deuxième point est égale à la hauteur de référence à laquelle est ajoutée la différence de hauteur estimée. 4. Procédé selon l'une des revendications 1 à 3, caractérisé en ce que l'estimation de la différence de hauteur est pondérée d'un facteur de pondération. 5. Procédé selon l'une des revendications 1 à 4, caractérisé en ce qu'il comprend une étape d'estimation d'une différence de hauteur entre le deuxième point (245) et un troisième point (246) de la carte de normales (2) différent des premier (244) et deuxième (245) points en fonction de la normale (303) associée au troisième point (246) et de la distance (3012) séparant le deuxième point (245) du troisième point (246) dans la carte de normales (2).35 6. Procédé selon l'une des revendications 1 à 5, caractérisé en ce que ladite différence de hauteur est associée au deuxième point et stockée dans une carte de hauteur. 7. Procédé selon la revendication 6, caractérisé en ce que ladite carte de hauteur est appliquée à une surface d'un objet (11) d'un environnement virtuel (1). 8. Procédé selon l'une des revendications 1 à 7, caractérisé en ce qu'il comprend une étape (74) d'estimation d'un facteur d'occultation associé au deuxième point (245), ledit facteur d'occultation étant estimé à partir de hauteurs associées à une pluralité de points entourant ledit deuxième point (245). 9. Procédé selon la revendication 8, caractérisé en ce que ledit facteur d'occultation est stocké dans une carte d'occultation.20