FR2988891A1 - Procede d'estimation de niveau d'opacite dans une scene et dispositif correspondant - Google Patents

Procede d'estimation de niveau d'opacite dans une scene et dispositif correspondant Download PDF

Info

Publication number
FR2988891A1
FR2988891A1 FR1252869A FR1252869A FR2988891A1 FR 2988891 A1 FR2988891 A1 FR 2988891A1 FR 1252869 A FR1252869 A FR 1252869A FR 1252869 A FR1252869 A FR 1252869A FR 2988891 A1 FR2988891 A1 FR 2988891A1
Authority
FR
France
Prior art keywords
radius
opacity
shadow
scene
light source
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
FR1252869A
Other languages
English (en)
Inventor
Pascal Gautron
Pascal Lecocq
Jean-Eudes Marvie
Original Assignee
Thomson Licensing SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Thomson Licensing SAS filed Critical Thomson Licensing SAS
Priority to FR1252869A priority Critical patent/FR2988891A1/fr
Priority to JP2015502370A priority patent/JP2015515059A/ja
Priority to KR1020147027133A priority patent/KR20140144688A/ko
Priority to CN201380017135.2A priority patent/CN104205173B/zh
Priority to PCT/EP2013/056801 priority patent/WO2013144333A1/fr
Priority to US14/386,799 priority patent/US9558586B2/en
Priority to EP13712813.8A priority patent/EP2831848B1/fr
Priority to CA2866849A priority patent/CA2866849C/fr
Publication of FR2988891A1 publication Critical patent/FR2988891A1/fr
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/60Shadow generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2215/00Indexing scheme for image rendering
    • G06T2215/12Shadow map, environment map

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)

Abstract

L'invention concerne un procédé d'estimation de l'opacité en un point (13) d'une scène éclairée par une source de lumière étendue (10) et comprenant un objet (11) défini par un maillage et occultant une partie de la lumière émise. Afin d'optimiser les calculs pour l'estimation en temps réel de l'opacité, le procédé comprend les étapes de : - échantillonnage de ladite source de lumière étendue (10) en une pluralité d'échantillons (101, 102, 103) ; - pour au moins un échantillon de la pluralité d'échantillons (101, 102, 103) et pour au moins un premier élément du maillage de l'objet occultant (11) visible depuis le au moins un échantillon, génération d'un plan d'ombre par arête du au moins un premier élément ; estimation d'un niveau d'opacité en fonction de coefficients de projection dans une base de fonctions à partir de valeurs représentatives de l'opacité pour un ensemble des points d'intersection (210, 211, 212) entre au moins un rayon (21) ayant pour origine un point de vue (20) de la scène et des plans d'ombres traversés par ledit au moins un rayon (21), en fonction d'un angle formé par la normale associée à chaque plan d'ombre traversé et par ledit au moins un rayon (21). L'invention concerne également un dispositif correspondant.

Description

PROCEDE D'ESTIMATION DE NIVEAU D'OPACITE DANS UNE SCENE ET DISPOSITIF CORRESPONDANT 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'ombrage en un point d'une scène virtuelle ou de l'estimation de la quantité de lumière reçue par un point d'une scène virtuelle. 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 existe plusieurs techniques pour générer des ombres douces (de l'anglais « soft shadows ») dues à l'occultation de la lumière issue d'une source de lumière étendue (de l'anglais « area light source »). Une de ces techniques est connue sous le nom d'approche stochastique selon laquelle la source de lumière étendue est échantillonnée en un grand nombre de sources de lumières ponctuelles. Un ombrage dur est calculé pour chaque source de lumière ponctuelle en utilisant des technique de projection d'ombre (de l'anglais « shadow mapping ») ou de volume d'ombre (de l'anglais « shadow volume ») combinée à l'utilisation de tampons de profondeur (de l'anglais « z-buffer ») pour rendre la scène depuis la source de lumière. Pour obtenir un rendu de l'ombre réaliste et éliminer des défauts de quantification liés à l'échantillonnage de la source de lumière, il est nécessaire d'utiliser un très grand nombre d'échantillons, ce qui entraine un grand nombre de calculs pénalisant le rendu temps réel de la scène. Une autre technique de rendu d'ombres douces est connue sous le nom de PCSS (de l'anglais « Percentage-Closer Soft Shadows » ou en français « Ombres douces approchées par pourcentage ») qui est basée sur une relation entre la taille du noyau PCF (de l'anglais « Percentage Close Filtering » ou en français « Filtrage approché par pourcentage ») utilisé pour filtrer la carte d'ombre (de l'anglais « shadow map »), une estimation de la largeur de la zone de pénombre basée sur la distance moyenne des objets occultants à la source de lumière et sur la distance entre le point recevant la lumière et la source de lumière. Un des inconvénients de cette technique est qu'elle se limite aux surfaces planes et qu'elle est couteuse en calculs lorsque le PCF devient large, rendant difficile le rendu temps réel de la scène. 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 calculs nécessaires à l'estimation réaliste et en temps réel du niveau d'opacité associé à un ou plusieurs points d'une scène virtuelle.
L'invention concerne un procédé d'estimation de l'opacité en un point d'une scène, la scène étant éclairée par une source de lumière étendue, la scène comprenant au moins un objet occultant une partie de la lumière émise par la source de lumière, l'objet occulté étant défini par un maillage. Afin d'estimer le niveau d'opacité associé à un point de la scène, le procédé comprend les étapes suivantes : - échantillonnage de la source de lumière étendue en une pluralité d'échantillons ; - pour au moins un échantillon de la pluralité d'échantillons et pour au moins un premier élément du maillage de l'objet occultant visible depuis le au moins un échantillon, génération d'un plan d'ombre par arête du au moins un premier élément du maillage ; - estimation de coefficients de projection dans une base de fonctions à partir de valeurs représentatives de l'opacité pour un ensemble des points d'intersection entre au moins un rayon ayant pour origine un point de vue de la scène et traversant la scène et des plans d'ombres traversés par le au moins un rayon, en fonction d'un angle formé par la normale associée à chaque plan d'ombre traversé et par le au moins un rayon ; - estimation d'une valeur représentative d'un niveau d'opacité en un point du au moins un rayon à partir des coefficients de projection estimés. Selon une caractéristique particulière, le niveau d'opacité augmente le long du au moins un rayon lorsque l'angle formé par le au moins un rayon et la normale associée à un plan d'ombre traversé par ledit au moins un rayon est supérieur à 90° et en ce que le niveau d'opacité diminue le long du au moins un rayon lorsque l'angle formé par le au moins un rayon et la normale associée à un plan d'ombre traversé par le au moins un rayon est inférieur à 90°. Selon une caractéristique spécifique, le niveau d'opacité augmente ou diminue d'une valeur correspondant à un rapport égal à la quantité de lumière totale émise par la source de lumière étendue sur le nombre d'échantillons lorsque le au moins un rayon présente une intersection avec un plan d'ombre. Avantageusement, la génération des plans d'ombre comprend une étape de subdivision du au moins un premier élément du maillage en une pluralité de deuxièmes éléments, les plans d'ombres étant générés par déformation géométrique des deuxièmes éléments. Selon une caractéristique particulière, la base de fonctions est une base de fonctions de Fourier. De manière avantageuse, les coefficients de projection sont stockés dans au moins une texture de projection. L'invention concerne également un dispositif configuré pour l'estimation de l'opacité en un point d'une scène, ladite scène étant éclairée par une source de lumière étendue, ladite scène comprenant au moins un objet occultant une partie de la lumière émise par ladite source, ledit objet occulté étant défini par un maillage, le dispositif comprenant : - des moyens pour échantillonner la source de lumière étendue en une pluralité d'échantillons ; - des moyens pour générer, pour au moins un échantillon de la pluralité d'échantillons et pour au moins un premier élément du maillage de l'objet occultant visible depuis le au moins un échantillon, un plan d'ombre par arête du au moins un premier élément du maillage ; - des moyens pour estimer des coefficients de projection dans une base de fonctions à partir de valeurs représentatives de l'opacité pour un ensemble des points d'intersection entre au moins un rayon ayant pour origine un point de vue de la scène et traversant la scène et des plans d'ombres traversés par le au moins un rayon, en fonction d'un angle formé par la normale associée à chaque plan d'ombre traversé et par le au moins un rayon ; - des moyens pour estimer une valeur représentative d'un niveau d'opacité en un point du au moins un rayon à partir des coefficients de projection estimés.
De manière avantageuse, le niveau d'opacité augmente le long du au moins un rayon lorsque l'angle formé par le au moins un rayon et la normale associée à un plan d'ombre traversé par le au moins un rayon est supérieure à 90° et en ce que le niveau d'opacité diminue le long du au moins un rayon lorsque l'angle formé par le au moins un rayon et la normale associée à un plan d'ombre traversé par le au moins un rayon est inférieur à 90°. Selon une caractéristique particulière, le niveau d'opacité augmente ou diminue d'une valeur correspondant à un rapport égal à la quantité de lumière totale émise par la source de lumière étendue sur le nombre d'échantillons lorsque le au moins un rayon présente une intersection avec un plan d'ombre. Selon une autre caractéristique, le dispositif comprend des moyens pour subdiviser le au moins un premier élément du maillage en une pluralité de deuxièmes éléments, les plans d'ombres étant générés par déformation géométrique des deuxièmes éléments. L'invention concerne également un produit programme d'ordinateur comprenant des instructions de code de programme pour l'exécution des étapes du procédé d'estimation de l'opacité en un point d'une 20 scène lorsque le programme est exécuté sur un ordinateur. L'invention concerne en outre un moyen de stockage lisible par un ordinateur, stockant le jeu d'instructions exécutables par l'ordinateur pour mettre en oeuvre le procédé d'estimation de l'opacité en un point d'une scène. 25 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 : 30 la figure 1 illustre une scène 1 éclairée par une source de lumière étendue et comprenant un objet occultant générant des ombres douces, selon un exemple de mise en oeuvre particulier de l'invention ; la figure 2 illustre une méthode d'estimation de fonctions d'opacité le long de rayons traversant la scène de la figure 1, selon un exemple de mise en 35 oeuvre particulier de l'invention ; - la figure 3 illustre la génération de plans d'ombres provenant de l'éclairage d'un élément de l'objet occultant de la figure 1, selon un exemple de mise en oeuvre particulier de l'invention ; - la figure 4 illustre deux fonctions d'opacité obtenues selon la méthode de la figure 2, selon un exemple de mise en oeuvre particulier de l'invention ; - la figure 5 illustre un dispositif mettant en oeuvre une méthode d'estimation de la quantité de lumière reçu en un point de la scène de la figure 1, selon un exemple de mise en oeuvre particulier de l'invention ; - la figure 6 illustre une méthode d'estimation de la quantité de lumière reçue en un point de la scène de la figure 1, selon un exemple de mise en oeuvre particulier de l'invention. 5. Description détaillée de modes de réalisation de l'invention.
La figure 1 illustre, selon un mode de réalisation particulier et non limitatif de l'invention, une scène virtuelle 1 éclairée par une source de lumière étendue 10, c'est-à-dire que la lumière est éclairée par plusieurs points formant une surface ou un volume, par opposition à une source de lumière ponctuelle. La scène 1 comprend un objet opaque 11, dit aussi objet occultant, qui masque au moins une partie de la lumière émise par la source de lumière étendue 10. Ainsi, une zone 120 de la surface 12 d'un objet de la scène 1 se situe dans l'ombre portée 110 de l'objet occultant 11, c'est-à-dire que cette zone 120 ne reçoit pas de lumière de la source de lumière étendue 10. Deux autres zones 121 et 122, dites zones de pénombre, de la surface 12 se situent dans des parties 111 et 112 partiellement éclairées, c'est-à-dire que ces zones 121 et 122 ne reçoivent qu'une partie de la lumière émise par la source de lumière étendue 10. La quantité de lumière reçue par ces zones de pénombre 121 et 122 n'est pas uniforme, les points les plus éloignés de la zone d'ombre 120 recevant plus de lumière que les points les plus proches de la zone d'ombre 120. Un gradient de pénombre apparaît ainsi dans ces zones de pénombre 121 et 122, la niveau d'obscurité étant d'autant plus fort que l'on se situe à proximité de la zone d'ombre 120 ou, en d'autres termes, la quantité de lumière reçue étant de plus en plus faible au fur et à mesure que la distance séparant un point des zones de pénombre 121 et 122 de la zone d'ombre 120 diminue. Ces zones de pénombre 121 et 122 correspondent à des zones d'ombres douces, c'est à dire des zones pour lesquelles le passage de l'ombre à la lumière est progressif. Le niveau d'obscurité ou le niveau d'éclairement associé à un point P 13 situé dans une zone de pénombre 122 est par exemple fonction du ratio formé par un angle solide visible 131 sur un angle solide occulté 132. L'angle solide visible 131 correspond à la partie de la source de lumière étendue 10 participant à l'éclairage du point P 13, c'est-à-dire à la partie de la source de lumière étendue dont la lumière émise n'est pas occultée par l'objet occultant 11 et atteint le point P 13. L'angle solide occulté 132 correspond à la partie de la source de lumière étendue 10 ne participant pas à l'éclairage du point P 13, c'est-à-dire à la partie de la source de lumière étendue dont la lumière émise est occultée par l'objet occultant 11 et n'atteint pas le point P 13. Selon une variante, le niveau d'éclairement associé au point P 13 est fonction de l'angle solide visible 131. Selon une autre variante, le niveau d'obscurité (ou d'occultation) associé au point P 13 est fonction seulement de l'angle solide occulté 132. Pour un point de la zone d'ombre 120, l'angle solide visible est nul et le niveau d'éclairage est nul, c'est-à-dire que la quantité de lumière reçue par un tel point directement de la source de lumière étendue 10 est nulle. Le niveau d'obscurité (ou d'occultation) est par conséquent maximal, par exemple égal à 100% d'obscurité ou d'occultation. Les zones 123 de la surface 12 correspondent aux zones éclairés de la surface 12, c'est-à-dire les zones comprenant des points recevant de la lumière de toute la source de lumière étendue 11, c'est-à-dire que pour ces points, la lumière émise par la source de lumière étendue 11 n'est pas du tout occultée par l'objet occultant 11.
La figure 2 illustre une méthode pour estimer le niveau d'éclairage ou le niveau d'occultation en un point de la scène 1, par exemple en un point situé dans une zone de pénombre, selon un exemple de réalisation particulier et non limitatif de l'invention. La source de lumière étendue 10 est échantillonnée en une pluralité d'échantillons 101, 102, 103 (par exemple 8, 16, 32 ou 64 échantillons) assimilés à des points ou à des sources de lumière ponctuelles. L'objet occultant 11 est représenté par sa surface supérieure 2001, c'est-à-dire par la partie qui fait face à la source de lumière et qui bloque totalement ou partiellement la lumière émise par la source de lumière étendue 10. L'objet occultant est avantageusement modélisé par un maillage comprenant une pluralité de premiers éléments formant le maillage, par exemple des polygones, par exemple des triangles ou des parallélépipèdes. L'objet occultant est modélisé 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 composent, 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... Pour chaque échantillon 101, 102, 103 de la source de lumière étendue, des plans d'ombres sont générés pour chaque arête de chaque premier élément de maillage de l'objet occultant. Une partie de ces plans d'ombre est représentée en coupe sur la figure 2 et correspond aux plans 2001, 2002, 2003, 200, 2005, 2006 et 2007. La figure 3 illustre les plans d'ombre 301, 302, 303 générés à partir d'un échantillon 101 parmi la pluralité d'échantillons de la source de lumière étendue par respectivement les trois arêtes d'un premier élément 30 de maillage de l'objet occultant correspondant à un triangle. Chaque plan d'ombre est défini par une des arêtes du triangle 30 et par deux segments de droite ayant pour origine l'échantillon considéré 101 de la source de lumière et passant par les deux sommets du triangle 30 appartenant à l'arête considérée. Chaque plan d'ombre correspond à une silhouette d'une arête et prend la forme d'un parallélépipède, par exemple défini par deux triangles. Pour définir les plans d'ombres associés à un triangle 30 éclairé par un échantillon de la source de lumière, 6 triangles s'avèrent nécessaires (2 triangles pour chacun des 3 plans d'ombres 301, 302 et 303). Le triangle 30 formant lui aussi un plan d'ombre par définition, il faut donc 7 triangles pour définir les plans d'ombres associés à un premier élément de maillage éclairé par un échantillon 101 de la source de lumière. Si l'on considère l'ensemble des N échantillons de la source de lumière éclairant ce premier élément de maillage, en l'occurrence un triangle, 7 x N triangles seront nécessaires pour définir les plans d'ombres associées à ce premier élément de maillage. Selon une variante avantageuse de l'invention, le premier élément de maillage est subdivisé ou échantillonné en une pluralité de deuxièmes éléments de maillage (par exemple 7 deuxièmes éléments), par exemple en une pluralité de triangles. Cette subdivision des premiers éléments de maillage est avantageusement mise en oeuvre par l'unité de tessellation (de l'anglais « tesselation unit » ou « tesselation shader stage ») du pipeline de rendu de la carte graphique pour générer à la volée et en temps réel ces deuxièmes éléments de maillage. Chacun de ces deuxièmes éléments de maillage est alors déformé géométriquement, par l'utilisation de fonctions géométriques adaptées, pour former les plans d'ombres associés au premier élément de maillage. Si le premier élément de maillage correspond à un premier triangle et est subdivisé en 7 deuxièmes triangles, un des deuxièmes triangles est déformé géométriquement pour former le premier triangle. Il reste alors 6 deuxièmes triangles pour former par déformation géométrique les trois plans d'ombre 301, 302, 303 associés au premier triangle (2 deuxièmes triangles par plan d'ombre). Le processus de déformation géométrique est avantageusement effectué par l'unité géométrique (de l'anglais « geometry shader stage/unit ») du pipeline de rendu de la carte graphique. Cette variante présente l'avantage de profiter des capacités de traitement en parallèle des données et de temps réel du pipeline de rendu de la carte graphique (notamment des unités de tessellation et de géométrie), ce qui permet de diminuer les besoins en mémoire pour stocker les paramètres représentatifs des plans d'ombres générées par extension de silhouette (comme expliqué au paragraphe précédent), de tels paramètres étant généralement calculés par un microprocesseur de type CPU (de l'anglais « Central Processing Unit » ou en français « Unité centrale de traitement ») du fait du grand nombre de données à traiter, les paramètres résultant des calculs effectués par le CPU étant stocké en RAM et nécessitant un espace mémoire important. Selon cette variante avantageuse, tous les calculs sont effectués par un processeur graphique GPU (de l'anglais « Graphical Processing Unit ») ce qui offre l'avantage de générer les plans d'ombre en temps réel et de limiter les besoins en mémoire. Au fur et à mesure de la génération des plans d'ombres 2001 à 2007 (associés aux arêtes des premiers éléments de maillage et générés à partir de chacun des échantillons 101 à 103 de la source de lumière étendue) illustrés sur la figure 2, les intersections entre ces plans d'ombres 2001 à 2007 d'une part et un ou plusieurs rayons 21, 22 ayant pour origine un point de vue 20 déterminé de la scène 1 et traversant la scène 1 d'autre part sont déterminées. Un premier rayon 21 présente une première intersection 210 avec le plan d'ombre 2001 (correspondant au plan d'ombre défini par la surface des premiers éléments de maillage de l'objet occultant faisant face à la source de lumière étendue), une deuxième intersection 211 avec le plan d'ombre 2004 et une troisième intersection 12 avec la surface 12 (assimilé au plan d'ombre défini par la surface d'éléments de maillage de la surface 2 qui correspond à un deuxième objet occultant car occultant la lumière émise par la source de lumière 10). Le point de vue 20 est avantageusement déterminé automatiquement de manière à couvrir la source de lumière 11 et les zones d'ombre et de pénombre. Selon une variante, le point de vue 20 est un paramètre réglable par un utilisateur. A partir des intersections entre les rayons 21, 22 et les plans d'ombres 12, 2001 à 2007 et à partir de valeurs représentatives d'opacité associées à chaque plan d'ombre 12, 2001 à 2007, une fonction d'opacité le long de chaque rayon est déterminée. La fonction d'opacité est une fonction représentative des variations de l'opacité le long d'un rayon. La fonction d'opacité 0(x) est avantageusement exprimée dans une base de fonctions, par exemple une base de fonctions de Fourier. En considérant que le niveau d'opacité varie selon un intervalle [0, Dm)] le long d'un rayon 21 ou 22, la fonction d'opacité peut être exprimée de la manière suivante dans une base de fonctions cosinus de Fourier : 0(x) = 2 '' + rc°_, ak cos ( 71' ) Equation 1 D m' avec ak Ce qui donne 2 rDmax = 0 (x) COS (Dn-laxk7rx ) Cà Dmax J 0 Equation 2 Equation 3 fo d Cl ' ( X ) CI.X = -a° + 2.,v kw= 1 Dmax 2 . ( kn-x ) kn-sin Dmax ao étant un coefficient de projection d'indice 0, ak étant un coefficient de projection d'indice k, k correspondant au nombre de coefficients de projection, x correspondant à la distance le long d'un rayon entre l'origine du rayon et un point donné du rayon, d correspondant à la distance à l'origine le long du rayon à laquelle le niveau d'opacité est évalué. Les k coefficients de projection sont avantageusement estimés en utilisant les propriétés de la distribution de Dirac (dite aussi fonction delta de Dirac ou en anglais « Dirac delta function ») dans l'équation 2 comme étant une somme pondérée des échantillons d'opacité générés aléatoirement par les plans d'ombres. Un échantillon d'opacité correspond à l'intersection entre le rayon et un plan d'ombre traversé par le rayon, l'échantillon d'opacité étant généré aléatoirement du fait que les plans d'ombres sont générés au fur et à mesure sans ordre particulier. A chaque fois qu'un plan d'ombre est généré au niveau du pipeline de rendu de la carte graphique, son éventuelle intersection avec un rayon est déterminée et utilisée pour estimer les coefficients de projection représentatifs de la fonction d'opacité associée au rayon considéré. En considérant l'impact produit par un unique plan d'ombre auquel est associée une valeur d'opacité donnée ao à une distance do du point d'origine 20 le long du rayon, on obtient : 0 si cl < do Equation 4 V (d) = 1 - ao SI a > ao V(d) correspondant à la fonction visibilité le long du rayon et étant une fonction de la fonction d'opacité : V(d) = 1 - foci (x)c/x Equation 5 En utilisant la distribution de Dirac, on obtient : V(d) = 1 - fd ao x (d - do)dx Equation 6 En généralisant pour M échantillons, correspondant à M intersections entre le rayon et les plans d'ombre, on obtient : V(d) = 1 - foci (Ello ai x 8(x - xi))clx Equation 7 0(x) Er1=0 ai x 8(x - di) Equation 8 En substituant 0(x) dans l'équation 2 et en utilisant le fait que fr f (x)8(x - c)dx = f (c) Equation 9 On obtient : Equation 10 2 x,m kn-cl ak) 24= 0 ai cosCOS (- Dm' Dm' 2 9 8889 1 11 Les coefficients de projections représentatifs de la fonction d'opacité le long d'un rayon sont avantageusement stockés dans une texture de projection 201 (de l'anglais « projective texture map ») de type RGBa 5 associée au point de vue 20, c'est-à-dire qu'il est possible de stocker 4 coefficients pour un rayon dans une telle texture de projection. Selon une variante, plusieurs textures de projections de type RGBa sont associées au point de vue 20 et utilisées pour stocker plus que 4 coefficients de projection par rayon, par exemple 2, 3 ou 4 textures de projection pour stocker 10 respectivement 8, 12 ou 16 coefficients de projection par rayon. De manière avantageuse, le nombre de rayons 21, 22 pour lesquels des coefficients de projection représentatifs de la fonction d'opacité (ou de visibilité de manière équivalente) sont estimés correspond au nombre de pixels d'une partie de la texture de projection couvrant la zone de la scène comprenant des plans 15 d'ombre, chaque rayon passant par un pixel de cette partie de la texture de projection. La valeur d'opacité a associée à chaque plan d'ombre est avantageusement égale au ratio ±1/N, N correspondant au nombre d'échantillons 101, 102, 103 de la source de lumière 10 échantillonnée. Le 20 signe (positif ou négatif) associé à la valeur d'opacité a associée à l'intersection entre un plan d'ombre considéré et le rayon est fonction de l'angle formé par la normale au plan d'ombre considéré et le rayon considéré. Ainsi, si l'angle formé par le rayon et la normale au plan d'ombre considéré est supérieur à 90° (7/2) alors a = +1/N, c'est-à-dire que le niveau 25 d'opacité le long du rayon augmente lorsque le rayon traverse ce plan d'ombre. Si l'angle formé par le rayon et la normale au plan d'ombre considéré est inférieur à 90° (7/2) alors a = -1/N, c'est-à-dire que le niveau d'opacité le long du rayon diminue lorsque le rayon traverse ce plan d'ombre. Selon une variante, la valeur d'opacité a associée à chaque plan d'ombre est 30 égale à plus (+) ou moins (-) une constante prédéterminée et stockée comme paramètre ou à une constante (positive ou négative selon l'angle) choisi par un utilisateur du système. Au fur et à mesure qu'un plan d'ombre est généré, les intersections entre ce plan d'ombre et chacun des rayons passant par les 35 pixels de la texture de projection sont déterminées. En fonction de l'angle formé par les rayons et le plan d'ombre, le signe de la valeur d'opacité est déterminé, la distance entre l'origine des rayons et chacune des intersections est déterminée. Les valeurs des coefficients de projection pour chaque rayon sont mises à jour dans la ou les textures de projection. Les coefficients de projection estimés pour chaque rayon 21, 22 traversant un pixel de la texture de projection permettent de définir une fonction d'opacité associée au rayon, dont une illustration est donnée en figure 4. La figure 4 illustre les variations d'opacité en fonction de la distance x parcourue entre l'origine de chacun des rayons 21, 22 et un point considéré des rayons. La courbe notée 1 en trait plein illustre les variations du niveau d'opacité le long du rayon 1 référencé 21 sur la figure 2 et la courbe notée 2 en traits pointillés illustre les variations du niveau d'opacité le long du rayon 2 référencé 22 sur la figure 2. On note qu'un niveau d'opacité égal à 0 correspond à un point appartenant à une zone éclairée de la scène, qu'un niveau d'opacité égal à 100 correspond à un point d'un rayon appartenant à une zone d'ombre de la scène (c'est-à-dire une zone ne recevant pas de lumière de la source de lumière) et qu'un niveau d'opacité compris entre 0 et 100 (0 et 100 étant exclus) correspond à un point d'un rayon compris dans une zone de pénombre (c'est-à-dire un point recevant une partie de la quantité de lumière totale émise par la source de lumière). Selon une variante, le niveau d'opacité associée à un point d'un 20 rayon correspond à la somme des valeurs d'opacité associées à chacun des plans d'ombre traversés par le rayon pour atteindre le point considéré. Pour chaque point d'un rayon, la quantité de lumière reçue en ce point est déterminée à partir du niveau d'opacité en ce point (avantageusement déterminé à partir des coefficients de projection associés 25 à ce rayon). Cette quantité de lumière reçue par le point P permet de définir les attributs (niveau de luminance par exemple) associés à un pixel (qui est associé à ce point P) d'un plan image 230 selon un point de vue 23 de la scène. 30 La figure 5 illustre schématiquement un exemple de réalisation matérielle d'un dispositif 5 adapté à l'estimation de coefficients de projections représentatifs de fonctions d'opacités le longs de rayons traversant la scène 1, à l'estimation de la quantité de lumière reçue en un point de la scène en fonction du niveau d'opacité associé à ce point et à la création de signaux 35 d'affichage d'une ou plusieurs images. 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. 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 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, comprend un moyen de transmission ou connecteur (non représenté sur la figure 5) adapté à transmettre un signal d'affichage à un moyen d'affichage 30 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 52, 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 35 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, - des paramètres 571 représentatifs de la scène 1 (par exemple les sommets et arêtes des premiers éléments de maillage du ou des objets occultants 11 et 12, les paramètres d'éclairage associés à la source de lumière étendue 10). 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 57 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 570 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 : - dans un registre 5210, les paramètres représentatifs de la scène 1 - les paramètres 5211 représentatifs de l'échantillonnage de la source de lumière étendue (par exemple le nombre d'échantillons, un index associé aux échantillons) ; - des paramètres 5212 représentatifs des premiers éléments de maillage du ou des objets occultants de la scène (par exemple les sommets et arêtes associés aux premiers éléments, un index associé à chaque premier élément) ; - des paramètres 5213 représentatifs des deuxièmes éléments de subdivision des premiers éléments de maillage (par exemple les sommets et arêtes associés aux deuxièmes éléments, un index associé à chaque deuxième élément) ; - des paramètres 5214 représentatifs des plans d'ombre (par exemple les deuxièmes éléments ayant permis la génération d'un plan d'ombre, la valeur d'opacité associé à un plan d'ombre) ; - des paramètres 5215 représentatifs des intersections entre un rayon et les plans d'ombre traversés par ce rayon (par exemple la distance entre l'origine du rayon et le point d'intersection considéré, le signe positif ou négatif de la valeur d'opacité associée au plan d'ombre traversé) ; - des coefficients de projections 5216 représentatifs de fonctions d'opacités le long de rayons ; et - des valeurs 5217 représentatives de la quantité de lumière reçue en des points de la scène appartenant à un des rayons 21, 22. Selon une variante, une partie de la RAM 57 est allouée par le CPU 51 pour stocker les paramètres 5211, 5212 et les valeurs 5213, 5214 et 5215 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 la scène 1 composée à 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 G PUs à la GRAM et vice-versa. Selon une autre variante, l'alimentation 58 et/ou l'affichage 53 sont externes au dispositif 5.
La figure 6 illustre un procédé d'estimation de la quantité de lumière reçue en un point de la scène 1 mis en oeuvre dans un dispositif 5, selon un 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 la scène 1 sont initialisés d'une manière quelconque. Ensuite, au cours d'une étape 61, la source de lumière étendue 10 est échantillonnée en une pluralité d'échantillons. Une fois échantillonnée, la source de lumière étendue 10 est assimilée à un ensemble de sources de lumière ponctuelles, chaque échantillon correspondant à une source de lumière ponctuelle. La source de lumière étendue 10 correspond par 2 9 8 8 89 1 16 exemple à une source de lumière surfacique ou volumique de forme quelconque. La source de lumière étendue éclaire la scène 1 et notamment un objet occultant 11 qui occulte au moins une partie de la lumière émise par la source de lumière 10. L'objet occultant est défini par un maillage 5 comprenant une pluralité de premiers éléments de maillage, par exemple des polygones, c'est-à-dire par exemple des triangles ou des parallélépipèdes. La scène 1 comprend également au moins un deuxième objet, l'objet occultant 11 étant positionné entre la source de lumière 10 et ce au moins un deuxième objet. Une partie de la surface 12 de ce au moins un deuxième 10 objet est ainsi dans l'ombre de l'objet occultant, c'est-à-dire que cette partie dans l'ombre ne reçoit pas de lumière émise directement par la source de lumière, l'objet occultant bloquant toute la lumière émise par la source de lumière 10 en direction de cette partie dans l'ombre portée de l'objet occultant. Selon une variante, la surface 12 ne comprend pas de zone 15 d'ombre, par exemple dans le cas où la source de lumière étendue est proche de l'objet occultant et plus large. Au moins une partie de la surface 12 de ce au moins un deuxième objet est dans la pénombre, c'est-à-dire que cette au moins une partie ne reçoit qu'une partie de la lumière émise par la source de lumière, l'objet occultant 11 bloquant une partie de la lumière 20 émise par la source de lumière étendue en direction de cette au moins une partie de la surface 12. Puis, au cours d'une étape 62, un plan d'ombre est générée pour chaque arête du ou des premiers éléments formant le maillage de l'objet occultant 11, et ce pour chaque échantillon d'au moins une partie de la 25 pluralité d'échantillons de la source de lumière générés au cours de l'étape 61. Ces plans d'ombre sont par exemple générés par extrusion des arêtes depuis l'échantillon de la source de lumière considéré. Ces plans d'ombre correspondent aux silhouettes des arêtes éclairées par l'échantillon de la source de lumière considéré. Les plans d'ombres sont par exemple définis 30 par un maillage formé de polygones, chaque plan d'ombre étant par exemple défini par deux triangles. Pour un premier élément du maillage de l'objet occultant, on obtient par exemple quatre plans d'ombre lorsque ce premier élément correspond à un triangle, trois plans d'ombre correspondant aux silhouettes des trois arêtes du triangle et un quatrième plan d'ombre 35 correspondant au triangle lui-même. De manière général, le nombre de plans d'ombre générés pour un premier élément de maillage comprenant j (entier naturel supérieur ou égal à 3) arêtes est égal à j+1.
Selon une variante avantageuse, les plans d'ombres sont générés en utilisant les propriétés inhérentes du pipeline de rendu des processeurs graphiques contenus dans une carte graphique, ce qui présente l'avantage de paralléliser les calculs nécessaires à la génération des plans d'ombres pour optimiser les aspects temps réel de la génération des plans d'ombre et du rendu de la scène. Selon cette variante, le ou les premiers éléments de maillage sont subdivisés en plusieurs deuxièmes éléments, les plans d'ombre étant alors générés par déformation géométrique de ces deuxièmes éléments. La subdivision des premiers éléments en deuxièmes éléments est avantageusement effectuée à la volée par l'unité de tesselation (« tesselation shader ») du pipeline de rendu et la déformation géométrique des deuxièmes éléments est avantageusement effectuée à la volée par l'unité géométrique (« geometry shader ») du pipeline de rendu, l'unité de tesselation et l'unité géométrique étant configurées et optimisées conceptuellement pour ce type de traitement. Cette variante présente l'avantage de pouvoir générer à la volée et en temps réel les plans d'ombres et permet ainsi d'alléger les calculs faits au niveau du CPU pour générer les plans d'ombre pour les reporter sur les GPU, minimisant ainsi les besoins en mémoire pour stocker les paramètres représentatifs de la géométrie des plans d'ombres lorsque ceux- ci sont générés au niveau du CPU avant d'être transmis à la carte graphique pour le reste des traitements. Selon une variante, les plans d'ombres sont générés pour chaque premier élément du maillage de l'objet occultant ou pour seulement une partie de ces premiers éléments de maillage, le nombre de premiers éléments pour lesquels les plans d'ombre sont générés étant choisi en fonction de la qualité et de la précision du rendu de la scène souhaitée. Selon une variante, les plans d'ombre ne sont générés que pour un seul premier élément de maillage, par exemple dans le cas où l'objet occultant est défini par un maillage ne comprenant qu'un seul premier élément, par exemple lorsque l'objet occultant est de petite taille. De la même manière, les plans d'ombres sont générés, pour chaque premier élément de maillage, pour tout ou partie des échantillons de la source de lumière, en fonction de la qualité du rendu souhaité et de la puissance de calcul disponible au niveau de la carte graphique.
Puis, au cours d'une étape 63, des coefficients de projection représentatifs d'une fonction d'opacité, dans une base de fonctions, le long d'un rayon lancé depuis un point de vue donné en direction de la scène sont estimés. La fonction d'opacité représente les variations du niveau d'opacité le long du rayon auquel est associée la fonction. La fonction d'opacité est avantageusement représentée, via les coefficients de projection associés, dans une base de fonctions orthonormée, par exemple une base de fonctions de Fourier. Le rayon pour lequel les coefficients de projection sont estimés est défini comme le rayon ayant pour origine un point de vue déterminé de la scène et passant par un pixel d'une texture de projection associée à ce point de vue. Au fur et à mesure de la génération des plans d'ombres, les intersections entre le rayon et chaque plan d'ombre nouvellement généré sont déterminées et les coefficients de projections sont mis à jour en utilisant par exemple l'équation 10. Les coefficients de projection sont mis à jour à partir d'une valeur d'opacité associée au plan d'ombre généré, cette valeur d'opacité et notamment le signe positif ou négatif qui lui est associé étant déterminé en fonction d'un angle formé par le rayon et la normale associée au plan d'ombre généré et traversé par le rayon. La valeur positive de la valeur d'opacité est utilisée dans l'équation 10 lorsque l'angle formé par le rayon et la normale associé au plan d'ombre traversé par ce rayon est supérieur à 90°, ce qui revient à dire que le niveau d'opacité augmente le long du rayon lorsque le rayon traverse le plan d'ombre généré, c'est-à-dire que la quantité de lumière reçue de la source de lumière diminue le long du rayon lorsque le rayon traverse le plan d'ombre considéré. La valeur négative de la valeur d'opacité est utilisée dans l'équation 10 lorsque l'angle formé par le rayon et la normale associé au plan d'ombre traversé par ce rayon est inférieur à 90°, ce qui revient à dire que le niveau d'opacité diminue le long du rayon lorsque le rayon traverse le plan d'ombre généré, c'est-à-dire que la quantité de lumière reçue de la source de lumière augmente le long du rayon lorsque le rayon traverse le plan d'ombre considéré. De manière avantageuse, la valeur d'opacité associée à chaque plan d'ombre est égale à 1 divisé par le nombre d'échantillons de la source de lumière étendue. Selon une variante, la valeur d'opacité associée à chaque plan d'ombre est égale au ratio correspondant à la quantité de lumière totale émise par la source de lumière étendue divisée par le nombre d'échantillons de la source de lumière étendue. Selon encore une variante, la valeur d'opacité associée à chaque plan d'ombre est égale à une valeur arbitraire prédéterminée ou à une valeur réglée par un utilisateur.
Les coefficients de projection associés à un rayon sont avantageusement stockés dans une ou plusieurs textures de projection, au niveau du pixel de la texture de projection par lequel passe le rayon considéré. Une texture de projection correspond à une carte de type RGBa (de l'anglais « Red, Green, Blue, alpha » ou en français « Rouge, vert, bleu, alpha »), chaque canal RGBa étant utilisé pour stocker un coefficient de projection. Les traitements décrits ci-dessus en regard de l'étape 63 sont avantageusement réalisés pour plusieurs rayons ayant pour origine le point de vue, par exemple pour autant de rayon qu'il y a de pixels dans la texture de projection associée au point de vue. Selon une variante, le nombre de rayons pour lesquels les coefficients de projection sont estimés correspond au nombre de pixels d'une partie de la texture de projection, c'est-à-dire pour les pixels de la partie de la texture de projection couvrant la zone de la scène 1 comprenant des plans d'ombre. Le point de vue auquel est associé la texture de projection est avantageusement choisi de manière à ce que la partie de la texture de projection couvrant la zone de la scène comprenant des plans d'ombre soit la plus petite possible pour limiter le nombre de rayons et ainsi limiter les calculs nécessaires à l'estimation des coefficients de projection. La résolution de la texture de projection est choisie de manière à optimiser la qualité du rendu de l'image tout en limitant les calculs nécessaires pour l'estimation des coefficients de projection. La résolution de la texture de projection est par exemple égale à 128x128 pixels, 512x512 pixels et peut aller jusqu'à 4096x4096 pixels.
Enfin, au cours d'une étape 64, une valeur représentative du niveau d'opacité, associé à un point de la scène appartenant à un rayon pour lequel les coefficients de projection associés ont été estimés, est estimée. Le niveau d'opacité associé au point considéré est estimé en utilisant la fonction d'opacité associée au rayon considéré, cette fonction d'opacité étant représentée par les coefficients de projection associés au rayon comprenant le point pour lequel on recherche la valeur représentative du niveau d'opacité. La valeur représentative du niveau d'opacité est par exemple calculée en utilisant l'équation 3, la variable d de l'équation 3 correspondant à la distance entre l'origine du rayon et le point considéré le long du rayon.
Les étapes 62 à 64 sont avantageusement réitérées pour chaque image, par exemple lorsque l'objet occultant 11 bouge dans la scène ou lorsque le point de vue selon lequel un utilisateur regarde la scène 1 change.
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 valeur représentative du niveau d'opacité en un point de la scène mais s'étend également à un procédé d'estimation de la quantité de lumière reçue en un point de la scène. L'invention s'étend également à tout dispositif mettant en oeuvre ce procédé et notamment tous les dispositifs comprenant au moins un GPU, aux produits programmes d'ordinateurs comprenant les instructions de code de programme pour l'exécution des étapes de la méthode de rendu ou de modélisation ainsi qu'à tout moyen de stockage (par exemple de type RAM ou GRAM, mémoire flash, CD, DVD) sur lequel sont stockées les instructions exécutable pour la mise en oeuvre de la méthode de rendu ou de modélisation. La mise en oeuvre des étapes décrites en regards des figures 2, 3 et 6 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. De manière avantageuse, les fonctions de base utilisées pour l'estimation des coefficients de projections sont des fonctions d'une base orthonormée, par exemple de type Fourier. Selon une variante, les fonctions de base utilisées sont les polynômes de Legendre ou encore les polynômes de Tchebychev. 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 la quantité de lumière reçue en un point 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 selon une direction d'observation 231. 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.10

Claims (12)

  1. REVENDICATIONS1. Procédé d'estimation de l'opacité en un point (13) d'une scène (1), ladite scène (1) étant éclairée par une source de lumière étendue (10), ladite scène comprenant au moins un objet occultant (11) une partie de la lumière émise par ladite source de lumière étendue (10), ledit objet occultant (11) étant défini par un maillage, caractérisé en ce que le procédé comprend les étapes suivantes : - échantillonnage (61) de ladite source de lumière étendue (10) en une pluralité d'échantillons (101, 102, 103) ; - pour au moins un échantillon (101) de la pluralité d'échantillons (101, 102, 103) et pour au moins un premier élément (30) du maillage de l'objet occultant (11) visible depuis le au moins un échantillon (101), génération (62) d'un plan d'ombre (301, 302, 303) par arête du au moins un premier élément (30) du maillage ; - estimation (63) de coefficients de projection dans une base de fonctions à partir de valeurs représentatives de l'opacité pour un ensemble des points d'intersection (210, 211, 212) entre au moins un rayon (21) ayant pour origine un point de vue (20) de la scène et traversant la scène et des plans d'ombres traversés par ledit au moins un rayon (21), en fonction d'un angle formé par la normale associée à chaque plan d'ombre traversé et par ledit au moins un rayon (21) ; - estimation (64) d'une valeur représentative d'un niveau d'opacité en un point dudit au moins un rayon à partir des coefficients de projection estimés.
  2. 2. Procédé selon la revendication 1, caractérisé en ce que le niveau d'opacité augmente le long du au moins un rayon (21) lorsque l'angle formé par ledit au moins un rayon (21) et la normale associée à un plan d'ombre (2001) traversé par ledit au moins un rayon (21) est supérieur à 90° et en ce que le niveau d'opacité diminue le long du au moins un rayon (21) lorsque l'angle formé par ledit au moins un rayon (21) et la normale associée à un plan d'ombre (2004) traversé par ledit au moins un rayon est inférieur à 90°.
  3. 3. Procédé selon la revendication 2, caractérisé en ce que le niveau d'opacité augmente ou diminue d'une valeur correspondant à un rapport égalà la quantité de lumière totale émise par ladite source de lumière étendue (10) sur le nombre d'échantillons lorsque ledit au moins un rayon présente une intersection avec un plan d'ombre.
  4. 4. Procédé selon l'une des revendications 1 à 3, caractérisé en ce que la génération desdits plans d'ombre comprend une étape de subdivision dudit au moins un premier élément (30) du maillage en une pluralité de deuxièmes éléments, les plans d'ombres (301, 302, 303) étant générés par déformation géométrique desdits deuxièmes éléments.
  5. 5. Procédé selon l'une des revendications 1 à 4, caractérisé en ce que la base de fonctions est une base de fonctions de Fourier.
  6. 6. Procédé selon l'une des revendications 1 à 5, caractérisé en ce que lesdits coefficients de projection sont stockés dans au moins une texture de projection (201).
  7. 7. Dispositif (5) configuré pour l'estimation de l'opacité en un point d'une scène, ladite scène étant éclairée par une source de lumière étendue, ladite scène comprenant au moins un objet occultant une partie de la lumière émise par ladite source, ledit objet occulté étant défini par un maillage, caractérisé en ce que le dispositif comprend : - des moyens (520) pour échantillonner ladite source de lumière étendue en une pluralité d'échantillons ; - des moyens (520) pour générer, pour au moins un échantillon de la pluralité d'échantillons et pour au moins un premier élément du maillage de l'objet occultant visible depuis le au moins un échantillon, un plan d'ombre par arête du au moins un premier élément du maillage ; - des moyens (520) pour estimer des coefficients de projection dans une base de fonctions à partir de valeurs représentatives de l'opacité pour un ensemble des points d'intersection entre au moins un rayon ayant pour origine un point de vue de la scène et traversant la scène et des plans d'ombres traversés par ledit au moins un rayon, en fonction d'un angle formé par la normale associée à chaque plan d'ombre traversé et par ledit au moins un rayon ;- des moyens (520) pour estimer une valeur représentative d'un niveau d'opacité en un point dudit au moins un rayon à partir des coefficients de projection estimés.
  8. 8. Dispositif selon la revendication 7, caractérisé en ce que le niveau d'opacité augmente le long du au moins un rayon lorsque l'angle formé par ledit au moins un rayon et la normale associée à un plan d'ombre traversé par ledit au moins un rayon est supérieure à 90° et en ce que le niveau d'opacité diminue le long du au moins un rayon lorsque l'angle formé par ledit au moins un rayon et la normale associée à un plan d'ombre traversé par ledit au moins un rayon est inférieur à 90°.
  9. 9. Dispositif selon la revendication 8, caractérisé en ce que le niveau d'opacité augmente ou diminue d'une valeur correspondant à un rapport égal à la quantité de lumière totale émise par ladite source de lumière étendue sur le nombre d'échantillons lorsque ledit au moins un rayon présente une intersection avec un plan d'ombre.
  10. 10. Dispositif selon l'une des revendications 7 à 9, caractérisé en ce qu'il 20 comprend des moyens pour subdiviser ledit au moins un premier élément du maillage en une pluralité de deuxièmes éléments, les plans d'ombres étant générés par déformation géométrique desdits deuxièmes éléments.
  11. 11. Produit programme d'ordinateur caractérisé en ce qu'il comprend des 25 instructions de code de programme pour l'exécution des étapes du procédé selon l'une quelconque des revendications 1 à 6, lorsque ledit programme est exécuté sur un ordinateur.
  12. 12. Moyen de stockage lisible par un ordinateur, stockant le jeu 30 d'instructions exécutables par ledit ordinateur pour mettre en oeuvre le procédé selon l'une quelconque des revendications 1 à 6.
FR1252869A 2012-03-29 2012-03-29 Procede d'estimation de niveau d'opacite dans une scene et dispositif correspondant Withdrawn FR2988891A1 (fr)

Priority Applications (8)

Application Number Priority Date Filing Date Title
FR1252869A FR2988891A1 (fr) 2012-03-29 2012-03-29 Procede d'estimation de niveau d'opacite dans une scene et dispositif correspondant
JP2015502370A JP2015515059A (ja) 2012-03-29 2013-03-28 シーンにおける不透明度レベルを推定する方法とそれに対応する装置
KR1020147027133A KR20140144688A (ko) 2012-03-29 2013-03-28 장면에서의 불투명도 레벨을 추정하는 방법, 및 이에 대응하는 디바이스
CN201380017135.2A CN104205173B (zh) 2012-03-29 2013-03-28 用于估计场景中的不透明度水平的方法及相应的设备
PCT/EP2013/056801 WO2013144333A1 (fr) 2012-03-29 2013-03-28 Procédé d'estimation du niveau d'opacité dans une scène et dispositif correspondant
US14/386,799 US9558586B2 (en) 2012-03-29 2013-03-28 Method for estimating the opacity level in a scene and corresponding device
EP13712813.8A EP2831848B1 (fr) 2012-03-29 2013-03-28 Procédé d'estimation du niveau d'opacité dans une scène et dispositif correspondant
CA2866849A CA2866849C (fr) 2012-03-29 2013-03-28 Procede d'estimation du niveau d'opacite dans une scene et dispositif correspondant

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1252869A FR2988891A1 (fr) 2012-03-29 2012-03-29 Procede d'estimation de niveau d'opacite dans une scene et dispositif correspondant

Publications (1)

Publication Number Publication Date
FR2988891A1 true FR2988891A1 (fr) 2013-10-04

Family

ID=48014027

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1252869A Withdrawn FR2988891A1 (fr) 2012-03-29 2012-03-29 Procede d'estimation de niveau d'opacite dans une scene et dispositif correspondant

Country Status (8)

Country Link
US (1) US9558586B2 (fr)
EP (1) EP2831848B1 (fr)
JP (1) JP2015515059A (fr)
KR (1) KR20140144688A (fr)
CN (1) CN104205173B (fr)
CA (1) CA2866849C (fr)
FR (1) FR2988891A1 (fr)
WO (1) WO2013144333A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3062293A1 (fr) * 2015-02-25 2016-08-31 Samsung Electronics Co., Ltd. Appareil de rendu d'ombres et son procédé de commande

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2525636B (en) * 2014-04-30 2020-08-19 Geomerics Ltd Graphics processing systems
KR20160071774A (ko) * 2014-12-12 2016-06-22 삼성전자주식회사 영상 처리를 위한 영상 처리 장치, 방법 및 기록 매체
DE102016103891A1 (de) * 2015-03-03 2016-09-08 Imagination Technologies Limited Systeme und Verfahren zur weichen Schattierung in 3D-Rendering
US10614614B2 (en) 2015-09-29 2020-04-07 Adshir Ltd. Path tracing system employing distributed accelerating structures
GB2543562B (en) * 2015-10-23 2020-02-05 Geomerics Ltd Graphics processing
US12008704B2 (en) 2016-01-28 2024-06-11 Snap Inc. System for photo-realistic reflections in augmented reality
US10614612B2 (en) 2018-06-09 2020-04-07 Adshir Ltd. Fast path traced reflections for augmented reality
GB2551388B (en) 2016-06-17 2021-01-27 Geomerics Ltd Graphics processing systems
GB2555797B (en) 2016-11-09 2020-04-08 Geomerics Ltd Graphics processing to provide shadows on specular lighting
JP7086330B2 (ja) * 2017-10-06 2022-06-20 アドバンスド スキャナーズ,インコーポレイテッド 物体の三次元モデルを形成するための1つ又は複数の光度エッジの生成
US10699468B2 (en) 2018-06-09 2020-06-30 Adshir Ltd. Method for non-planar specular reflections in hybrid ray tracing
US11017581B1 (en) 2020-01-04 2021-05-25 Adshir Ltd. Method for constructing and traversing accelerating structures
CN111476877B (zh) * 2020-04-16 2024-01-26 网易(杭州)网络有限公司 一种阴影渲染的方法及装置、电子设备、存储介质

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL136430A0 (en) 2000-05-29 2001-06-14 Zviaguina Natalia Ray tracing method and system for determining visible parts of surfaces of three-dimensional objects and their parameters of shading accounting for light and shadow volumes
US6903741B2 (en) 2001-12-13 2005-06-07 Crytek Gmbh Method, computer program product and system for rendering soft shadows in a frame representing a 3D-scene
JP2003346176A (ja) * 2002-05-24 2003-12-05 Telecommunication Advancement Organization Of Japan ラジオシティのメッシュ分割方法及びその装置
JP4079249B2 (ja) * 2002-06-03 2008-04-23 任天堂株式会社 ゲーム装置及びゲームプログラム
US7248261B1 (en) 2003-12-15 2007-07-24 Nvidia Corporation Method and apparatus to accelerate rendering of shadow effects for computer-generated images
US7924281B2 (en) 2005-03-09 2011-04-12 Ati Technologies Ulc System and method for determining illumination of a pixel by shadow planes
US7755626B2 (en) 2006-05-03 2010-07-13 Sony Computer Entertainment Inc. Cone-culled soft shadows
JP4902748B2 (ja) 2006-12-08 2012-03-21 メンタル イメージズ ゲーエムベーハー 階層型オクルージョンカリングを使用するコンピュータグラフィックシャドウボリューム
US7969438B2 (en) 2007-01-23 2011-06-28 Pacific Data Images Llc Soft shadows for cinematic lighting for computer graphics
US7970237B2 (en) * 2007-08-01 2011-06-28 Adobe Systems Incorporated Spatially-varying convolutions for rendering glossy reflection effects
US7982734B2 (en) 2007-08-01 2011-07-19 Adobe Systems Incorporated Spatially-varying convolutions for rendering soft shadow effects
CN101542232B (zh) * 2007-08-07 2011-10-19 松下电器产业株式会社 法线信息生成装置以及法线信息生成方法
US20090079758A1 (en) * 2007-09-25 2009-03-26 Max-Planck-Gesellschaft Zur Forderung Per Wissenschaften E.V. Method and device for generating shadow maps
CN101271588B (zh) * 2007-10-26 2012-01-11 威盛电子股份有限公司 可重建几何阴影图方法
CN101393651A (zh) * 2008-11-07 2009-03-25 北京航空航天大学 一种视野驱动的实时阴影方法
EP2234069A1 (fr) * 2009-03-27 2010-09-29 Thomson Licensing Procédé de génération d'ombre dans une image
US9171396B2 (en) * 2010-06-30 2015-10-27 Primal Space Systems Inc. System and method of procedural visibility for interactive and broadcast streaming of entertainment, advertising, and tactical 3D graphical information using a visibility event codec
US8442306B2 (en) 2010-08-13 2013-05-14 Mitsubishi Electric Research Laboratories, Inc. Volume-based coverage analysis for sensor placement in 3D environments

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
CYRIL DELALANDRE ET AL: "Transmittance function mapping", SYMPOSIUM ON INTERACTIVE 3D GRAPHICS AND GAMES ON, I3D '11, 1 January 2011 (2011-01-01), New York, New York, USA, pages 31, XP055015574, ISBN: 978-1-45-030565-5, DOI: 10.1145/1944745.1944751 *
HASENFRATZ J-M ET AL: "A survey of real-time soft shadows algorithms", COMPUTER GRAPHICS FORUM, WILEY-BLACKWELL PUBLISHING LTD, GB, vol. 22, no. 4, 1 December 2003 (2003-12-01), pages 753 - 774, XP002502904, ISSN: 0167-7055, DOI: 10.1111/J.1467-8659.2003.00722.X *
JON JANSEN ET AL: "Fourier Opacity Mapping", PROCEEDINGS OF THE 2010 ACM SIGGRAPH SYMPOSIUM ON INTERACTIVE 3D GRAPHICS AND GAMES, 1 January 2010 (2010-01-01), pages 165 - 172, XP055050297, Retrieved from the Internet <URL:http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.154.4016&rep=rep1&type=pdf> [retrieved on 20130118] *
THOMAS ANNEN ET AL: "Convolution Shadow Maps", EUROGRAPHICS SYMPOSIUM ON RENDERING (2007), 1 January 2007 (2007-01-01), XP055050301, Retrieved from the Internet <URL:www.thomasannen.com/pub/egsr2007.pdf> [retrieved on 20130118] *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3062293A1 (fr) * 2015-02-25 2016-08-31 Samsung Electronics Co., Ltd. Appareil de rendu d'ombres et son procédé de commande
US9786095B2 (en) 2015-02-25 2017-10-10 Samsung Electronics Co., Ltd. Shadow rendering apparatus and control method thereof

Also Published As

Publication number Publication date
US20150042655A1 (en) 2015-02-12
KR20140144688A (ko) 2014-12-19
JP2015515059A (ja) 2015-05-21
WO2013144333A1 (fr) 2013-10-03
CA2866849A1 (fr) 2013-10-03
CN104205173A (zh) 2014-12-10
CN104205173B (zh) 2017-03-29
US9558586B2 (en) 2017-01-31
CA2866849C (fr) 2020-04-14
EP2831848A1 (fr) 2015-02-04
EP2831848B1 (fr) 2017-02-01

Similar Documents

Publication Publication Date Title
FR2988891A1 (fr) Procede d&#39;estimation de niveau d&#39;opacite dans une scene et dispositif correspondant
EP1982310B1 (fr) Procede de synthese d&#39;une image virtuelle par lancer de faisceaux
EP1292921B1 (fr) Raffinement d&#39;un maillage triangulaire en trois dimensions
US20170323471A1 (en) 3D rendering method and 3D graphics processing device
US20130002671A1 (en) Point-based guided importance sampling
FR2965652A1 (fr) Procede d’estimation de la quantite de lumiere recue en un point d’un environnement virtuel
FR2966623A1 (fr) Procede d’estimation de l’occultation dans un environnement virtuel
FR2964775A1 (fr) Procede d&#39;estimation de l&#39;occultation dans un environnement virtuel
EP2504816B1 (fr) Procede d&#39;estimation de diffusion de la lumiere
De Rousiers et al. Real-time rendering of rough refraction
CN114100118A (zh) 基于网络状况的动态图像平滑
WO2011057997A2 (fr) Procede d&#39;estimation de diffusion de la lumiere
FR2974217A1 (fr) Procede d’estimation d’une information representative d’une hauteur
FR2988502A1 (fr) Procede pour representer un milieu participant dans une scene et dispositif correspondant
Chen et al. Real-time rendering of deformable heterogeneous translucent objects using multiresolution splatting
WO2012000847A2 (fr) Procede d&#39;estimation de diffusion de la lumiere
US8723865B1 (en) System and method for rendering a volumetric shadow
US11941782B2 (en) GPU-based lens blur rendering using depth maps
WO2011058007A2 (fr) Procede d&#39;estimation de diffusion de la lumiere
Lee et al. A bimodal empty space skipping of ray casting for terrain data
EP2428935B1 (fr) Procédé d&#39;évaluation de diffusion de la lumière dans un support homogène
GB2592604A (en) Image generation system and method
WO2010094619A1 (fr) Procede d&#39;estimation de diffusion de la lumiere
Shihan et al. Adaptive volumetric light and atmospheric scattering
Ali et al. Realistic real-time rendering of light shafts using blur filter: considering the effect of shadow maps

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20131129