FR2960677A1 - Procede d’estimation de la quantite de lumiere recue en un point d’un environnement virtuel - Google Patents
Procede d’estimation de la quantite de lumiere recue en un point d’un environnement virtuel Download PDFInfo
- Publication number
- FR2960677A1 FR2960677A1 FR1059372A FR1059372A FR2960677A1 FR 2960677 A1 FR2960677 A1 FR 2960677A1 FR 1059372 A FR1059372 A FR 1059372A FR 1059372 A FR1059372 A FR 1059372A FR 2960677 A1 FR2960677 A1 FR 2960677A1
- Authority
- FR
- France
- Prior art keywords
- light
- light source
- point
- received
- amount
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—Three-dimensional [3D] image rendering
- G06T15/50—Lighting effects
- G06T15/506—Illumination models
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 la quantité de lumière totale reçue par un point P (124) d'un environnement virtuel éclairé par une pluralité de sources lumineuses (100 à 105). Afin d'accélérer le rendu de l'environnement virtuel, le procédé comprend les étapes de : A) sélection d'une première source lumineuse (100) parmi la pluralité de sources lumineuses (100 à 105), B) estimation de la quantité de lumière reçue par ledit point P (124) de chaque source lumineuse (101 à 104) à l'exception de ladite première source lumineuse (100), C) enregistrement d'une première quantité de lumière partielle reçue par ledit point P (124) correspondant à la somme des quantités de lumières reçues de chaque source lumineuse (101 à 105) à l'exception de ladite première source lumineuse (100), D) estimation de la quantité de lumière reçue par ledit point P (124) de ladite première source lumineuse (100), E) estimation d'une première quantité de lumière totale reçue par ledit point P (124) en ajoutant la quantité de lumière reçue de ladite première source lumineuse (100) à ladite première quantité de lumière partielle, seules les étapes D) et E) étant réitérées lors d'une modification d'au moins un paramètre d'éclairage de ladite première source lumineuse (100).
Description
PROCEDE D'ESTIMATION DE LA QUANTITE DE LUMIERE RECUE EN UN POINT D'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 la modélisation d'un environnement lumineux éclairant un environnement virtuel ou scène 3D (c'est-à-dire à trois dimensions). 2. Etat de l'art. Selon l'état de la technique, pour fournir à un spectateur d'un environnement virtuel une impression de réalisme la plus grande possible, il est connu de modéliser l'éclairage de l'environnement virtuel par l'utilisation d'un environnement lumineux composé d'un grand nombre de sources lumineuses, chaque source lumineuse étant indépendante et paramétrable avec des paramètres d'éclairage qui lui sont propres. Selon cette technique, il est possible de modéliser un éclairage naturel complexe par un environnement lumineux comprenant plusieurs sources lumineuses. En jouant sur les paramètres d'éclairage de chaque source lumineuse et en estimant les ombres qui en résultent dans l'environnement virtuel, il est possible de s'affranchir de coûteux calculs tels que par exemple les calculs de diffusion de la lumière en prenant en compte les inter-réflexions de la lumière avec les différents objets composant l'environnement virtuel.
Pour obtenir un résultat le plus réaliste possible, un artiste générant un environnement virtuel éclairé par un environnement lumineux comprenant plusieurs sources lumineuses est amené à modifier les paramètres d'éclairages associés aux sources lumineuses de manière itérative, c'est-à-dire de modifier les paramètres d'éclairage d'une source ou d'un groupe de sources, de visualiser le résultat avant de modifier le paramétrage de la même source ou d'une autre source. Pour se rendre compte de l'impact des modifications des paramètres d'éclairage d'une seule source, il est nécessaire de recalculer les contributions de chaque source lumineuse pour visualiser le résultat de la modification. Sachant que la simple prévisualisation de l'éclairage de la scène et le résultat en terme d'ombres peut prendre plusieurs heures sur des ordinateurs performants et qu'il peut s'avérer nécessaire de modifier à de nombreuses reprises les paramètres d'éclairage des sources lumineuses avant d'obtenir un éclairage réaliste de la scène, la génération d'une image d'un environnement virtuel et plus particulièrement la modélisation de l'environnement lumineux s'avère très coûteuse en temps de conception et de modélisation et en besoin de ressources pour les calculs nécessaires au rendu de l'environnement virtuel.
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 composer en temps réel l'environnement lumineux d'un environnement virtuel. L'invention concerne un procédé d'estimation de la quantité de lumière totale reçue par un point P d'un environnement virtuel, l'environnement virtuel étant éclairé par une pluralité de sources lumineuses, le procédé comprenant les étapes de : A) sélection d'une première source lumineuse parmi la pluralité de sources lumineuses, B) estimation de la quantité de lumière reçue par le point P de chaque source lumineuse de la pluralité de sources lumineuses à l'exception de la première source lumineuse, C) enregistrement d'une première quantité de lumière partielle reçue par le point P correspondant à la somme des quantités de lumières reçues de chaque source lumineuse de la pluralité à l'exception de la première source lumineuse, D) estimation de la quantité de lumière reçue par le point P de la première source lumineuse, E) estimation d'une première quantité de lumière totale reçue par le point P en ajoutant la quantité de lumière reçue de la première source lumineuse à la première quantité de lumière partielle, seules les étapes D) et E) étant réitérées lors d'une modification d'au moins un paramètre d'éclairage de la première source lumineuse (100).
Selon une caractéristique particulière, le procédé comprend en outres les étapes de : - sélection d'une deuxième source lumineuse parmi la pluralité de sources lumineuses, la deuxième source lumineuse sélectionnée étant différente de la première source lumineuse, - estimation d'une deuxième quantité de lumière partielle reçue par le point P correspondant à la somme des quantités de lumières reçues de chaque source lumineuse de la pluralité à l'exception de la deuxième source lumineuse, la deuxième quantité de lumière partielle reçue étant estimée en retranchant la quantité de lumière reçue de la deuxième source lumineuse sélectionnée de la première quantité de lumière totale reçue estimée, - modification d'au moins un paramètre d'éclairage de la deuxième source lumineuse puis estimation de la quantité de lumière reçue par le point P de la deuxième source lumineuse, - estimation d'une deuxième quantité de lumière totale reçue par le point P en ajoutant la quantité de lumière reçue de la deuxième source lumineuse à la deuxième quantité de lumière partielle reçue par le point P. Avantageusement, la quantité de lumière reçue de chaque source lumineuse de la pluralité de sources lumineuses est estimée à partir d'une carte d'ombre associée à chaque source lumineuse de la pluralité. Selon une caractéristique spécifique, le procédé comprend en outre une étape d'estimation de la quantité de lumière réfléchie par un élément de surface associé au point P en fonction de la quantité de lumière totale reçue par le point P et d'une information représentative de la réfléctance associée à l'élément de surface associé au point P.
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 éclairé par une source lumineuse, selon un mode de réalisation particulier de l'invention ; - la figure 1B illustre une carte d'ombre associée à l'environnement virtuel et à la source lumineuse de la figure 1A, selon un mode de réalisation particulier de l'invention ; - la figure 2 illustre schématiquement une méthode d'estimation de la quantité de lumière totale reçue par un point P de l'environnement virtuel de la figure 1, selon un mode de réalisation particulier de l'invention ; - la figure 3 illustre un dispositif mettant en oeuvre une méthode d'estimation de la quantité de lumière reçue en un point de l'environnement virtuel de la figure 1, selon un exemple de mise en oeuvre particulier de l'invention ; - la figure 4 illustre un procédé d'estimation de la quantité de lumière totale reçue en un point de l'environnement virtuel 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 un environnement virtuel ou une scène virtuelle (dite aussi scène 3D) 1 éclairée par une pluralité de sources de lumière 100 à 105, la pluralité de sources lumineuses 100 à 105 formant un environnement lumineux. L'éclairage fourni par la source lumineuse 100 forme un cône de lumière 111. 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. Ainsi, l'objet 12 reçoit une quantité de lumière incidente de la source lumineuse 10, la surface de l'objet 12 éclairée par la source lumineuse 100 étant discrétisée en une pluralité de points 121 à 12i. Les points 121 à 12i correspondent à des points singuliers ou selon une variante à des éléments de surface. Dans la suite de la description de la figure 1, un point d'une surface désignera aussi bien un point unitaire qu'un élément de surface. De la même manière, l'objet 13 reçoit une quantité de lumière incidente de la source lumineuse 100, la surface de l'objet 13 éclairée par la source lumineuse 100 étant discrétisée en une pluralité de points 131 à 13i, chaque point correspondant à un point unitaire ou à un élément de surface. L'objet 15 reçoit également une quantité de lumière incidente, la surface de l'objet 15 éclairée par la source lumineuse 100 étant discrétisée en une pluralité de points 151 à 15i qui correspondent chacun à un point unitaire ou à un élément de surface. La normale à l'élément de surface associé à chaque point 121 à 12i, 131 à 13i, 151 à 15i est représentée par une flèche noire. L'information relative à la normale de chaque élément de surface réfléchissant la lumière est utile pour estimer la quantité de lumière réfléchie selon une direction donnée. De manière avantageuse, l'environnement virtuel 1 est rendu tel que vu depuis la source lumineuse 100. Les informations représentatives de l'environnement virtuel 1 tel qu'il est vu depuis la source lumineuse 100 sont stockées dans une carte d'ombre 110 (de l'anglais « shadow map »). La carte d'ombre comprend avantageusement pour chaque point de l'environnement virtuel 1 appartenant à un objet de l'environnement virtuel 1 et éclairé par la source lumineuse 100 (nommé premier point dans le reste de la description) une information représentative de la distance séparant la source lumineuse 100 du premier point considéré. La figure 1B illustre une telle carte d'ombre 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 1100 à 110i dont la norme est égale à la distance entre la source lumineuse et le premier point considéré. La carte d'ombre est ainsi composée d'une pluralité de points associés aux premiers points de l'environnement virtuel 1 projetés sur une surface formée par le cône de lumière 100 et perpendiculaire à la direction principale d'éclairage de la source lumineuse 100. Une information représentative de la distance source lumineuse / premier point est associée à chaque point correspondant de la carte d'ombre. En reliant chaque point de la carte d'ombre formé par le vecteur représentatif de la distance, on obtient une surface S représentative de l'ensemble des premiers points de l'environnement tels que vus depuis la source lumineuse 100. L'utilisation d'une carte d'ombre présente l'avantage de diminuer les calculs nécessaires à l'estimation de la quantité de lumière reçue par l'environnement virtuel et donc de diminuer les calculs nécessaires pour estimer la quantité de lumière reçue par un point de l'environnement virtuel. Grâce à la carte d'ombre, pour savoir si un point de l'environnement virtuel est éclairé ou non par la source lumineuse 100, il suffit de connaître la distance séparant ce point de la source lumineuse et de la direction d'incidence à laquelle il appartient. Aucun calcul d'intersection entre la droite formée par le point et la source lumineuse d'une part et les objets de l'environnement virtuel d'autre part n'est ainsi nécessaire, ce qui diminue les calculs nécessaires. En effet, pour déterminer si un point de l'environnement virtuel est éclairé par la source lumineuse 100, il suffit de comparer la distance séparant ce point de la source lumineuse 100 selon une direction d'incidence à la distance stockée dans la carte d'ombre pour la même direction d'incidence de la lumière. Ainsi, si la distance estimée pour le point considérée est supérieure à la distance stockée dans la carte d'ombre pour la même direction d'incidence, le point considéré de l'environnement virtuel 1 n'est pas éclairé par la source lumineuse 100 car occulté par au moins un des objets de l'environnement virtuel 1. La carte d'ombre permet de déterminer simplement avec de faibles coûts en calcul les points éclairés par une source lumineuse et ceux qui ne le sont pas. La quantité de lumière reçue par un point de l'environnement virtuel 1 éclairé par la source lumineuse 100 est avantageusement déterminée à partir de la fonction de distribution goniométrique associée à la source lumineuse 100. Une telle fonction de distribution goniométrique est avantageusement définie par un ensemble de paramètres qui sont modifiables par un utilisateur (dit également artiste) cherchant à modéliser l'environnement lumineux éclairant l'environnement virtuel 1. Les paramètres de la fonction de distribution goniométrique, dits paramètres d'éclairages associés à la source lumineuse 100, comprennent par exemple la puissance radiante de la source lumineuse exprimée en watts, l'intensité radiante correspondant à l'énergie rayonnée par la source lumineuse par angle plein unitaire exprimée en watts/stéradian (ou candela). Selon une variante la quantité de lumière reçue en un point de l'environnement virtuel 1 est également fonction de l'angle formé par la direction d'incidence au point considéré et la normale à la source lumineuse considérée. Selon une autre variante, la quantité de lumière reçue en un point de l'environnement virtuel 1 est également fonction de la distance séparant le point considéré de la source lumineuse 100 considérée. De manière avantageuse, la quantité de lumière reçue par le point P 124, et pour tout point de l'environnement virtuel 1 pour lequel la quantité de lumière reçue d'une source lumineuse a été estimée, est enregistrée et stockée dans une structure de données composée de tables enregistrées dans une mémoire associée aux GPUs. Bien entendu, Le nombre de sources lumineuses formant l'environnement lumineux n'est pas limité à 6 sources lumineuses mais s'étend avantageusement à tout nombre supérieur ou égal à 2, par exemple 100, 1000, 10000, 100000 ou 1000000 sources lumineuses.
La figure 2 illustre schématiquement une méthode d'estimation de la quantité de lumière totale reçue par un point P de l'environnement virtuel 1, selon un exemple de mise en oeuvre non limitatif de l'invention. Dans un premier temps, une première source lumineuse 100 est sélectionnée parmi la pluralité de sources lumineuses 100 à 105. Cette première source lumineuse est sélectionnée par exemple par un utilisateur cherchant à modéliser et paramétrer l'éclairage de l'environnement virtuel 1 via une interface graphique utilisateur GUI (de l'anglais « Graphical User Interface »). Dans un deuxième temps, la quantité de lumière reçue par un point quelconque de l'environnement virtuel 1, par exemple le point P 124, de chaque source lumineuse 101 à 105, c'est-à-dire sans prendre en compte la contribution de la source lumineuse sélectionnée 100 dans l'éclairage du point P 124, est estimée par exemple selon la technique décrite en regard de la figure 1. Pour ce faire, une carte d'ombre est générée pour chaque source lumineuse 101 à 105 et la quantité de lumière reçue par le point P 124 de chaque source lumineuse 101 à 105 est estimée à partir des cartes d'ombre associées à chaque source lumineuse 101 à 105 et à partir des fonctions de distribution goniométrique associées à chaque source lumineuse. De manière avantageuse, une seule et même fonction de distribution goniométrique est associée à chaque source lumineuse 100 à 105 de l'environnement lumineux 1. Selon une variante, les fonctions de distribution goniométrique associées aux sources de lumière varient d'une source lumineuse à l'autre, ou d'un groupe de sources de lumière à un autre groupe de sources de lumière.
Dans un troisième temps, les quantités de lumière reçues par le point P de chacune des sources de lumière 101 à 105 (à l'exception de la source lumineuse 100 sélectionnée) sont additionnées pour générer une première quantité de lumière partielle reçue par le point P 124. Cette première quantité de lumière partielle ainsi que les quantités de lumière reçues de chaque source lumineuse 101 à 105 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 quantité de lumière partielle reçue. Selon une variante, les quantités de lumière reçue des sources de lumière 101 à 105 sont additionnées au fur et à mesure qu'elles sont estimées, c'est-à-dire par exemple que la quantité de lumière reçue par le point P de la source lumineuse 101 est estimée et stockée dans un registre, que la quantité de lumière reçue de la source lumineuse 102 est estimée et ajoutée à la quantité de lumière stockée dans le registre, que la quantité de lumière reçue de la source lumineuse 103 est estimée et ajoutée à la quantité de lumière stockée dans le registre et correspondant à la quantité de lumière reçue des sources de lumière 101 et 102, et ainsi de suite pour toutes les sources de lumière de l'environnement lumineux à l'exception de la source lumineuse 100 sélectionnée. Puis dans un quatrième temps, la quantité de lumière reçue par le point P de la source lumineuse 100 sélectionnée est estimée de la même manière qu'ont été estimées les quantités de lumière reçues des autres sources de lumière 101 à 105, c'est-à-dire à partir de la carte d'ombre associée à la source lumineuse 100 et à partir de la fonction de distribution goniométrique associée à la source lumineuse 100. Cette valeur de quantité de lumière estimée reçue de la source lumineuse 100 est à son tour avantageusement stockée dans la table des enregistrements de quantité de lumière partielle reçue avant d'être ajoutée à la première quantité de lumière partielle reçue pour estimer la première quantité de lumière totale reçue par le point P 124 de l'environnement lumineux, c'est-à-dire en prenant en compte la contribution de chacune des sources de lumières 100 à 105 de l'environnement lumineux. Grâce à cette méthode, lorsque l'utilisateur modifie les paramètres d'éclairage de la première source lumineuse 100 sélectionnée pour en étudier l'impact sur le résultat global de l'éclairage de l'environnement virtuel 1, il n'est pas nécessaire de recalculer toutes les quantités de lumière reçues par le point P de chacune des sources de lumière 100 à 105 de l'environnement lumineux puisque la première quantité de lumière partielle reçue (correspondant à la quantité de lumière reçue par le point P de toutes les sources de lumière à l'exclusion de la première source lumineuse 100 sélectionnée) est stockée dans une table associée ou dans un registre associé. Pour visualiser le résultat de la modification des paramètres d'éclairage de la première source lumineuse 100 sélectionnée sur l'éclairage complet de l'environnement lumineux, seule la quantité de lumière reçue par le point P de la première source lumineuse 100 sélectionnée est calculée à nouveau en prenant en compte les nouveaux paramètres d'éclairage avant d'être ajoutée à la première quantité de lumière partielle reçue par le point P. Cette méthode présente l'avantage d'accélérer grandement les calculs nécessaire à la visualisation de l'impact de la modification de paramètres d'éclairage sur l'éclairage global de l'environnement virtuel 1 tout en minimisant les ressources en puissance de calcul nécessaires. Selon une variante, il est possible de modifier les paramètres d'éclairage d'un groupe de sources de lumière (c'est-à-dire un groupe comprenant au moins deux sources de lumière), par exemple lorsque plusieurs sources de lumière sont associées à une même fonction de distribution goniométrique avec les mêmes paramètres d'éclairage. Selon cette variante, le groupe de sources de lumière est sélectionné et la première quantité de lumière partielle reçue par le point P estimée correspond à la quantité de lumière reçue de chacune des sources de lumière de l'environnement lumineux à l'exception des sources de lumière appartenant au groupe. Puis, tel que cela a été décrit précédemment, la contribution de chacune des sources de lumière du groupe dans l'éclairage du point P est estimée, la somme des contributions étant stockée. Ainsi, lorsque les paramètres d'éclairage du groupe sont modifiés, seules les contributions des sources de lumière dans l'éclairage de l'environnement virtuel sont recalculées pour estimer la première quantité de lumière totale reçue par le point P.
Selon un deuxième exemple de mise en oeuvre de l'invention, Une deuxième source lumineuse 101 est sélectionnée parmi la pluralité de sources lumineuses 100 à 105 de l'environnement lumineux éclairant l'environnement virtuel 1. La deuxième source lumineuse 101 sélectionnée est différente de la première source lumineuse 100 sélectionnée. Puis une deuxième quantité de lumière partielle reçue par le point P 124 est estimée, cette deuxième quantité de lumière partielle reçue par le point P 124 correspondant à la somme des quantités de lumière reçue par le point P de chaque sources de lumière 100, 102, 103, 104 et 105 de l'environnement lumineux à l'exception de la deuxième source lumineuse 101 sélectionnée (c'est-à-dire que la deuxième quantité de lumière partielle reçue par le point P ne prend pas en compte la contribution de la deuxième source lumineuse 101 sélectionnée dans l'éclairage du point P). De manière avantageuse, cette deuxième quantité de lumière partielle reçue par le point P est obtenue en retranchant la quantité de lumière reçue par le point P de la deuxième source lumineuse 101 sélectionnée à la quantité de lumière totale reçue par le point P de l'ensemble des sources de lumière calculée précédemment. Si la quantité de lumière reçue de la deuxième source lumineuse 101 sélectionnée calculée précédemment (c'est-à-dire lors de l'estimation de la première quantité de lumière partielle reçue) a été stockée et conservée en mémoire, alors il n'est pas nécessaire de recalculer la quantité de lumière reçue de cette deuxième source lumineuse 101 sélectionnée. Ce cas de figure présente l'avantage de minimiser les calculs nécessaires et donc d'accélérer les traitements nécessaires à l'estimation de la deuxième quantité de lumière partielle reçue. Dans le cas contraire, il est nécessaire de la recalculer (à partir de la carte d'ombre 111 et de la fonction de distribution goniométrique associées) pour la soustraire à la quantité de lumière totale reçue par le point P estimée précédemment. Une fois la deuxième quantité de lumière partielle reçue par le point P estimée, cette dernière est enregistrée, par exemple dans les enregistrements de quantité de lumière partielle reçue. Une fois la deuxième quantité de lumière partielle reçue par le point P estimée et enregistrée, au moins un des paramètres d'éclairage de la deuxième source lumineuse 101 sélectionnée est modifié. Puis la contribution de la deuxième source lumineuse 101 sélectionnée dans l'éclairage du point P est calculée en prenant en compte le ou les paramètres d'éclairage modifiés, c'est-à-dire que la quantité de lumière reçue par le point P de la deuxième source lumineuse 101 sélectionnée est estimée à nouveau. Cette valeur est alors avantageusement stockée dans un enregistrement ou registre associé, par exemple dans les enregistrements de quantité de lumière partielle reçue. Une fois estimée, la quantité de lumière reçue par le point P 124 de la deuxième source lumineuse 101 sélectionnée est ajoutée à la deuxième quantité de lumière partielle reçue par le point P 124 pour obtenir la deuxième quantité de lumière totale reçue par le point P. Ainsi, de la même manière que pour la première source lumineuse 100 sélectionnée, lorsque l'utilisateur modifie les paramètres d'éclairage de la deuxième source lumineuse 101 sélectionnée pour en étudier l'impact sur le résultat global de l'éclairage de l'environnement virtuel 1, il n'est pas nécessaire de recalculer toutes les quantités de lumière reçues par le point de chacune des sources de lumière 100 à 105 de l'environnement lumineux puisque la deuxième quantité de lumière partielle reçue (correspondant à la quantité de lumière reçue par le point P de toutes les sources de lumière à l'exclusion de la deuxième source lumineuse 101 sélectionnée) est stockée dans une table associée ou dans un registre associé. Pour visualiser le résultat de la modification des paramètres d'éclairage de la deuxième source lumineuse 101 sélectionnée sur l'éclairage complet de l'environnement lumineux, seule la quantité de lumière reçue par le point P de la deuxième source lumineuse 101 sélectionnée est calculée à nouveau en prenant en compte le ou les nouveaux paramètres d'éclairage avant d'être ajoutée à la deuxième quantité de lumière partielle reçue par le point P pour estimer à nouveau la deuxième quantité de lumière totale reçue par le point P 124. Selon une autre variante, la quantité de lumière réfléchie par l'élément de surface associé au point P 124 selon une direction d'observation (ou de réflexion) 21 est estimée en fonction de la quantité de lumière totale reçue par le point P 124, de la normale à l'élément de surface associé au point P et des propriétés de réflectance associées à l'élément de surface associé au point P. Cette quantité de lumière réfléchie par le point P correspond à la quantité de lumière reçue par un observateur 20 regardant l'environnement virtuel 1 selon la direction d'observation 21.
La figure 3 illustre schématiquement un exemple de réalisation matérielle d'un dispositif 3 adapté à l'estimation de la quantité de lumière reçue en un point P d'un environnement virtuel 1 et à la création de signaux d'affichage d'une ou plusieurs images. Le dispositif 3 correspond par exemple à un ordinateur personnel PC, à un ordinateur portable (de l'anglais « laptop »), à une console de jeu ou à une station de travail.
Le dispositif 3 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 31 (ou CPU) ; - une carte graphique 32 comprenant : - plusieurs processeurs de traitement graphique 320 (ou GPUs) ; - une mémoire vive de type GRAM (de l'anglais « Graphical Random Access Memory ») 321 ; - une mémoire non volatile de type ROM (de l'anglais « Read Only Memory ») 36 ; - une mémoire vive ou RAM (de l'anglais « Random Access Memory ») 37 ; - un ou plusieurs dispositifs I/O (de l'anglais « Input/Output » ou en français « Entrée/Sortie ») 34, tels que par exemple un clavier, une souris, une webcam ; et - une alimentation 38. Le dispositif 3 comprend également un dispositif d'affichage 33 de type écran d'affichage relié directement à la carte graphique 32 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 33 à la carte graphique 32 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 3 et est relié au dispositif 3 par un câble transmettant les signaux d'affichage. Le dispositif 3, par exemple la carte graphique 32, comprend un moyen de transmission ou connecteur (non représenté sur la figure 3) 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 32, 36 et 37 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 31 charge et exécute les instructions du programme contenu dans la RAM 37. La mémoire vive 37 comprend notamment : - dans un registre 330, le programme de fonctionnement du microprocesseur 31 chargé à la mise sous tension du dispositif 3, - des paramètres 371 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 37 de la carte graphique 32 associée au dispositif 3 mettant en oeuvre ces étapes. A la mise sous tension et une fois les paramètres 370 représentatifs de l'environnement virtuel chargés en RAM 37, les processeurs graphiques 320 de la carte graphique 32 charge ces paramètres en GRAM 321 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 321 comprend notamment : - dans un registre 3210, les paramètres représentatifs de l'environnement virtuel 1 ; - des valeurs 3211 représentatives de quantités de lumière partielles reçues (par exemple première quantité de lumière partielle reçue, deuxième quantité de lumière partielle reçue, quantité de lumière reçue d'une seule source lumineuse ou d'un groupe de plusieurs sources de lumière) par un ou plusieurs points de l'environnement virtuel 1 ; - des valeurs 3212 représentatives de quantités de lumière totales reçues (par exemple première quantité de lumière totale reçue, deuxième quantité de lumière totale reçue) par un ou plusieurs points de l'environnement virtuel 1 ; - des paramètres 3213 représentatifs des paramètres d'éclairage des sources de lumière de l'environnement lumineux (par exemple puissance d'éclairage, direction d'éclairage, intensité d'éclairage, couleur d'éclairage, etc.) ; et - des valeurs 3214 représentatives de distance séparant les points des objets de l'environnement lumineux éclairés par chaque source lumineuse (c'est-à-dire la carte d'ombre associée à chaque source lumineuse considérée). Selon une variante, une partie de la RAM 37 est allouée par le CPU 31 pour stocker les valeurs 3211, 3212 et 3214 et les paramètres 3213 si l'espace mémoire disponible en GRAM 321 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 37 en passant par le bus 35 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 38 est externe au dispositif 3.
La figure 4 illustre un procédé d'estimation de la quantité de lumière totale reçue en un point P d'un environnement virtuel mis en oeuvre dans un dispositif 3, selon un exemple de mise en oeuvre non limitatif particulièrement avantageux de l'invention. Au cours d'une étape d'initialisation 40, les différents paramètres du dispositif 3 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 41, une première source lumineuse est sélectionnée parmi une pluralité de sources lumineuses, par exemple parmi l'ensemble des sources de lumière formant un environnement lumineux éclairant un environnement virtuel (dit aussi scène 3D) 1. Selon une variante, un groupe comprenant plusieurs sources de lumière est sélectionné, par exemple un groupe comprenant des sources de lumière possédant des paramètres d'éclairage identiques. Puis, au cours d'une étape 42, la quantité de lumière reçue par un point P de chacune des sources de la pluralité de sources de lumières à l'exception de la première source lumineuse sélectionnée est estimée, par exemple en utilisant la carte d'ombre associée à chaque source lumineuse et la fonction de distribution goniométrique décrivant la distribution de la lumière dans le faisceau lumineux issu de chaque source lumineuse considérée. Selon une variante, la distribution de la lumière dans le faisceau lumineux issu d'une ou plusieurs sources de lumière est homogène et constante pour toute direction d'émission de la lumière, c'est-à-dire que la même quantité de lumière est émise pour toutes les directions d'émission de la lumière. Selon une autre variante, la quantité de lumière reçue par le point P de chacune des sources lumineuses est estimée en utilisant la technique de volume d'ombre (de l'anglais « shadow volume ») connue de l'homme du métier ou la technique de lancer de rayon (de l'anglais « ray tracing ») également connue de l'homme du métier à la place de la technique des cartes d'ombre. Puis, au cours d'une étape 43, une première quantité de lumière partielle reçue par le point P est estimée à partir des quantités de lumières reçues par le point P, et estimées à l'étape 42, de chaque source lumineuse sauf la source lumineuse sélectionnée lors de l'étape 41. La première quantité de lumière partielle correspond à la somme des quantités de lumière reçues par le point P de chaque source lumineuse de l'environnement lumineux à l'exception de la première source lumineuse sélectionnée. Cette première quantité de lumière reçue par le point P correspond à la somme des contributions des sources de lumières de l'environnement lumineux dans l'éclairage du point P sans prendre en compte la contribution de la première source lumineuse sélectionnée dans cet éclairage du point P. Cette première quantité de lumière partielle reçue est avantageusement enregistrée dans un registre ou dans une table d'enregistrements stockant les quantités de lumière partielles reçues, c'est-à-dire les valeurs de quantité de lumière reçue ne prenant pas en compte la contribution de l'ensemble des sources de lumière de l'environnement lumineux dans l'éclairage du point P. Puis, au cours d'une étape 44, la quantité de lumière reçue par le point P de la première source lumineuse sélectionnée est estimée en prenant en compte les paramètres d'éclairage courant de la première source lumineuse sélectionnée. Enfin, au cours d'une étape 45, la quantité de lumière totale reçue par le point P de l'ensemble des sources lumineuses est estimée en ajoutant à la première quantité de lumière partielle reçue par le point P la quantité de lumière reçue par le point P de la première source lumineuse sélectionnée estimée lors de l'étape 45.
Les étapes 41 à 45 sont avantageusement réitérées pour l'ensemble des points de l'environnement virtuel, la quantité de lumière totale reçue par chacun des points de l'environnement étant enregistrée et stockée dans une table d'enregistrements, appelée enregistrement des quantités de lumière totales reçues. Selon une variante, les étapes 41 à 45 sont réitérées pour une partie des points de l'environnement virtuel 1. Lors de la modification d'un ou plusieurs paramètres d'éclairage de la première source lumineuse sélectionnée par un utilisateur (par exemple par l'intermédiaire d'une interface utilisateur), seules les étapes 44 et 45 sont exécutées à nouveau en prenant en considération les paramètres d'éclairage modifiés. Cela évite ainsi de devoir recalculer l'ensemble des quantités de lumières reçues par le point P de chaque source lumineuse de l'environnement lumineux, ce qui permet d'économiser du temps de calcul et de la puissance de calcul, accélérant grandement les traitements permettant de visualiser l'impact des modifications apportées aux paramètres d'éclairage sur l'éclairage global de l'environnement virtuel. Une fois les paramètres d'éclairage réglés pour la première source lumineuse sélectionnée, l'utilisateur effectuant la modélisation de l'éclairage peut avantageusement sélectionner une deuxième source lumineuse différente de la première source lumineuse. Les étapes nécessaires à la détermination d'une deuxième quantité de lumière reçue du point P par l'environnement lumineux correspondent avantageusement aux étapes 41, 43, 44 et 45. Il n'est en effet pas nécessaire de réitérer l'étape 42 puisqu'il s'avère avantageux de déterminer directement la deuxième quantité de lumière partielle reçue par le point P en partant de la première quantité de lumière totale reçue par le point p (estimée lors de la précédente étape 45) à laquelle est retranchée la contribution de la deuxième source lumineuse sélectionnée en prenant en compte les paramètres d'éclairage associée à cette deuxième source lumineuse sélectionnée lors des calculs de l'étape 42 précédente (soit en lisant cette information dans un registre si la quantité de lumière reçue par le point P de cette deuxième source lumineuse estimée à l'étape 42 a été stockée, soit en la recalculant). Puis, lors de la nouvelle étape 44, la quantité de lumière reçue de la deuxième source lumineuse sélectionnée est estimée en prenant en compte ses paramètres d'éclairage réglés par l'utilisateur. Enfin, lors de la nouvelle étape 45, une deuxième quantité de lumière totale reçue de l'ensemble des sources de lumières est estimée en ajoutant à la deuxième quantité de lumière partielle reçue estimée lors de la nouvelle étape 43 à la quantité de lumière reçue de la deuxième source lumineuse sélectionnée estimée lors de la nouvelle étape 43. De la même manière que pour la première source lumineuse sélectionnée, seules les étapes 44 et 45 sont à exécuter de nouveau lors d'un changement d'un ou plusieurs paramètres d'éclairage de la deuxième source lumineuse sélectionnée. Cette méthode présente l'avantage de permettre une modification itérative d'un ou plusieurs paramètres d'éclairage d'une ou plusieurs sources de lumière de l'environnement lumineux et de visualiser l'impact de ces modifications répétées sur l'éclairage de l'environnement virtuel sans avoir à recalculer à chaque fois la quantité de lumière reçue par l'environnement virtuel pour l'ensemble des sources de lumière, mais seulement pour la ou les sources de lumières pour lesquelles les paramètres d'éclairage ont été modifiés.
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 la quantité de lumière reçue 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 la quantité de lumière reçue par le 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 la quantité de lumière reçue par tout point P visible depuis un point de vue selon une ou plusieurs directions d'observation est calculée et l'information représentative de la luminance qui en découle est utilisée pour l'affichage des pixels de l'image, chaque pixel correspondant à une direction d'observation. La valeur de luminance calculée pour affichage par chacun des pixels de l'image est recalculée pour s'adapter aux différents points de vue du spectateur. La présente invention peut être utilisée dans des applications de postproduction mais aussi de jeux vidéo pour la création de niveaux avec éclairage pré-calculé par exemple, ou encore dans la conception architecturale, 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 3 décrit en regard de la figure 3 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.
Claims (4)
- REVENDICATIONS1. Procédé d'estimation de la quantité de lumière totale reçue par un point P (124) d'un environnement virtuel (1), ledit environnement virtuel (1) étant éclairé par une pluralité de sources lumineuses (100 à 105), le procédé comprenant les étapes de : F) sélection (41) d'une première source lumineuse (100) parmi la pluralité de sources lumineuses (100 à 105), G) estimation (42) de la quantité de lumière reçue par ledit point P (124) de chaque source lumineuse (101 à 104) de ladite pluralité de sources lumineuses (100 à 105) à l'exception de ladite première source lumineuse (100), caractérisé en ce que ledit procédé comprend en outre les étapes de : H) enregistrement (43) d'une première quantité de lumière partielle reçue par ledit point P (124) correspondant à la somme des quantités de lumières reçues de chaque source lumineuse (101 à 105) de ladite pluralité à l'exception de ladite première source lumineuse (100), I) estimation (44) de la quantité de lumière reçue par ledit point P (124) de ladite première source lumineuse (100), J) estimation (45) d'une première quantité de lumière totale reçue par ledit point P (124) en ajoutant la quantité de lumière reçue de ladite première source lumineuse (100) à ladite première quantité de lumière partielle, seules les étapes D) et E) étant réitérées lors d'une modification d'au moins un paramètre d'éclairage de ladite première source lumineuse (100).
- 2- Procédé selon la revendication 1, comprenant en outre les étapes de : - sélection d'une deuxième source lumineuse (101) parmi ladite pluralité de sources lumineuses (100 à 105), la deuxième source lumineuse (101) sélectionnée étant différente de la première source lumineuse (100), - estimation d'une deuxième quantité de lumière partielle reçue par ledit point P (124) correspondant à la somme des quantités de lumières reçues de chaque source lumineuse (100 et 102 à 105) de ladite pluralité à l'exception de ladite deuxième source lumineuse (101), ladeuxième quantité de lumière partielle reçue étant estimée en retranchant la quantité de lumière reçue de ladite deuxième source lumineuse sélectionnée (101) de la première quantité de lumière totale reçue estimée, - modification d'au moins un paramètre d'éclairage de ladite deuxième source lumineuse (101) puis estimation de la quantité de lumière reçue par le point P (124) de ladite deuxième source lumineuse (101), - estimation d'une deuxième quantité de lumière totale reçue par ledit point P en ajoutant la quantité de lumière reçue de ladite deuxième source lumineuse (101) à ladite deuxième quantité de lumière partielle reçue par le point P (124).
- 3- Procédé selon l'une des revendications 1 à 2, caractérisé en ce que la quantité de lumière reçue de chaque source lumineuse (101 à 105) de ladite pluralité de sources lumineuses est estimée à partir d'une carte d'ombre (110, 111) associée à chaque source lumineuse de ladite pluralité.
- 4- Procédé selon l'une des revendications 1 à 3, comprenant en outre une étape d'estimation de la quantité de lumière réfléchie par un élément de surface associé audit point P (124) en fonction de la quantité de lumière totale reçue par ledit point P et d'une information représentative de la réfléctance associée audit élément de surface associé au point P (124).25
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR1059372A FR2960677A1 (fr) | 2010-11-15 | 2010-11-15 | Procede d’estimation de la quantite de lumiere recue en un point d’un environnement virtuel |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR1059372A FR2960677A1 (fr) | 2010-11-15 | 2010-11-15 | Procede d’estimation de la quantite de lumiere recue en un point d’un environnement virtuel |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| FR2960677A1 true FR2960677A1 (fr) | 2011-12-02 |
Family
ID=44279874
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| FR1059372A Pending FR2960677A1 (fr) | 2010-11-15 | 2010-11-15 | Procede d’estimation de la quantite de lumiere recue en un point d’un environnement virtuel |
Country Status (1)
| Country | Link |
|---|---|
| FR (1) | FR2960677A1 (fr) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5710876A (en) * | 1995-05-25 | 1998-01-20 | Silicon Graphics, Inc. | Computer graphics system for rendering images using full spectral illumination data |
| EP1990776A2 (fr) * | 2007-05-08 | 2008-11-12 | DreamWorks Animation LLC | Système et procédé pour le rendu de graphiques informatiques utilisant un illuminateur d'ombres |
-
2010
- 2010-11-15 FR FR1059372A patent/FR2960677A1/fr active Pending
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5710876A (en) * | 1995-05-25 | 1998-01-20 | Silicon Graphics, Inc. | Computer graphics system for rendering images using full spectral illumination data |
| EP1990776A2 (fr) * | 2007-05-08 | 2008-11-12 | DreamWorks Animation LLC | Système et procédé pour le rendu de graphiques informatiques utilisant un illuminateur d'ombres |
Non-Patent Citations (1)
| Title |
|---|
| J.S. NIMEROFF ET AL: "Efficient Re-rendering of Naturally IlluminatedEnvironments", FIFTH EUROGRAPHICS WORKSHOP ON RENDERING, 1994, pages 1 - 15, XP002654906 * |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| FR2965652A1 (fr) | Procede d’estimation de la quantite de lumiere recue en un point d’un environnement virtuel | |
| US10936909B2 (en) | Learning to estimate high-dynamic range outdoor lighting parameters | |
| CN108986195B (zh) | 一种结合环境映射和全局光照渲染的单镜头混合现实实现方法 | |
| EP1982310B1 (fr) | Procede de synthese d'une image virtuelle par lancer de faisceaux | |
| FR2988891A1 (fr) | Procede d'estimation de niveau d'opacite dans une scene et dispositif correspondant | |
| CN114549730A (zh) | 多光源场景渲染的光源采样权重确定方法及相关设备 | |
| CN112785675B (zh) | 使用修改的多重重要性采样渲染图像 | |
| FR2966623A1 (fr) | Procede d’estimation de l’occultation dans un environnement virtuel | |
| US11574449B1 (en) | Methods and systems for off-device image frame rendering in augmented reality applications | |
| CN101617343A (zh) | 快速渲染三维场景的方法和系统 | |
| EP2504816B1 (fr) | Procede d'estimation de diffusion de la lumiere | |
| FR2964775A1 (fr) | Procede d'estimation de l'occultation dans un environnement virtuel | |
| CN116758208A (zh) | 全局光照渲染方法、装置、存储介质及电子设备 | |
| Bornstein et al. | New Dimensions in Conservation Imaging: Combining Photogrammetry and Photometric Stereo for 3D Documentation of Heritage Artefacts | |
| FR2988502A1 (fr) | Procede pour representer un milieu participant dans une scene et dispositif correspondant | |
| EP2502207A2 (fr) | Procede d'estimation de diffusion de la lumiere | |
| FR2974217A1 (fr) | Procede d’estimation d’une information representative d’une hauteur | |
| EP2502206A2 (fr) | Procede d'estimation de diffusion de la lumiere | |
| EP2589025A2 (fr) | Procede d'estimation de diffusion de la lumiere | |
| FR2960677A1 (fr) | Procede d’estimation de la quantite de lumiere recue en un point d’un environnement virtuel | |
| Delalandre et al. | Transmittance function mapping | |
| FR2964776A1 (fr) | Procede d’estimation de diffusion de la lumiere dans un milieu homogene | |
| WO2010094619A1 (fr) | Procede d'estimation de diffusion de la lumiere | |
| WO2008148818A1 (fr) | Generateur de code source pour une carte graphique | |
| Tsopouridis et al. | Traditional and Neural Order-Independent Transparency |