Brevet FR2966623A1 — publié le 20120427

PROCEDE D'ESTIMATION DE L'OCCULTATION DANS UN ENVIRONNEMENT VIRTUEL 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 l'estimation de l'occultation ambiante (de l'anglais « ambient occlusion ») dans un 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, différentes méthodes existent pour simuler l'occultation ambiante dans un environnement virtuel. Selon l'une de ces méthodes, pour calculer l'occultation en un point de l'environnement virtuel (dénommé également scène), un nombre suffisant de rayons est lancé à partir de ce point à travers l'environnement virtuel afin de déterminer les intersections entre ces rayons et la géométrie voisine de ce point. Le rapport entre le nombre de rayons intersectés et le nombre de rayons lancés permet de déterminer l'occultation au point considéré. Cette méthode, pour obtenir des résultats de bonne qualité, nécessite le lancer de beaucoup de rayons. Les ressources nécessaires pour effectuer les calculs dépendant directement du nombre de rayons lancés, les besoins en calculs s'avèrent trop important pour être effectués en temps réel si la qualité du rendu souhaité est élevée. Pour effectuer les calculs d'occultation en temps réel, il s'avère nécessaire de diminuer le nombre de rayons lancés, au détriment de la qualité du rendu de l'environnement virtuel. Avec l'émergence de jeux et d'applications de simulation interactifs, notamment en trois dimensions (3D), le besoin se fait sentir pour des méthodes de simulations temps réel offrant une estimation de l'occultation ambiante rapide, de haute qualité et réaliste. 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 en temps réel l'occultation ambiante dans un environnement virtuel pour en effectuer un rendu réaliste. L'invention concerne un procédé d'estimation de l'occultation en un point P d'un environnement virtuel, le point P appartenant à une surface regroupant au moins une partie des points de l'environnement virtuel visibles depuis un point de vue, le procédé comprenant les étapes de : - estimation d'informations représentatives d'intersections entre la surface et une pluralité de demi-droites ayant pour origine le point P, les intersections étant estimées par discrétisation de chaque demi-droite de la pluralité de demi-droites ; et - estimation de l'occultation au point P à partir des informations représentatives d'intersections estimées. Selon une caractéristique particulière, le procédé comprend en outre une étape d'estimation des distances séparant le point de vue des points visibles de l'environnement virtuel, les distances estimées étant stockées dans une carte de profondeur, l'estimation des informations représentatives d'intersections étant réalisée dans l'espace de la carte de profondeur. Avantageusement, la pluralité de demi-droites forme une demi- sphère centrée sur P s'élevant principalement au-dessus d'un élément de la surface associé au point P. Selon une caractéristique spécifique, la base de la demi-sphère est tangente à l'élément de la surface associé au point P. De manière avantageuse, le procédé comprend une étape de stockage d'une information représentative de l'occultation au point P dans une carte d'occultation. Selon une caractéristique particulière, la direction des demi-droites dépend de la localisation du point P. Selon une autre caractéristique, les informations représentatives d'intersections sont estimées en utilisant la méthode d'échantillonnage de rayon. 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 1A illustre schématiquement un environnement virtuel tel que vu depuis un point de vue, selon un mode de réalisation particulier de l'invention ; - la figure 1B illustre une carte de profondeur, associée à l'environnement virtuel et au point de vue, représentative d'une surface regroupant les points visibles de la figure 1A depuis le point de vue, selon un mode de réalisation particulier de l'invention ; - les figures 2 et 3 illustrent schématiquement des demi-sphères formées des directions pour lesquelles sont estimées les intersections avec la surface des points visibles de l'environnement virtuel de la figure 1A, selon deux modes de réalisation particulier de l'invention ; - les figures 4 et 5 illustrent schématiquement une méthode d'estimation de l'intersection entre une direction des figures 2 et 3 et la surface des points visibles de l'environnement virtuel de la figure 1A, selon un mode de réalisation particulier de l'invention ; - la figure 6 illustre un dispositif mettant en oeuvre une méthode d'estimation de l'occultation en un point de l'environnement virtuel de la figure 1A, selon un exemple de mise en oeuvre particulier de l'invention ; - la figure 7 illustre un procédé d'estimation de l'occultation en un point de l'environnement virtuel de la figure 1A, selon un exemple de mise en oeuvre particulier de l'invention. 5. Description détaillée de modes de réalisation de l'invention. L'invention sera décrite en référence à un mode particulier de réalisation d'un procédé d'estimation de l'occultation en un point P d'un environnement virtuel. Le point P appartient avantageusement à une surface formée à partir de tout ou partie des points de l'environnement virtuel qui sont visibles depuis un point de vue. Afin de déterminer l'occultation au point P, une pluralité de rayons ayant pour origine le point P est lancée au travers de l'environnement virtuel et les intersections entre chacun de ces rayons et la surface des points visibles sont déterminées en discrétisant chacun des rayons lancés. L'occultation au point P correspond par exemple au rapport entre le nombre de rayons ayant une intersection avec la surface des points visibles 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 quand celui-ci existe. Comme l'occultation en un point, ou autrement dit l'ombrage en un point, dépend de la géométrie voisine de ce point, déterminer avec précision les intersections avec la surface des points visibles entourant le point P considéré permet d'estimer de manière plus précise l'occultation au point P, sans toutefois nécessiter de lancer un très grand nombre de rayons. Ainsi, l'estimation de l'occultation au point P selon le mode de réalisation particulier de l'invention décrit est rapide et offre une bonne qualité, permettant notamment une application temps réel. En estimant l'occultation en chaque point de la surface des points visibles, il est possible de déterminer l'occultation ambiante (de l'anglais « ambient occlusion ») de l'environnement virtuel et donc de déterminer un ombrage en chaque point visible de l'environnement virtuel, ajoutant du réalisme au rendu de l'environnement virtuel, sans avoir besoin de connaître l'éclairage appliqué à l'environnement virtuel. La figure 1 illustre un environnement virtuel ou une scène virtuelle 1 tel que vu depuis un point de vue 11, par exemple un spectateur de l'environnement virtuel 1. L'environnement virtuel est avantageusement éclairé par un environnement lumineux assurant un éclairage constant et homogène en tout point de l'environnement virtuel. L'environnement virtuel 1 comprend un ou plusieurs objets virtuels 12, 13, 14 et 15, 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 12, 13, 14 et 15 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. Selon l'exemple de la figure 1, le spectateur 11 regarde le point P 16 de l'environnement virtuel 1 selon une direction d'observation 111, le point P 16 correspondant à l'intersection entre la direction d'observation 111 et le premier objet de l'environnement virtuel 1 rencontré par cette direction d'observation ayant pour origine le point de vue 11, à savoir l'objet 13. La partie de l'environnement virtuel 1 vue depuis le point de vue 11 est représentée par un cône de visualisation 112, le cône de visualisation étant composée d'un très grand nombre de directions de visualisation dont la direction de visualisation 111. L'ensemble des points des objets 12 à 15 visibles depuis le point de vue 11 forme avantageusement une surface S de points visibles. Selon une variante, la surface S ne comprend qu'un sous-ensemble de l'ensemble des points visibles, par exemple les points visibles des objets 12 et 13 si l'on ne s'intéresse qu'à ces objets 12 et 13. Déterminer l'occultation au point P 16 revient à déterminer la distance séparant le point P des considérés de chacun des points de la surface S dans le voisinage du point P 16, ou dit autrement à déterminer les intersections entre des demi-droites ayant pour origine le point P et la surface S. On entend par exemple par voisinage du point P sur la surface S l'ensemble des points appartenant à la surface S situés à une distance du point P inférieure à une valeur seuil, par exemple à une distance inférieure à 25 cm, 50 cm ou 1 m. De manière avantageuse, la détermination des intersections entre les demi-droites d'origine le point P 16 et la surface S est réalisée dans l'espace monde (de l'anglais « world space »), c'est-à-dire dans l'espace de l'environnement virtuel à partir des coordonnées géométriques des points considérés. L'ensemble des demi- droites ayant pour origine le point P forme par exemple une sphère de centre P, une demi-sphère dont la base est centrée sur P ou un quart de sphère. Selon une variante, la détermination des intersections entre les demi-droites d'origine le point P 16 et la surface S est réalisée dans l'espace d'une carte de profondeur 110. Selon cette variante, l'environnement virtuel 1 est rendu tel que vu depuis le point de vue 11. Les informations représentatives de l'environnement virtuel 1 tel qu'il est vu depuis le point de vue 11 sont stockées dans une carte de profondeur 110 (de l'anglais « depth map »). La carte de profondeur comprend avantageusement pour chaque point de l'environnement virtuel 1 visible depuis le point de vue une information représentative de la distance séparant le point de vue 11 du point visible considéré. La figure 1B illustre une telle carte de profondeur 110 selon un mode de réalisation particulier de l'invention. L'information représentative de la distance est représentée par un vecteur 1110 à Ill i dont la norme est égale à la distance entre le point de vue 11 et le point visible considéré. La carte de profondeur est ainsi composée d'une pluralité de points associés aux points visibles de l'environnement virtuel 1 projetés sur une surface formée par exemple par le cône 112 représentatif du champ de vision du point de vue 11 et perpendiculaire à la direction principale d'observation du point de vue 11. Une information représentative de la profondeur, c'est à dire de la distance point de vue / point visible, est associée à chaque point correspondant de la carte de profondeur. En reliant chaque point de la carte de profondeur formé par l'extrémité des vecteurs représentatif de la profondeur, on obtient une surface S' représentative de l'ensemble des points visibles de l'environnement tels que vus depuis le point de vue 11. Cette surface S' est, de même que la surface S, représentative de l'ensemble de tout ou partie des points visibles de l'environnement depuis le point de vue, comprenant le point P 43. Selon cette variante, les informations de profondeur sont avantageusement enregistrées et stockées dans une structure de données composée de tables enregistrées dans une mémoire associée aux GPUs. Ces enregistrements sont appelés enregistrements de profondeur. Ces enregistrements permettent de référencer l'ensemble des points de l'environnement virtuel 1 visibles depuis le point de vue 11, pour lesquels il pourra être procédé à l'estimation de l'occultation pour par exemple déterminer l'occultation ambiante de l'environnement virtuel 1, ou d'une partie de l'environnement virtuel, par exemple d'un ou plusieurs des objets 12 à 15 composant l'environnement virtuel 1. Les figures 2 et 3 illustrent des demi-sphères 20 et 30 formées chacune des demi-droites ayant pour origine le point P 16 et pour lesquelles les intersections avec la surface S (ou S' si on se place dans l'espace de la carte de profondeur) sont déterminées. Tel qu'illustré en regard de la figure 2, la demi-sphère 20 est composée d'une pluralité de vecteurs 22, 23, chaque vecteur représentant la direction associée à une demi-droite ayant pour origine le point P. La demi-sphère 20 possède une base 21 qui est essentiellement orthogonale à la direction d'observation 111 de l'environnement virtuel. Pour déterminer les vecteurs 22, 23 qui forment la demi-sphère 20, la base 21 est par exemple échantillonnée en n échantillons (chaque échantillon correspondant par exemple à un point 211 ou à un élément de surface associée au point), chaque échantillon de la base 21 étant alors projeté sur la demi-sphère 20 selon un axe Z orthogonale à la base 21 pour former un vecteur 23 ayant comme extrémités le point P d'une part et la projection de l'échantillon considéré 211 de la base 21 d'autre part. Le nombre n d'échantillons est avantageusement paramétré par un utilisateur. Pour accélérer les calculs, le nombre n d'échantillons est avantageusement faible. Pour éviter les défauts d'affichage liés au sous-échantillonnage, les n échantillons utilisés pour représenter une demi-sphère associée à un point P varient d'un point P à un autre dans une zone donnée de la surface S, une matrice de rotation étant appliquée à n échantillons de base pour obtenir des jeux de n échantillons différents pour chaque point P de la zone de la surface S considérée. Pour ce faire, l'angle 8 de la matrice de rotation varie de manière aléatoire ou déterminée d'un point P à un autre permettant de créer pour chaque point P un jeu de n échantillons à partir des n échantillons de base. La matrice de rotation à deux dimensions R2D appliquée au n échantillons de base vaut par exemple : cosB -sinR2D _rsine cos (1) Tous les vecteurs 22, 23 ont une première extrémité commune, à savoir le point P 16, un élément de surface étant associé à la deuxième extrémité de chaque vecteur 22, 23, la somme des éléments de surface associés aux vecteurs formant la surface de la demi-sphère 20. Pour obtenir l'occultation au point P 16, on détermine dans un premier temps les demi-droites ayant pour origine le point P ayant une intersection avec la surface S (tel qu'expliqué plus précisément en regard des figures 4 et 5) et on somme les éléments de surface associés aux vecteurs correspondant à ces demi-droites. Puis on effectue le rapport entre d'une part la somme des éléments de surface correspondant aux demi-droites ayant une intersection avec la surface S 110 et d'autre part la surface totale de la demi-sphère 20. Le rapport de surface ainsi obtenu est représentatif de l'occultation au point P 16, cette occultation étant représentative de l'ombrage de la surface S au point P. La demi-sphère 20 formée de la pluralité de demi-droites ayant pour origine le point P 16 s'élève de manière avantageuse principalement au dessus de l'élément de surface 210 de la surface S associée au point P 16. On entend par l'expression « s'élève principalement au dessus de l'élément de surface associée au point P » le fait que la majorité des vecteurs formant la demi-sphère ne possède pas d'intersection avec l'élément de surface 210 ou par le fait que la base 21 de la demi-sphère forme un angle avec la tangente à l'élément de surface au point P inférieur à une valeur seuil donnée, par exemple inférieur à 45 degrés. La figure 3 illustre également une demi-sphère dont la base 31 est centrée sur le point P 16. La demi-sphère 30 est composée d'une pluralité de vecteurs 32, 33, chaque vecteur représentant la direction associée à une demi-droite ayant pour origine le point P dont on cherche à déterminer l'intersection avec la surface S. Comme illustrée sur la figure 2, la base de la demi-sphère 30 est tangente à l'élément de surface 210 de la surface S associé au point P 16, le vecteur N représentant la normale à la tangente à l'élément de surface 210. La demi-sphère 30 dont la base 31 est tangente à l'élément de surface 210 associé au point P est obtenue par exemple à partir de la demi-sphère 20 dont la base 21 est orthogonale à la direction d'observation 111 en faisant tourner l'axe Z de telle manière à ce qu'il devienne orthogonale à la tangente à l'élément de surface 210. La rotation utilisée dans ce cas correspond par exemple à une rotation amenant une direction d'échantillon w; depuis l'espace correspondant à l'environnement 1 tel que vue depuis le point de vue 11 selon la direction d'observation 111 dans l'espace normal à la tangente à l'élément de surface 210, la rotation étant exprimée avec des coordonnées de l'espace correspondant à l'environnement tel que vue depuis le point de vue 11, cette rotation étant dénommée R3D. De manière analytique, R3D est déterminée en utilisant une représentation angle/axe (r,8), r étant défini comme le vecteur orthogonal à N 32 et Z 22, et 8 étant défini comme étant l'angle entre : f r = 11[o 0 1]T x N II = II [-Nv Nx 07 II (2) l cose = [0 0 1]T .N = NZ où IIVII représente l'opérateur de normalisation d'un vecteur V. En appliquant la formulation de Rodrigue d'une rotation axe/angle à trois dimensions à (2), on obtient : R3D = I3cose + 13(1 - cose)r.rT + [r] x sine 2966623 9 R3D = NZ + INÿ -riNXNy N' avec ri = 1-NZ (3) -riN,Ny NZ + riNX Ny NX+Nÿ -N, -Ny NZ Cette matrice de rotation est calculée une fois par échantillon 211 et est appliquée à chaque vecteur pour donner la direction w; orientée selon 5 la normale N. Les figures 4 et 5 illustrent une méthode de détermination d'une intersection entre d'une part une demi-droite 40 de direction w; ayant pour origine le point P 16 et d'autre part la surface S, selon un mode de réalisation 10 particulier de l'invention. Tel qu'illustré en regard de la figure 4, la demi-droite 40 ayant pour origine le point P 16 et pour direction w; est discrétisée en une pluralité d'échantillons élémentaires, chaque échantillon correspondant à un segment de la demi-droite 40. Deux échantillons sont représentés sur la figure 4, à 15 savoir les segments [P-Su,;] et [SW;-SW;+1]. La demi-droite 40 est ainsi représentées par plusieurs points, à savoir les points P 16, SW; 402 et SW;+1 404. L'objectif d'une telle méthode est de déterminer la distance d'occultation A0 41 qui correspond à la distance séparant le point P 16 du point d'intersection 403 entre la demi-droite 40 et la surface S. Pour 20 déterminer si un échantillon, c'est-à-dire un segment de la demi-droite 40, présente une intersection avec la surface S, le premier point SW; 402 de la demi-droite 470 correspondant au premier échantillon est projeté sur la surface S selon la direction d'observation 111, comme illustré en regard de la figure 5. La projection du point SW; 402 sur la surface S est un point SI 52, la 25 distance 6i séparant les points SW; 402 et SI 52 étant enregistrée, par exemple dans une table d'enregistrement dans une mémoire associée aux GPUs. Pour déterminer si le premier segment [P-Su,;] de la demi-droite 40 présente une intersection avec la surface S, il suffit de comparer les positions des points SW; 402 et SI 52 à la position du point de vue 11. Si le point SW; 30 402 est plus proche du point de vue 11 que le point SI 52 le long de la direction d'observation 111, alors le premier segment [P-Su,;] de la demi-droite 40 ne présente pas d'intersection avec la surface S. Dans le cas contraire, c'est-à-dire si le point Sti 52 est plus proche du point de vue 11 que le point SW; 402, alors le premier segment [P-Su,;] de la demi-droite 40 35 présente une intersection avec la surface S. Dans le cas où le premier segment [P-SWi] de la demi-droite 40 présente une intersection avec la surface S, le processus de discrétisation de la demi-droite est stoppé puisque le point d'intersection de la demi-droite 40 avec la surface S a été déterminé. Dans le cas contraire illustré en regard des figures 4 et 5, c'est-à- dire lorsque le premier segment [P-Su,i] de la demi-droite 40 ne présente pas d'intersection avec la surface S, le processus de discrétisation de la demi-droite 40 continue et on passe au segment suivant [Swi-Swi+1] en s'éloignant du point P 16 dans le sens P -> wi. Le point Swi+1 404 est projeté sur la surface S selon la direction d'observation 111, le résultat de la projection étant un point Swi+1 404 et la distance 6i+1 séparant les points Swi+1 404 et Swi+1 404 étant enregistrée, par exemple dans une table d'enregistrement dans une mémoire associée aux GPUs. Pour déterminer si le deuxième segment [Swi-Swi+1] de la demi-droite 40 présente une intersection avec la surface S, les positions des points Swi+1 404 et Ste+1 53 sont comparées à la position du point de vue 11. Le point Ste+, 53 étant plus proche du point de vue 11 que le point Swi+1 404, cela signifie que le deuxième segment [Swi-Swi+1] présente une intersection avec la surface S. Pour déterminer précisément la position du point d'intersection, le deuxième segment [Swi-Swi+1] est discrétisé à son tour en une pluralité d'échantillons de petites tailles et chaque point du segment [Swi-Swi+1] représentatif de la discrétisation du deuxième segment est projeté sur la surface S selon la direction 111, en commençant par le point le plus proche de Swi 402. Il est ainsi possible en réitérant les opérations de discrétisation des segments de la demi-droite 40 d'estimer avec une grande précision la position de l'intersection entre la demi-droite 40 et la surface S. A partir des coordonnées du point P 16 et du point d'intersection estimée, la distance d'occultation Ao est déterminée. Si les discrétisations successives en échantillons de plus en plus petits de la demi-droite 40 permettent d'estimer avec précision l'intersection avec la surface S, les calculs nécessaires peuvent s'avérer coûteux. De manière avantageuse, si aucune intersection avec la surface S n'a été déterminée au nième échantillon de la demi-droite 40, n étant supérieur à une valeur seuil prédéterminée (par exemple égale à 15, 20, 25 ou 50 échantillons), il est considéré que la demi-droite 40 ne possède pas d'intersection avec la surface S. Selon une variante, la distance d'occultation A'o entre le point P et le point d'intersection entre la demi-droite 40 et la surface S est déterminée par approximation à partir des points Swi 402 et Swi+1 404 entourant le point d'intersection et à partir des distances 6i et 6i+1 estimées précédemment. Selon cette variante, il est supposé que l'élément de surface de la surface S compris entre deux points représentatifs de l'échantillonnage de la demi-droite 40, par exemple les points Sw; 402 et Swi+1 404, est globalement plan. De cette manière, la distance d'occultation A'o est interpolée linéairement : 30= s (IIS.;+111- IIS~;ID ' s;+ s;+, Pour déterminer un facteur d'occultation au point P 16 compris entre 0 et 1, la racine carrée de la distance d'occultation A'o est ajoutée à la contribution d'occultation courante au point P, laquelle est finalement adaptée au nombre d'échantillons. On obtient ainsi un facteur d'occultation A(P) au point P de la manière suivante : A(P) _ e,Ei VP,,i- AÔia (5) Où n correspond au nombre de demi-droites, Vp, w; correspond à un facteur égal à 0 si la demi-droite considérée ne possède pas d'intersection avec la surface S et égal à 1 si la demi-droite considérée possède une intersection avec la surface S, et a correspond à un facteur de contraste prédéterminé, par exemple paramétré par un utilisateur. Il est à noter qu'une valeur du facteur d'occultation A(P) proche de 0 signifie que l'occultation au point P est élevée et qu'à contrario une valeur du facteur d'occultation A(P) proche de 1 signifie que l'occultation au point P est faible. Un tel facteur d'occultation permet avantageusement de pondérer la contribution de chaque demi-droite ayant une intersection avec la surface S dans le calcul de l'occultation au point P. Comme cela a été décrit en regard des figures 2 et 3, un élément de surface d'une demi-sphère formée d'une pluralité de demi-droites ayant pour origine le point P est associé à chaque demi-droite formant la demi-sphère. Pour déterminer l'occultation au point P, le rapport entre d'une part la somme des éléments de surface correspondant aux demi-droites ayant une intersection avec la surface S et d'autre part la surface totale de la demi-sphère est réalisé, le rapport de surface ainsi obtenu étant représentatif de l'occultation au point P. La contribution de chaque demi-droite 40 ayant une intersection avec la surface (4) S dans l'occultation globale au point P dépend de la distance séparant le point P de l'intersection. En effet, plus la distance d'occultation est importante moins la contribution de cette intersection dans l'occultation globale au point P est importante. Cela revient à dire que plus le facteur d'occultation associée à une demi-droite 40 est proche de 1, moins la contribution de la demi-droite considérée dans le calcul de l'occultation globale au point P est importante. Il est ainsi avantageux de pondérer chaque élément de surface associé aux demi-droites ayant une intersection avec la surface S par le facteur d'occultation avant d'effectuer la somme des éléments de surface associés aux demi-droites ayant une intersection avec la surface S. L'occultation globale au point P correspond ainsi au rapport de la somme des éléments de surface, pondérés des facteurs A(P) associés, associés aux demi-droites ayant une intersection avec la surface S sur la surface totale de la demi-sphère. La figure 6 illustre schématiquement un exemple de réalisation matérielle d'un dispositif 6 adapté à l'estimation de l'occultation en un point d'un environnement virtuel 1 et à la création de signaux d'affichage d'une ou plusieurs images. Le dispositif 6 correspondant par exemple à un ordinateur personnel PC, à un ordinateur portable (de l'anglais « laptop ») ou à une console de jeux. Le dispositif 6 comprend les éléments suivants, reliés entre eux par un bus 65 d'adresses et de données qui transporte également un signal d'horloge : - un microprocesseur 61 (ou CPU) ; - une carte graphique 62 comprenant : - plusieurs processeurs de traitement graphique 620 (ou GPUs) ; - une mémoire vive de type GRAM (de l'anglais « Graphical Random Access Memory ») 621 ; - une mémoire non volatile de type ROM (de l'anglais « Read Only Memory ») 66 ; - une mémoire vive ou RAM (de l'anglais « Random Access Memory ») 67 ; - un ou plusieurs dispositifs 1/0 (de l'anglais « Input/Output » ou en français « Entrée/Sortie ») 64, tels que par exemple un clavier, une souris, une webcam ; et 35 - une alimentation 68. Le dispositif 6 comprend également un dispositif d'affichage 63 de type écran d'affichage relié directement à la carte graphique 62 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 63 à la carte graphique 62 offre l'avantage 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 6 et est relié au dispositif 6 par un câble transmettant les signaux d'affichage. Le dispositif 6, par exemple la carte graphique 62, comprend un moyen de transmission ou connecteur (non représenté sur la figure 4) adapté à transmettre un signal d'affichage à un moyen d'affichage externe tel que par exemple un écran LCD ou plasma, un vidéoprojecteur. On observe que le mot « registre » utilisé dans la description des mémoires 62, 66 et 67 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 61 charge et exécute les instructions du programme contenu dans la RAM 67. La mémoire vive 67 comprend notamment : - dans un registre 630, le programme de fonctionnement du microprocesseur 61 chargé à la mise sous tension du dispositif 6, - des paramètres 671 représentatifs de l'environnement virtuel 1 (par exemple paramètres de modélisation des objets de l'environnement virtuel 1, paramètres d'éclairage de l'environnement virtuel 1). 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 67 de la carte graphique 62 associée au dispositif 6 mettant en oeuvre ces étapes. A la mise sous tension et une fois les paramètres 670 représentatifs du milieu chargés en RAM 67, les processeurs graphiques 620 de la carte graphique 62 charge ces paramètres en GRAM 621 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 621 comprend notamment : - dans un registre 6210, les paramètres représentatifs de l'environnement virtuel 1 ; - des paramètres 6211 représentatifs de la surface S des points de l'environnement virtuel 1 visibles depuis un point de vue 11 (par exemple les coordonnées des points dans l'espace monde) ; - des paramètres 6212 représentatifs des demi-droites pour lesquelles sont déterminées l'intersection avec la surface S (par exemple l'origine, la direction, des paramètres de discrétisation) ; - des informations 6213 représentatives des intersections entre les demi-droites et la surface S (par exemple les coordonnées des intersections, les distances d'occultation Ao, les distances b~) , et - une ou plusieurs informations d'occultation 6214 représentatives de l'occultation en un ou plusieurs points visibles de l'environnement virtuel 1 ; - des informations de profondeur 6215 représentatives des distances entre le point de vue 11 et les points de l'environnement virtuel 1 visibles depuis le point de vue 11 (par exemple des valeurs représentatives des distances séparant le point de vue des points visibles). Selon une variante, une partie de la RAM 67 est allouée par le CPU 61 pour stocker les valeurs 6211 à 6214 et les paramètres 6215 si l'espace mémoire disponible en GRAM 621 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 67 en passant par le bus 65 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 68 est externe au dispositif 4. La figure 7 illustre un procédé d'estimation de l'occultation en un point P d'un environnement virtuel 1 mis en oeuvre dans un dispositif 6, selon un 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 6 sont mis à jour. En particulier, les paramètres représentatifs de l'environnement virtuel 1 sont initialisés d'une manière quelconque. Ensuite, au cours d'une étape 71, une surface S regroupant tout ou partie des points de l'environnement virtuel 1 visibles depuis le point de vue 11 est estimée, cette surface comprenant le point P en lequel l'occultation est estimée. La surface S est avantageusement estimée dans l'espace monde de l'environnement virtuel 1. Selon une variante, la surface S est estimée dans l'espace d'une carte de profondeur représentative des distances séparant le point de vue 11 de tout ou partie des points de l'environnement virtuel visibles depuis le point de vue 11. Puis, au cours d'une étape 72, les intersections entre d'une part chaque demi-droite d'une pluralité de demi-droites ayant pour origine le point P et la surface S d'autre part sont estimées. Pour ce faire, chaque demi-droite est discrétisée de manière à former des segments de droites de taille variable, la taille de chaque segment étant paramétrée par l'utilisateur. Plus la taille des segments est grande, plus la rapidité des calculs pour l'estimation de l'intersection sera rapide au détriment de la précision de l'estimation de l'intersection. A contrario, moins la taille des segments est grande, plus l'estimation de l'intersection sera précise et plus les calculs nécessaires pour estimer l'intersection seront coûteux. Les intersections sont avantageusement estimées dans l'espace monde de l'environnement virtuel 1. Selon une variante, les intersections sont estimées dans l'espace de la carte de profondeur. Selon une autre variante, la pluralité de demi-droites pour lesquelles sont estimées les intersections avec la surface S forme une demi- sphère 20 centrée sur le point P, cette demi-sphère s'élevant principalement au-dessus de l'élément de surface associé au point P. Selon encore une variante, la demi-sphère 30 centrée sur P et formée des demi-droites pour lesquelles l'intersection avec la surface S est estimée est tangente à l'élément de surface associé au point P. Selon une variante particulièrement avantageuse, la direction des demi-droites formant une demi-sphère centrée sur P dépend de la localisation du point P, c'est-à-dire dépend des coordonnées du point P, que ces coordonnées soient représentées dans l'espace monde ou dans l'espace de la carte de profondeur. Selon cette variante, une pluralité de demi-droites est définie pour un premier point P de la surface S, l'intersection de chacune de ces demi-droites avec la surface S étant déterminée. Pour un deuxième point P voisin du premier point, les demi-droites définies sont avantageusement définies de manière à avoir des directions différentes des demi-droites associées au premier point P. Le même raisonnement est appliqué pour chacun des points de la surface S voisins du point P. Ainsi, lorsque l'on considère le voisinage du premier point P, on obtient un grand nombre de demi-droites ayant des directions différentes, ce qui permet de réduire avantageusement le bruit qui pourrait être généré lors de l'estimation de l'occultation au point P avec un nombre de demi-droites restreint si toutes les demi-droites associées au premier point P et aux points voisins du point P possédaient les mêmes directions. Selon une dernière variante, les demi-droites 40 sont discrétisées en utilisant la méthode d'échantillonnage de rayon (de l'anglais « raymarching ») pour déterminer l'intersection de chacune d'elles avec la surface S. Enfin, au cours d'une étape 73, l'occultation au point P est estimée à partir des informations représentatives d'intersections des demi-droites ayant pour origine le point P et la surface S. L'occultation au point P correspond avantageusement au rapport du nombre de demi-droites pour lesquelles une intersection avec la surface S a été trouvée sur le nombre de demi-droites pour lesquelles une intersection avec la surface S a été recherchée. Selon une variante, les demi-droites pour lesquelles une intersection avec la surface S a été recherchée formant une sphère ou avantageusement une demi-sphère, un élément de surface de la sphère ou de la demi-sphère est associé à chaque demi-droite. Selon cette variante, l'occultation au point P correspond au rapport entre la somme des éléments de surface associés aux demi-droites ayant une intersection avec la surface S sur la surface totale de la sphère ou de la demi-sphère respectivement. Selon une autre variante, le numérateur du rapport représentatif de l'occultation au point P est pondéré par chacun des facteurs d'occultations associé respectivement à chaque demi-droite ayant une intersection avec la surface S de manière à prendre en compte la distance entre le point P et l'intersection avec la surface S pour les demi-droites ayant une intersection, l'occultation associée à une demi-droite étant d'autant plus importante que la distance à l'intersection est petite. Selon encore une variante, l'information d'occultation au point P est stockée dans une carte d'occultation. Dans le cas où l'occultation ambiante de l'environnement virtuel 1 est estimée, l'occultation en chacun des points de l'environnement virtuel 1 visibles depuis le point de vue 11 est estimée en réitérant les étapes 72 et 73 pour chacun des points visibles, l'information d'occultation de chacun des points visibles étant stockée dans la carte d'occultation. De la même manière, lorsque le point de vue varie, les étapes 71 à 73 sont réitérées pour estimer l'occultation en un ou plusieurs points visibles depuis ce nouveau point de vue. 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 de l'occultation en un point P de l'environnement virtuel 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'occultation en un point P 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é de composition d'une image vidéo, en deux dimensions ou en trois dimensions, pour lequel l'occultation ambiante selon une ou plusieurs directions d'observation est calculée et l'information représentative de l'occultation ambiante qui en découle est utilisée pour l'affichage des pixels de l'image, chaque pixel correspondant à une direction d'observation. L'occultation ambiante 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. L'invention concerne également une méthode d'estimation de la quantité de lumière reçue en un point P en prenant en compte les réflexions de la lumière sur les objets de l'environnement virtuel 1. La quantité de lumière réfléchie dépend de l'occultation au point P considérée et des propriétés de réflectance associées aux éléments de surface associés au voisinage du point P considéré. 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 6 décrit en regard de la figure 6 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.20 REVENDICATIONS1. Procédé d'estimation de l'occultation en un point P (16) d'un environnement virtuel (1), le point P (16) appartenant à une surface (S) regroupant au moins une partie des points de l'environnement virtuel (1) visibles depuis un point de vue (11), caractérisé en ce que ledit procédé comprend les étapes suivantes : - estimation (72) d'informations représentatives d'intersections (403) entre ladite surface (S) et une pluralité de demi-droites ayant pour origine ledit point P (16), lesdites intersections (403) étant estimées par discrétisation de chaque demi-droite (40) de ladite pluralité de demi-droites ; et - estimation (73) de l'occultation en ledit point P (16) à partir desdites informations représentatives d'intersections (403) estimées. 2. Procédé selon la revendication 1, caractérisé en ce qu'il comprend en outre une étape d'estimation des distances séparant ledit point de vue (11) desdits points visibles de l'environnement virtuel (1), lesdites distances estimées étant stockées dans une carte de profondeur (110), l'estimation desdites informations représentatives d'intersections étant réalisée dans l'espace de la carte de profondeur. 3. Procédé selon l'une des revendications 1 à 2, caractérisé en ce que la pluralité de demi-droites forme une demi-sphère (20, 30) centrée sur le point P (16) et s'élevant principalement au-dessus d'un élément de surface (210) de ladite surface (S) associé au point P (16). 4. Procédé selon la revendication 3, caractérisé en ce que la base (31) de ladite demi-sphère est tangente audit élément de surface (210) associé au point P (16). 5. Procédé selon l'une des revendications précédentes, caractérisé en ce qu'il comprend une étape de stockage d'une information représentative de l'occultation au point P (16) dans une carte d'occultation. 6. Procédé selon l'une des revendications précédentes, caractérisé en ce que la direction (w;) des demi-droites (40) dépend de la localisation du point P (16). 7. Procédé selon l'une des revendications précédentes, caractérisé en ce que lesdites informations représentatives d'intersections (403) sont estimées en utilisant la méthode d'échantillonnage de rayon.10