Procédé général de détermination de liste d'éléments potentiellement visibles par région pour des scènes 3D de très grandes tailles représentant des villes virtuelles d'altitudes variables
La présente invention concerne le domaine technique général de l'imagerie de synthèse, et plus particulièrement le domaine de la représentation de scène 3D.
PRESENTATION GENERALE DE L'ART ANTERIEUR
Le but général de l'invention est de proposer un procédé de calcul de visibilité permettant de déterminer des listes d'objets potentiellement visibles par région pour des scènes 3D de très grandes tailles représentant des villes virtuelles d'altitudes variables. En imagerie de synthèse, Ie rôle du calcul de visibilité est de déterminer quels sont les objets d'une scène 3D qui sont visibles depuis un point et une direction d'observation.
Historiquement le calcul de visibilité a toujours joué un rôle crucial pour des raisons de performance d'affichage des scènes 3D. En effet, lorsqu'une scène 3D est affichée, certaines parties ne sont pas visibles : les parties situées hors du champ de vue par exemple, ou encore les objets, qui sont cachés par des objets opaques situés devant.
Afin d'accélérer l'affichage d'une scène 3D, il faut donc éviter le dessin inutile de ces parties « cachées ». Ainsi, il est nécessaire d'éliminer le plus tôt possible ces parties des procédés de traitement qui vont générer (dessiner) la scène 3D.
C'est la raison pour laquelle on applique souvent à la scène un prétraitement pour déterminer ce qui sera au final visible dans une vue donnée de celle-ci. Ce prétraitement est un procédé de calcul de visibilité. Il permet d'obtenir une liste des objets de la scène qui seront visibles dans une vue donnée. Seuls les objets de cette liste seront dessinés par les moyens
de traitement et affichés sur les moyens d'affichage, ce qui est plus rapide que de dessiner l'ensemble des objets d'une scène.
De nombreux procédés de calcul de visibilité permettant l'élimination d'objets non visibles ont ainsi été proposés dans les années 70, en particulier le plus célèbre et le plus utilisé est le procédé du z-buffer [3]. Ce procédé particulièrement performant se trouve implémenté sur toutes les cartes accélératrices 3D modernes.
Depuis quelques années, ces procédés de visibilité ont repris de l'intérêt en raison de la croissance de la complexité des bases de données 3D qui rend impossible l'utilisation des procédés classiques de type z-buffer.
Dès lors, dans une optique client-serveur temps réel, il devient nécessaire d'utiliser des procédés (off ou on-line) permettant en fonction d'un point ou d'une zone d'observation de rejeter une partie de la scène avant d'utiliser les procédés classiques du type z-buffer permettant le calcul de l'image de synthèse.
Dans les procédés de calcul de visibilité, on différencie les travaux sur la visibilité exacte et les travaux sur la visibilité conservative.
Un procédé de calcul de visibilité exacte a pour objectif de déterminer à une position et une direction d'observation la liste exacte des objets visibles. Cette technique utilise en général une structure appelée un graphe d'aspect.
Un procédé de calcul de visibilité conservative recherche à une position ou à une zone d'observation la plus petite liste d'objets potentiellement visibles que l'on nommera dans la suite LOPV. La liste des objets visibles est incluse dans la liste des objets potentiellement visibles.
Dans la suite on s'intéressera particulièrement aux procédés traitant la visibilité conservative mieux adaptés à la navigation dans les grands environnements de type urbain. En effet, le calcul de visibilité exacte d'une cellule de vue est très complexe, et donc lourd à mettre en oeuvre.
On différencie également les travaux sur la visibilité qui s'effectuent dans l'espace objet 3D de la scène, de ceux qui s'effectuent dans l'espace image discrétisé 2D obtenu par projections des objets 3D de la scène sur le plan image. Pour des raisons de performance, on s'intéressera uniquement à la première catégorie.
Il a déjà été proposé un certain nombre de procédés permettant d'établir des listes d'objets potentiellement visibles afin d'éliminer les objets non visibles. Un premier procédé de calcul de visibilité permettant d'établir des listes d'objets potentiellement visibles est basé sur la technique d'élimination des faces cachées. Cette technique consiste à rejeter les faces des objets dont la normale a un angle compris entre [-Pi/2; Pi/2] avec une direction d'observation donnée [1 , 4, 8, 9, 13, 16]. Un second procédé de calcul de visibilité permettant d'établir des listes d'objets potentiellement visibles est basé sur la technique utilisant la pyramide de vue. Cette technique part de la constatation que tous les objets situés à l'extérieur de cette pyramide à un instant donné sont rejetés lors de la phase de rendu. Plusieurs procédés utilisant des structurations hiérarchiques de la scène ont été couplées à ce procédé.
Un troisième procédé de calcul de visibilité part de la propriété suivante : tester l'occultation de chaque polygone étant trop lent, il est plus efficace d'utiliser des techniques basées sur l'utilisation de structures hiérarchiques de la scène et de volumes englobants [9]. Les trois procédés qui viennent d'être présentés permettent de rejeter une partie de la scène de la phase de rendu 3D.
Cependant, pour des raisons de performance, ces procédés ne sont pas applicables à une utilisation temps réel pour des bases de données trop complexes. Le procédé de la présente invention est utilisable dans différentes applications 3D, mais est particulièrement adapté aux applications proposant
une navigation 3D au niveau du sol dans une scène 3D représentant une ville virtuelle.
Dans ce type d'applications, la propriété la plus importante est qu'à une position d'observation donnée, seule une très faible partie des bâtiments constituant la scène 3D est visible en raison des occultations inter-bâtiments.
Dans la suite on s'intéressera particulièrement aux différents procédés mettant en œuvre le principe d'occultation inter-objets.
Un premier procédé de calcul de visibilité mettant en œuvre le principe d'occultation inter-objets est le procédé de Coord et Teller [5, 6]. Ce procédé est basé sur l'utilisation d'objets occultants convexes de grandes dimensions.
Ce procédé détermine des plans d'occultation valides par rapport à un certain déplacement de l'observateur. Plusieurs plans sont définis par rapport à un ensemble de points d'observation. Il existe plusieurs évolutions de ce procédé basées sur différentes structurations de la scène 3D. D'autres procédés de calcul de visibilité mettant en œuvre le principe d'occultation inter-objets ont également été proposés. Ces procédés sont basés sur la propriété des volumes d'occultation (volume d'ombre) [2, 11] générés par un point d'observation et le contour de certains objets qui occultent le reste de la scène. En effet, à un point d'observation donné, on peut définir un volume d'ombre centré sur le point d'observation et s'appuyant sur le contour d'objets occultants garantissant que tout objet inclus dans ce volume d'ombre ne sera pas visible depuis l'observateur. Plusieurs procédés mixant des structurations de scène et cette propriété ont été proposés. Concernant le choix des objets occultants, plusieurs stratégies dynamiques ou statiques ont également été proposées.
Les procédés ci-dessus présentés calculent la visibilité par rapport à un point d'observation. Cela impose, lors du déplacement de l'utilisateur dans le monde 3D, de recalculer la visibilité à chaque nouvelle position.
Ces procédés sont donc lourds à mettre en œuvre et ne sont pas applicables à une utilisation temps réel pour des bases de données trop complexes.
Une autre approche dans le calcul de visibilité consiste à réaliser une partition de l'espace 3D de navigation et pour chaque élément de la partition, appelé cellule de vue, de. calculer la liste des objets potentiellement visibles.
Ainsi, plutôt que de réaliser un calcul de visibilité à chaque position de l'utilisateur, ce calcul de visibilité est réalisé pour des zones, ou cellules de vue, de l'espace 3D. Dans la suite on s'intéressera particulièrement à ce type de procédé de calcul de visibilité permettant de déterminer des listes d'objets potentiellement visibles par région (c'est-à-dire par cellule de vue).
Comme dans le procédé de Coord et Teller on trouve des procédés sélectionnant des objets occultants convexes [15] de grande dimension par rapport à la cellule de vue.
Cependant, la contrainte forte sur le choix des objets occultants pris en compte fait que ces procédés ne sont pas des plus intéressants dans les cas réels.
Un autre procédé est proposé par Durand et Al. Ce procédé [7, 10, 14, 19] teste la non visibilité d'objets en projetant les objets occultants et les objets sur un plan 2D et en vérifiant l'inclusion des objets projetés sur les projections des objets occultants.
Cependant, ce procédé est difficile à mettre en œuvre en raison de l'importance du choix des plans de projections et des objets occultants pris en compte.
On peut également citer un procédé [12] calculant dynamiquement des objets occultants virtuels. L'intérêt de ce type de procédé est de prendre en compte la fusion de volumes d'ombre des objets occultants.
Récemment Peter Wonka [17, 18] a proposé un procédé de calcul de visibilité très prometteur qui utilise les caractéristiques du z-buffer câblé des cartes modernes.
Ce procédé est utilisable par exemple sur des bases de données urbaines, c'est-à-dire des scènes 3D représentant des villes virtuelles. Ces scènes comprennent des objets qui sont des bâtiments sur un terrain.
Ce procédé suppose que la base de données urbaine est plane, c'est- à-dire que le terrain sur lequel reposent les bâtiments est plat. Ce procédé suppose également que chaque bâtiment est représenté par un modèle 2D1A
Le modèle 2D1/4 d'un bâtiment comprend une altitude (nulle par défaut), une empreinte au sol définie par une liste de points, et une hauteur. A partir de ces informations (empreinte E, altitude A, hauteur H), il est possible, comme illustré à la figure 1 , de dessiner un bâtiment 3D en extrudant un prisme 24 à l'altitude A, la base du prisme 24 correspondant à l'empreinte E et la hauteur du prisme étant égale à la hauteur H du bâtiment.
Le procédé de Peter Wonka comprend différentes étapes : - une première étape consiste à réaliser une partition de l'espace navigable en cellule de vue,
- une seconde étape consiste à calculer des hauteurs minimales visibles afin de déterminer une carte des hauteurs minimales visibles par rapport à chaque cellule de vue, et - une troisième étape consiste à tester la visibilité des objets de la scène par rapport à chaque cellule de vue en fonction de la carte des hauteurs minimales visibles de la cellule de vue.
Le calcul de la carte des hauteurs minimales visibles garantit qu'un objet ne sera pas visible depuis une cellule de vue si sa hauteur est inférieure aux hauteurs minimales visibles de la région où il se situe. Cette carte est obtenue par un quadrillage de la surface occupée par l'environnement urbain et contenant pour chaque rectangle r la hauteur minimale visible Hmin(r) dans tout le rectangle par rapport à la cellule de vue.
Un objet entièrement inclus dans un rectangle r et de hauteur inférieure à Hmin(r) ne sera donc pas vu depuis la cellule de vue. Cette carte est représentée à l'aide d'une matrice 2D et est appelée matrice de visibilité.
Dans la suite, les rectangles seront appelés pixels en raison de l'utilisation de techniques d'imagerie graphique 3D pour accélérer le traitement.
Le calcul de la carte des hauteurs minimales visibles utilise les ressources des cartes graphiques 3D et lie la dimension de la zone 2D de calcul des hauteurs minimales visibles au nombre de pixels de la carte graphiques 3D et à la surface recouverte par un pixel.
Par exemple pour une carte graphique de [1024, 768] pixels et une valeur de recouvrement de 1 mètre, on obtient une zone 2D de calcul des hauteurs minimales visibles de 1024*768 mètres carrés. Donc la carte des hauteurs minimales visibles recouvrira 1024*768 mètres carrés de la scène urbaine 3D.
Lors du calcul de la carte des hauteurs minimales visibles, le procédé impose de réduire les objets occultants d'une valeur d'érosion notée « e » afin de limiter les erreurs liées à la méthode utilisée pour calculer les hauteurs minimales visibles de ladite carte. En raison de la modélisation
2D1/2 des bâtiments, l'opération d'érosion est réalisée sur l'empreinte au sol des bâtiments. La valeur d'érosion e (correspondant à l'amplitude d'érosion) est liée à la valeur de recouvrement (correspondant à la taille d'un pixel) notée k par la relation suivante : e >k / +Jl. En pratique pour prendre en compte les phénomènes d'occultation, la valeur d'érosion doit être faible.
En effet, si la valeur d'érosion est forte, les objets occultants seront trop érodés ou réduits, et donc les phénomènes d'occultation ne seront pas pris en compte. Pour chaque cellule de vue, le test de visibilité sur les objets de Ia scène 3D est le suivant.
Pour les objets contenus dans la zone recouverte par la carte des hauteurs minimales visibles, le test de visibilité se fait par comparaison entre la hauteur d'une boîte englobante de l'objet et les hauteurs minimales visibles des pixels ayant une intersection avec l'empreinte au sol de l'objet.
Pour les objets qui se trouvent en dehors de la zone recouverte par la carte des hauteurs minimales visibles, le test de la visibilité est illustré à la figure 2. Wonka propose la modification suivante de son procédé : les frontières de la carte des hauteurs minimales visibles 1 permettent de définir une horizon de visibilité 4. Cette ligne d'horizon 4 nous assure que tout objet
3 extérieur à la région recouverte par la carte des hauteurs minimales visibles 1 et dont la projection 5 est sous la ligne d'horizon 4 n'est pas vu depuis la cellule de vue.
Le procédé de Peter Wonka ne gère donc pas l'occultation inter- bâtiment qui se situe à l'extérieur de la zone de recouvrement, c'est-à-dire à l'extérieur de la zone recouverte par la carte des hauteurs minimales visibles.
Le procédé de Wonka présente les inconvénients suivants : i. Le procédé ne prend pas en compte les données terrain
En effet, le procédé de Peter Wonka suppose que le terrain est plat. Ceci implique que le procédé de Peter wonka ne prend en compte les données terrain ni pour les phénomènes d'occultation, ni pour les tests de visibilité.
Or en pratique, le terrain est très souvent en relief. Ainsi, certaines parties du terrain peuvent occulter des zones de la scène. Par exemple, un utilisateur qui se trouve devant une colline ne voit pas ce qui se trouve derrière la colline.
Par ailleurs, certaines zones de la scène peuvent être visibles depuis certaines parties en relief du terrain. Par exemple, le nombre de bâtiments visibles pour un utilisateur qui se trouve au sommet d'une colline sera plus important que le nombre de bâtiments visibles pour un utilisateur qui se trouve au fond d'un trou. ii. Le procédé ne prend pas en compte les bâtiments d'altitudes différentes.
En effet, comme précédemment décrit, le procédé de Peter Wonka suppose que le terrain est plat, et donc que les bâtiments sont tous à la même altitude.
iii. Le procédé ne prend pas en compte les données de type mobilier urbain, la végétation, les panneaux de signalisation et les bâtiments spécifiques.
En effet, le procédé de Peter Wonka ne prend en compte que les bâtiments représentés avec un modèle 2D1A Ainsi, il ne prend pas en compte les objets de type mobilier urbain comme les abris de bus, les bancs, les panneaux publicitaires ou les panneaux de signalisation. Il ne prend pas non plus en compte la végétation comme les arbres, ou les bosquets. Pour plus de réalisme une base de donnée urbaine devrait prendre en compte toutes ces données.
Le procédé de Peter Wonka ne prend pas non plus en compte les bâtiments spécifiques, c'est-à-dire des bâtiments modélisés à l'aide d'autres modèles que le modèle 2D1A En effet, pour des types de bâtiments comme des églises ou des monuments, le modèle 2 D/4 n'est pas adapté pour la visualisation. Pour représenter tous ces bâtiments spécifiques, on utilise par exemple un modèle facette 3D.
Pour plus de réalisme il faudrait prendre en compte ces bâtiments spécifiques pour les tests de visibilité. iv. La zone de recouyrement de la carte des hauteurs minimales visibles ne couyre qu'une partie de la ville.
En effet, pour ne pas trop réduire les faces des bâtiments occultants, e est en général égale à un mètre, ce qui impose que la valeur de recouvrement d'un pixel (k) soit inférieure ou égale à ^β mètre. En effet, les valeurs k et e sont liées par la relation e ≥k/ y/2. Donc si on suppose une valeur d'érosion e égale à un mètre et une carte graphique de 1280*1024 pixels, alors la carte des hauteurs minimales visibles recouvrira au maximum 1817*1454 mètres carrés, or dans les cas réels, les villes sont de l'ordre 8km*8km.
Pour recouvrir une zone plus grande il faut augmenter la valeur de k, ce qui implique une augmentation de l'amplitude d'érosion. Par exemple pour k égal à
e doit être supérieure ou égale à 2 mètres.
Dès lors, plus la valeur de e est grande et plus les faces occultantes seront réduites et donc moins le phénomène d'occultation sera pris en en compte. Par exemple, une amplitude d'érosion de 2 mètres enlève 4 mètres par face de bâtiment. v. Le procédé de Wonka ne prend pas en compte l'occultation inter¬ bâtiment sur toute la base de données urbaine.
En effet, comme précédemment décrit, l'occultation inter-bâtiment n'est pas prise en compte en dehors de la zone recouverte par la carte des hauteurs minimales visibles. vi. L'opération d'érosion engendre de la visibilité.
En effet un des inconvénients de l'opération d'érosion est que cette opération mathématique engendre de la visibilité entre les bâtiments ayant au moins une arrête en commun, même si cette visibilité n'existe pas dans la base de donnée initiale. Ainsi, comme représenté à la figure 3, un objet 6 qui est situé, par rapport à la cellule de vue courante, derrière deux bâtiments 7 et 8 ayant une arrête 9 en commun, et qui est non visible avant l'opération d'érosion (étape
10) deviendra visible après l'opération d'érosion (étape 11). vii. La taille de la liste des objets potentiellement visibles augmente de façon exponentielle en prenant des bases de données urbaines de taille croissante.
En effet, l'occultation inter-bâtiment n'est pas prise en compte à l'extérieur de la zone recouverte par la carte des hauteurs minimales visibles.
Ainsi, tout objet 3 situé en dehors de Ia zone recouverte par la carte 1 , et dont la projection 5 sur l'horizon de visibilité 4 a une hauteur supérieure aux hauteurs minimales visibles sera considéré comme potentiellement visible. Or, celui-ci peut être caché par un autre bâtiment situé à l'extérieur de la zone recouverte par la carte 1.
Par exemple, si on suppose, comme illustré à la figure 4, quatre bâtiments 12, 13, 14, 15 de même largeur et un point d'observation 18 alignés selon une direction d'observation, les hauteurs des bâtiments 12, 13,
14, 15 étant respectivement de 5, 25, 20 et 10 mètres du plus proche au plus éloigné du point d'observation 18.
Si on suppose également que ces quatre bâtiments 12, 13, 14, 15 sont situés à l'extérieur de la zone 16 recouverte par la carte 1 , et que la hauteur de l'horizon de visibilité 17 est de 6 mètres.
Alors le bâtiment 12 (de 5 mètre) le plus proche du point de vue sera considéré comme caché, et les trois bâtiments 13, 14, 15 suivants (de 25, 20 et 10 mètres) seront considérés comme potentiellement visibles, leurs projections sur l'horizon de visibilité 17 ayant des hauteurs supérieures à la hauteur de l'horizon de visibilité 17 (6 mètres).
Ces trois bâtiments 13, 14, 15 feront donc partie de la liste des objets potentiellement visibles bien que deux d'entre eux ne soient pas visibles (les bâtiments 14, 15 de 20 et 10 mètre étant cachés par le bâtiment 13 de 25 mètres). Un but de la présente invention est de fournir un procédé général de détermination de liste d'objets potentiellement visibles par région pour des scènes 3D de très grandes tailles représentant des villes virtuelles d'altitudes variables permettant de pallier la plupart des inconvénients précités.
PRESENTATION DE L1INVENTION
L'invention concerne un procédé de détermination de listes d'objets potentiellement visibles dans une scène 3D comprenant des objets sur un terrain d'altitude variable et dans laquelle un utilisateur est susceptible de se déplacer virtuellement sur une zone de déplacement correspondant à l'ensemble des zones du terrain non recouvertes par les objets, caractérisé en ce qu'il comprend les étapes consistant à :
- créer des objets terrain correspondant chacun à une partie du terrain, - partitionner la zone de déplacement de l'utilisateur en un réseau de cellules de vue,
- déterminer, pour chaque cellule de vue, une liste d'objets potentiellement visibles par l'utilisateur depuis la cellule de vue, ladite liste étant déterminée en testant la visibilité des objets de la scène et des objets terrain créés. La présente invention permet ainsi de traiter les cas d'environnements urbains réels pour lesquels l'effet du relief naturel est loin d'être négligeable. La création de pavés terrain permet de prendre en compte l'occultation engendrée par le relief du terrain. La présente invention permet de prendre en compte des données urbaines complémentaires (mobilier urbain, végétation, signalisation et donnée terrain) dans la visibilité. Le procédé de la présente invention est totalement indépendant des ressources mémoire par rapport à la taille des bases puisque la taille des rectangles du quadrillage est adaptée suivant les ressources mémoire disponible pour le calcul de la carte des hauteurs minimales visibles. Certains procédés de calcul de visibilité peuvent être très efficaces mais ils nécessitent un stockage en mémoire local d'une structure de données décrivant l'intégralité de la scène. Ce n'est pas le cas du procédé de la présente invention puisque la seule structure de donnée qui doit être en mémoire vive est la matrice de visibilité (ou carte des hauteurs minimales visibles) dont la taille est fixée à l'avance, indépendamment de la taille de l'environnement urbain à traiter. De plus, cette structure de données est stockée dans la mémoire de la carte graphique et non dans la mémoire centrale de l'ordinateur.
Des aspects préférés, mais non limitatifs du procédé de selon l'invention sont les suivants : le procédé comprend en outre une étape consistant à :
- calculer une altitude minimale zmin du terrain afin de définir un plan Pmin à l'altitude minimale zmin ; l'étape consistant à créer des objets terrain comprend les sous étapes consistant à :
- effectuer un quadrillage en M rectangles du plan Pmin sur toute la surface du terrain,
- associer un prisme appelé objet terrain à chaque rectangle du quadrillage, le prisme étant défini par une base, jαne altitude et une hauteur, la base du prisme étant le rectangle, l'altitude du prisme étant égale à l'altitude minimale de la surface du terrain ayant une intersection non nulle avec le prisme, et la hauteur du prisme étant égale à l'altitude maximale de la surface du terrain ayant une intersection non nulle avec le prisme ; l'étape consistant à partitionner la zone de déplacement de l'utilisateur en un réseau de cellules de vue comprend les sous étapes consistant à :
- translater dans le plan Pmin la zone de déplacement de l'utilisateur, - partager le translaté de la zone de déplacement en un réseau de triangle,
- extruder un prisme représentant la cellule de vue sur chaque triangle, la hauteur de la cellule de vue étant égale à une hauteur de référence à laquelle on ajoute la valeur maximale des hauteurs des objets terrain ayant une intersection non nulle avec le prisme ; la scène comprend des objets génériques définis par une empreinte, une altitude et une hauteur, et en ce que le procédé comprend en outre une étape de transformation des objets génériques, et des objets terrain en objets occultants modélisés 2D1/2 en : - prolongeant verticalement les faces des objets génériques jusqu'à l'altitude zmin, chaque objet occultant ainsi obtenu étant défini par une empreinte correspondant à la projection de l'objet générique sur le plan Pmin, une altitude égale à zmin et une hauteur égale à la somme de l'altitude et de la hauteur de l'objet générique, - prolongeant verticalement les bases des objets terrain jusqu'à l'altitude zmin, chaque objet occultant ainsi obtenu étant défini par
une empreinte correspondant à la projection de l'objet terrain sur le plan Pmin, une altitude zmin et une hauteur égale à l'altitude de l'objet terrain dont il est le prolongement ; la scène comprend des objets spécifiques modélisés par un assemblage de polygones, et en ce que le procédé comprend en outre une étape consistant à transformer les objets spécifiques, les objets génériques et les objets terrain en objets prolongés modélisés 2D1/2, ladite étape comprenant :
- la définition d'un volume englobant pour chaque objet spécifique de la scène,
- la transformation des objets génériques, des objets terrain et des volumes englobants en objets prolongés modélisés 2D1/4, ladite transformation consistant à prolonger les faces des objets génériques, des objets terrain et des volumes englobants jusqu'au plan Pmin, chaque objet prolongé ainsi obtenu étant défini par une empreinte égale à la projection sur le plan Pmin de l'objet générique, de l'objet terrain ou du volume englobant qui lui est associé, par une altitude égale à zmin et une hauteur égale à la somme de l'altitude et de la hauteur de l'objet générique, de l'objet terrain ou du volume englobant qui lui est associé ; l'étape consistant à déterminer, pour chaque cellule de vue, une liste d'objets potentiellement visibles comprend les sous étapes consistant à :
- calculer une première carte de hauteurs minimales visibles, ladite carte étant obtenue en : o effectuant un quadrillage en N rectangles du plan Pmin, la surface occupée par chaque rectangle étant fonction d'une valeur de recouvrement k1 choisie de sorte que le quadrillage recouvre toute la surface du terrain, o sélectionnant des faces occultantes, notamment parmi les faces des objets occultants, et en érodant les faces occultantes
sélectionnées par une valeur d'érosion e1 proportionnelle à la valeur de recouvrement k1 , o calculant pour chaque rectangle la hauteur minimale visible depuis la cellule de vue, - déterminer une liste temporaire d'objets potentiellement visibles en comparant, pour chaque objet de la scène et chaque objet terrain, la hauteur de l'objet prolongé associé et les hauteurs minimales de la première carte des rectangles ayant une intersection avec l'empreinte de l'objet prolongé, - calculer une deuxième carte des hauteurs minimales visibles, ladite carte étant obtenue en : o effectuant un quadrillage en N rectangles du plan Pmin sur une partie du terrain, ladite partie incluant la base de la cellule de vue et la surface occupée par chaque rectangle étant fonction d'une valeur de recouvrement k2 inférieure à k1 , o sélectionnant les faces occultantes, notamment parmi les faces des objets occultants, et en érodant les faces occultantes sélectionnées par une valeur d'érosion e2 proportionnelle à la valeur de recouvrement k2, o calculant pour chaque rectangle la hauteur minimale visible depuis la cellule de vue,
- déterminer la liste des objets potentiellement visibles en comparant, pour chaque objet de la liste temporaire d'objets potentiellement visibles, la hauteur de l'objet prolongé associé et les hauteurs minimales de la deuxième carte des rectangles ayant une intersection avec l'empreinte de l'objet prolongé ; le procédé comprend en outre une étape de fusion d'objets occultants connexes afin d'obtenir des ensembles connexes, ladite étape de fusion étant réalisée préalablement à l'étape de sélection des faces occultantes, et consistant à :
- déterminer des groupes d'objets occultants vérifiant des conditions de connexité,
Puis pour chaque groupe d'objets occultants connexes, déterminer un ensemble connexe en : - supprimant des empreintes des objets les arrêtes qu'elles ont en commun afin d'obtenir une empreinte unique qui est assignée à l'ensemble connexe,
- déterminer, parmi les objets du groupe, celui dont la hauteur est la plus petite et assigner sa hauteur à l'ensemble connexes ; - les conditions de connexité à vérifier par un ensemble d'objets sont que leurs empreintes aient au moins deux sommets consécutifs en commun ; la valeur de recouvrement k1 est calculée en utilisant la relation : k1 ≥max (Δx/Nx, Δy/Ny). Où :
- Δx et Δy sont la largeur et la longueur du terrain,
- Nx, Ny sont le nombre de rectangles utilisables en ligne et en colonne pour la carte des hauteurs minimales visibles, de sorte que k1 est supérieure ou égale au maximum entre le rapport de la largeur du terrain par le nombre de rectangles utilisables en ligne, et le rapport de longueur du terrain par le nombre de rectangles utilisables en colonne, et en ce que la valeur d'érosion e1 est déduite du calcul précédent en utilisant la relation liant la valeur d'érosion el à la valeur de recouvrement k1 : el ≥k1/\2 ; la valeur d'érosion e2 est choisie sensiblement égale à 1 mètre, et en ce que la valeur de recouvrement k2 est déduite de la valeur de e2 choisie en utilisant la relation liant la valeur d'érosion e2 à la valeur de recouvrement k2 : a >k2Λβ ;
l'étape consistant à sélectionner des faces occultantes, notamment parmi les faces des objets occultants (300, 301 ), consiste à :
- sélectionner l'ensemble des faces des objets occultants (300, 301), - sélectionner l'ensemble des faces des ensembles d'objets occultants connexes ; l'étape consistant à éroder les faces occultantes par une valeur d'érosion e consiste à éroder les empreintes au sol des objets occultants et des ensembles d'objets occultants connexes par la valeur d'érosion e ;
L'invention concerne également un système apte à déterminer des listes d'objets potentiellement visibles dans une scène 3D comprenant des objets sur un terrain et dans laquelle un utilisateur est susceptible de se déplacer virtuellement sur une zone de déplacement correspondant à l'ensemble des zones du terrain non recouvertes par les objets, caractérisé en ce qu'il comprend :
- des moyens aptes à créer des objets terrain correspondant chacun à une partie du terrain,
- des moyens aptes à partitionner la zone de déplacement de l'utilisateur en un réseau de cellules de vue,
- des moyens aptes à déterminer, pour chaque cellule de vue, une liste d'objets potentiellement visibles par l'utilisateur depuis la cellule de vue, ladite liste étant déterminée en testant la visibilité des objets de la scène et des objets terrain créés.
PRESENTATION DES FIGURES
D'autres caractéristiques, buts et avantages de la présente invention ressortiront encore de la description qui suit, laquelle est purement illustrative et non limitative et doit être lue en regard des dessins annexés, sur lesquels :
- la figure 1 est une vue en perspective d'un objet modélisé 2OV2 ;
- la figure 2 est une vue en perspective illustrant un test de visibilité du procédé de Peter Wonka appliqué à un objet d'une scène, l'objet étant situé à l'extérieur de la zone couverte par la carte des hauteurs minimales visibles ; - la figure 3 est une vue de face de trois objets avant et après une opération d'érosion ;
- la figure 4 est une vue de face illustrant le test de visibilité du procédé de Peter Wonka appliqué à quatre objets d'une scène 3D, les quatre objets étant situés à l'extérieur de la zone couverte par la carte des hauteurs minimales visibles ;
- la figure 5 est une vue en perspective d'une scène sur laquelle se trouve un utilisateur, ladite scène comprenant une face occultante d'un objet occultant, un objet visible et un objet non visible ;
- la figure 6 est une vue en perspective d'une scène comprenant des objets sur un terrain d'altitude variable ;
- Ia figure 7 est une vue de face d'une scène comprenant des objets sur un terrain d'altitude variable ;
- la figure 8 est une illustration d'une étape de triangulation et comprend des vues de dessus d'une scène avant et après triangulation, et une vue en perspective d'une cellule de vue obtenue en extrudant un prisme sur une partition triangulaire obtenue par triangulation ;
- la figure 9 est une vue en perspective d'une cellule de vue chevauchant deux objets terrain ; - la figure 10a est une vue de face d'objets occultants modélisés
2DY2 obtenus à partir d'objets génériques de la scène et des objets terrain ;
- la figure 10b est une vue de face d'objets prolongés modélisés 2DVz obtenus à partir des objets de la scène et des objets terrain ; - la figure 11 est une première illustration de l'étape de fusion d'objets occultants connexes et comprend une vue de dessus de
trois empreintes d'objets occultants connexes, et une vue de dessus d'une empreinte résultant de la fusion des empreintes des trois objets occultants connexes ;
- la figure 12 est une seconde illustration de l'étape de fusion d'objets occultants connexes et comprend une vue de face de trois objets occultants connexes, et une vue de face de l'objet résultant de la fusion des trois objets occultants connexes ;
- la figure 13 est une vue de dessus d'une scène sur laquelle se trouve un utilisateur et deux faces occultantes d'objets occultants ; - la figure 14 est un organigramme illustrant les différentes étapes du procédé.
DESCRIPTION DE L'INVENTION
Un but de la présente invention est de fournir un procédé général de détermination de liste d'objets potentiellement visibles par région pour des scènes 3D de très grandes tailles représentant des villes virtuelles d'altitudes variables.
Ainsi, le procédé de calcul de visibilité présenté ci-après permet de déterminer des listes d'objets potentiellement visibles dans des scènes urbaines de taille réelle de l'ordre de 8km*8km comprenant des objets, représentant notamment des bâtiments, sur un terrain d'altitude variable. De plus ce procédé prend en compte les effets du terrain pour les calculs d'occultations et de visibilité. Enfin le procédé intègre pour les tests de visibilité tout type d'objet (mobilier urbain, végétation ...).
Pour cela, les inventeurs sont partis de la constatation qu'au niveau du sol très peu d'objets d'une scène comme du mobilier urbain sont visibles en raison de l'occultation inter-objet.
En effet, comme représenté à la figure 5, en un point d'observation 20 situé proche d'une face 21 , un grand volume 22 de la scène 3D, appelé volume d'ombre, n'est pas visible depuis le point d'observation 20.
Ainsi, un objet 23 inclus strictement dans ce volume d'ombre 22 ne sera pas visible depuis le point d'observation 20. Par conséquent, lors d'une navigation au sol dans une scène urbaine représentant une ville virtuelle, très peu d'objets 19 seront visibles depuis un point d'observation 20. La détermination d'un sous-ensemble minimal d'objets potentiellement visibles par région dans une scène est un problème complexe que l'on ne peut résoudre sans hypothèse.
En référence à la figure 6, les hypothèses du procédé sont les suivantes : - les objets de la scène (bâtiments, signalisation, arbre, ...) sont
représentés dans un repère orthonormée directe (O, X, y, Z) ;
- l'ensemble des objets d'une scène, est composé : o d'objets génériques 100, c'est-à-dire d'objets représentés par un modèle 2D/4 (à savoir une empreinte au sol, une altitude et une hauteur), ces objets génériques 100 sont des bâtiments ; par ailleurs, les empreintes des objets
— > — » génériques sont parallèles au plan (O1-X y) et leur altitude est variable ; o d'objets spécifiques, c'est-à-dire d'objets modélisés par assemblage de polygones (modèle facettes 3D), ces objets spécifiques sont des bâtiments spécifiques (églises, monuments ...), du mobilier urbain (abris de bus, bancs, feux, stops ...), et de la végétation (arbres) ; o d'un terrain 101 (relief numérisé) modélisé par assemblage de polygones ;
- chaque objet générique 100 peut être associé à un toit 102 modélisé par assemblage de polygones ;
- les objets de la scène sont inclus dans une boite de dimension (Δx, Δy) ;
- le nombre de pixels utilisable pour la carte des hauteurs minimales visibles est égal à (Nx, Ny) ;
Comme l'homme de l'art l'aura compris, le procédé de calcul de visibilité permet de traiter des données numériques. Ces données numériques sont caractéristiques d'objets virtuels, par exemple des bâtiments, des abris bus, ou un terrain.
Pour représenter virtuellement une ville en 3D, on utilise un terminal mobile ou fixe comme une station de travail, ledit terminal comprenant des moyens mémoire pour stocker une base de données comprenant ces données numériques.
Par exemple, en ce qui concerne le terrain, celui-ci est modélisé par assemblage de polygones. Pour définir un polygone, il est nécessaire de connaître certaines informations. Ces informations peuvent par exemple être
les coordonnées dans le repère (O, X, y, Z) de trois points caractéristiques du polygone.
Pour chaque polygone, les données numériques associées à celui-ci comprennent ces informations. Ces données numériques sont stockées dans Ia base de données de la station de travail, avec d'autres informations concernant le polygone comme sa texture par exemple. A partir de ces données numériques, les moyens de traitement de l'unité centrale sont capables de calculer la position de l'ensemble des points du polygone à afficher. En affichant l'ensemble des points de l'ensemble des polygones sur des moyens d'affichage de la station de travail, on obtient une représentation du terrain. Dans la suite, on présentera le procédé de calcul de visibilité en faisant référence aux objets (terrain, bâtiments, mobilier urbain) plutôt qu'en faisant référence aux données numériques associées sur lesquelles sont effectués les traitements.
En référence à la figure 7, la première étape du procédé consiste à calculer l'altitude minimale du terrain de la scène. Dans la suite, cette altitude minimale sera appelée altitude zmin.
La deuxième étape du procédé consiste à définir un plan Pmin 103 à l'altitude zmin. Ce plan sera utilisé dans certaines des étapes suivantes du procédé.
La troisième étape du procédé consiste à calculer des objets terrain 104 modélisés 2D1A Ces objets terrain sont calculés afin notamment de prendre en compte l'occultation d'objets engendrée par le terrain. Pour créer ces objets terrain 104, on définit un quadrillage régulier 2D du plan Pmin 103. A chaque rectangle de la grille, on associe un pavé 3D dont : la base inférieure est le rectangle lui-même, l'altitude minimale 105 est égale à l'altitude minimale de Ia surface du terrain ayant une intersection non nulle avec ce pavé, la hauteur 106 est égale à l'altitude maximale de la surface du terrain ayant une intersection non nulle avec ce pavé.
Ces pavés 3D sont appelés objets terrain et seront ensuite utilisés dans le procédé de calcul de visibilité. La quatrième étape du procédé consiste à réaliser une partition de l'espace d'observation proche du sol en régions appelées celluies de vue. En effet, le calcul exact des objets visibles depuis un volume 3D est très difficile et très coûteux en temps de calcul et ressources matérielles.
Comme illustré à la figure 8, dans une application de visualisation d'environnements urbains, l'espace 25 dans lequel l'observateur virtuel peut se déplacer est égal au complémentaire de l'union de tous les objets 26, 27, 28, 29 de la scène.
La partition de la zone de déplacement de l'utilisateur est obtenue très simplement comme suit. On translate le terrain et les objets de la scène dans le plan Pmin 103. Puis, on effectue une triangulation 2D du complémentaire
(translaté à l'altitude z = zmin) des empreintes au sol des objets de la scène.
Cette triangulation consiste à partager la zone 25 de déplacement de l'utilisateur en un réseau de triangles 30.
La partition 3D se déduit de la triangulation en extrudant un prisme sur chaque triangle précédemment obtenu. Les prismes ainsi créés sont appelés cellules de vue 31.
Comme illustré à Ia figure 9, l'altitude 108 d'une cellule 107 est égale au minimum 109 des altitudes des bases inférieures 109, 110 des objets terrain 111 , 112 ayant une intersection avec la cellule de vue 107, et la hauteur d'une cellule de vue 107 est égale à une hauteur de référence 113 (comprise entre 0 et 2 mètre à l'échelle de la ville) à laquelle on ajoute la valeur maximale 114 des hauteurs 114, 115 des objets terrain ayant une intersection avec la cellule.
En référence à la figure 10a, la cinquième étape du procédé consiste à transformer les objets génériques 100 et les objets terrain 104 de la scène en objets occultants 300, 301 de même altitude zmin. Ces objets occultants sont modélisés 2D1A En effet, le modèle 2D1/4 simplifie les calculs de visibilité. Ces objets occultants 300, 301 seront utilisés lors du calcul de cartes des hauteurs minimales visibles.
Pour transformer les objets génériques 100 en objets occultants 301 , on prolonge les faces des objets génériques 100 dans le plan Pmin 103 d'altitude zmin. On obtient alors des prismes modélisant les objets génériques prolongés. Ces prismes sont appelés objets occultants 301.
L'empreinte d'un objet occultant 301 correspond à la projection sur le plan Pmin de l'objet générique dont il est le prolongement. Tous ces objets occultants 301 ont la même altitude zmin. La hauteur d'un objet occultant
301 est égale à la somme de l'altitude et de la hauteur du objet 100 qui lui est associé.
Pour transformer les objets terrain 104 en objets occultants 300, on prolonge verticalement les empreintes des objets terrain 104 dans le plan Pmin 103. On obtient alors des prismes modélisant les objets terrain prolongés. Ces prismes sont appelés objets occultants 300.
L'empreinte d'un objet occultant 301 est égale à l'empreinte de l'objet terrain 104 translatée à l'altitude zmin, l'altitude est égale à zmin, et la hauteur est égale à l'altitude de l'objet terrain 104.
On obtient alors l'ensemble d'objets occultants 300, 301 tel qu'illustré à la figure 10a.
Ensuite, pour chaque cellule de vue, on calcule la liste des objets potentiellement visibles (LOPV). Cette liste résulte d'une évaluation minimaliste de tous les objets visibles (objets de la scène et objets terrain) depuis au moins un des points de la cellule de vue courante. Le calcul de la liste des objets potentiellement visibles se décompose en deux phases.
Tout d'abord, une première phase permet de résoudre de façon efficace l'occultation inter-objet lointaine et calcule, pour chaque cellule de vue, une liste temporaire d'objets potentiellement visibles à l'aide d'une première carte des hauteurs minimales visibles. Cette carte est obtenue en effectuant un quadrillage dans le plan Pmin de la surface du terrain, les dimensions (longueur, largeur) de cette première carte étant fonction d'une valeur de recouvrement k1.
Ensuite une deuxième phase permet de prendre en compte de façon efficace l'occultation inter-objet proche, et calcule, pour chaque cellule de vue, la liste des objets potentiellement visibles à l'aide d'une deuxième carte des hauteurs minimales visibles. Cette carte est obtenue de la même manière que précédemment. Les dimensions (longueur, largeur) de cette deuxième carte sont fonction d'une valeur de recouvrement k2. Dans cette deuxième phase, les tests de visibilité se font uniquement sur les objets de la liste temporaire calculée dans la première phase.
La première étape de la première phase du calcul de la liste des objets potentiellement visibles consiste à choisir la valeur de recouvrement k1. Cette valeur de recouvrement est choisie en fonction de la surface occupée par le terrain. La surface occupée par un pixel dépend de cette valeur de recouvrement k1.
Afin de pouvoir prendre en compte tous les phénomènes d'occultations inter-objet, on choisit la valeur de recouvrement k1 de telle sorte que la première carte des hauteurs minimales visibles recouvre toute la ville. Pour cela la valeur de recouvrement k1 doit être tel que : k1 >max(Δx/Nx, Δy/Ny). Où :
- Δx et Δy sont les largeur et longueur du terrain,
- Nx, Ny sont le nombre de pixels utilisable en ligne et en colonne pour le calcul des cartes des hauteurs minimales visibles.
Connaissant la valeur de recouvrement k1 , on en déduit la valeur d'érosion el qui doit être supérieure ou égale à YΛIsJl. En effet, la valeur de recouvrement k1 et la valeur d'érosion el sont liées par la relation: el ≥k1Λ£. On remarque, que la valeur de l'érosion à appliquer sera grande. Par exemple, si on suppose une ville de dimension 8km*8km, et si on suppose que l'on dispose d'un moyen de traitement graphique 3D nous permettant d'utiliser 1280*1024 pixels pour le calcul de la première carte des hauteurs minimales visibles. Alors les valeurs de k1 et el deviennent : k1 = max(8000/1280, 8000/1024) = 6.25 mètres el = 6.25/^ = 4.42 mètres.
La deuxième étape de la première phase du calcul de la liste des objets potentiellement visibles consiste à choisir des faces occultantes.
Dans son procédé, Peter Wonka prend comme faces occultantes toutes les faces des objets génériques.
Dans le présent procédé, on choisira comme faces occultantes toutes les faces des objets occultants 300, 301 , c'est-à-dire les faces des objets génériques prolongés et des objets terrain prolongés. A cet ensemble, on ajoute également les faces de groupes d'objets occultants fusionnés. Pour obtenir des groupes d'objets occultants fusionnés, on utilise la méthode de fusion décrite ci après.
« Soit un ensemble B d'objets modélisés 2DA1 , alors on peut réaliser une partition (au sens ensembliste), de tous les objets, par le critère de connexité des empreintes au sol suivant :
Soit Bi et Bj deux objets de l'ensemble B, alors Bi et Bj sont dit connexes si leurs empreintes au sol ont au moins deux sommets consécutifs en communs. »
De cette définition on déduit une partition de l'ensemble B par sous- ensembles connexes :
B = { Uj Bci pour i allant de 1 à N} Bci est donc un des sous-ensembles d'objets occultants connexes, c'est-à-dire dans lesquels deux objets quelconques pris dans un même sous- ensemble Bci appartiennent nécessairement à au moins une composante connexe de Bci. On appellera les Bci « ensembles connexes ».
Soit un ensemble connexe d'objets occultants tel que défini précédemment. Alors le résultat de la fusion de tous les objets occultants connexes est un ensemble connexe défini de la façon suivante :
- son empreinte au sol est le résultat de la fusion des empreintes des objets occultants obtenue par suppression des arrêtes en communs,
- sa hauteur est égale au minimum des hauteurs de toutes les hauteurs de tous les objets occultants.
En effet, comme représenté à la figure 11 , trois objets occultants dont les empreintes au sol 32, 33, 34 ont des arrêtes 35, 36 en commun vont être fusionnés par suppression de leurs arrêtes 35, 36 en commun afin d'obtenir l'empreinte au sol 37 de l'ensemble connexe. Par ailleurs, comme représenté à la figure 12, trois objets occultants
38, 39, 40 ayant des faces 41 , 42 en commun vont être fusionnés par suppression de leurs faces en commun 41 , 42. La hauteur de l'ensemble connexe 141 obtenue par fusion des objets occultants 38, 39, 40 sera égale à la hauteur de l'objet occultant 38 qui est le moins haut des trois objets occultants 38, 39, 40.
Ainsi, l'étape de sélection des faces occultantes consiste à sélectionner toutes les faces des objets occultants 300, 301 , et les faces des ensembles connexes.
Dans la troisième étape de la première phase du calcul de la liste des objets potentiellement visibles pour la cellule de vue courante, on effectue une opération d'érosion des faces occultantes. Ceci permet de corriger des erreurs liées à la méthode utilisée pour calculer les cartes des hauteurs minimales visibles.
Une opération d'érosion mathématique est définie par la propriété suivante:
« A' est dit érodé de A par e si A' est inclus dans A et si pour tout couple de points (a, a') tel que « a' » appartient à A' et « a » appartient à A, la distance de « a' » à « a » est supérieure ou égale à e. »
En raison de la modélisation 2D1/4 des objets occultants et des ensembles connexes, l'érosion par e1 se fait sur l'empreinte au sol des objets occultants et des ensembles connexes.
La quatrième étape de la première phase du calcul de Ia liste des objets potentiellement visibles consiste à calculer la première carte des hauteurs minimales visibles pour la cellule de vue courante. Le calcul d'une carte des hauteurs minimales visibles étant un problème difficile et coûteux en temps de calcul, on propose une approximation minimaliste de ce calcul. Cette approximation consiste à échantillonner par des points les arrêtes de la face supérieure de la cellule de vue courante et à calculer une carte des hauteurs minimales visibles en chacun de ces points.
Le calcul de la carte associée à la cellule de vue courante se déduit ensuite simplement des cartes associées aux points d'échantillonnage de la cellule de vue courante.
Pour calculer une carte des hauteurs minimales visibles Hp(r) depuis un point d'observation p donné, on définit la notion de volume d'ombre comme suit :
« Soit un point d'observation 20 (cf. figure 5) et soit une face 21 d'un objet occultant modélisée par un rectangle perpendiculaire au sol, alors on appelle volume d'ombre 22 la pyramide tronquée définie par les quatre demi- droites passant par le point d'observation 20 et les quatre sommets de la face 21. »
Ce volume d'ombre 22 garantit que tout objet 23 entièrement contenu dans ce volume 3D n'est pas visible depuis le point d'observation 43.
Dès lors la carte Hp(r) des hauteurs minimales visibles par rapport au point d'observation p 43 (cf. figure 13) se déduit des volumes d'ombres 45, 48 par projection orthogonale sur une matrice 46 de pixels des volumes d'ombres 45, 48 engendrés par les faces occultantes 44, 47.
Pour calculer la carte Hp(r) prenant en compte l'ensemble des faces occultantes par rapport au point d'observation p, on procède de la manière suivante. On détermine l'ensemble des cartes Hp,o(r) ne prenant en compte qu'une face occultante o parmi l'ensemble FO des faces occultantes par rapport au point d'observation p. Ensuite, on calcule la carte Hp(r).
En effet, la carte Hp(r) associée à l'ensemble des cartes Hp,o(r) de toutes les faces occultantes o est donnée par la formule :
Hp(r) = max {Hp,o(r), o ε FO}, Où :
- Hp(r) est Ia fonction représentant la hauteur minimale visible d'un pixel r par rapport au point d'observation p,
- Hp,o(r) est la fonction représentant la hauteur minimum visible d'un pixel r par rapport au point d'observation p et en ne prenant en compte que la face occultante o,
- FO représente l'ensemble des faces occultantes.
Les cartes Hp,o(r) sont calculées par projections orthogonales des volumes d'ombres sur la matrice de pixels 46 située dans le plan Pmin.
Or la discrétisation sur une grille de pixels engendre des erreurs. C'est Ia raison pour laquelle on effectue l'opération d'érosion mathématique
préalablement au calcul dθ la première carte des hauteurs minimales visibles.
Une fois que toutes les cartes Hp(r) de tous les points d'échantillonnage ont été calculées, on détermine la carte Hmin(r) associée à la cellule de vue courante.
La fonction Hmin(r) donnant les hauteurs minimales visibles associée à une cellule de vue connaissant les fonctions Hp(r) de tous les points d'échantillonnage p est donnée par la formule suivante :
Hmin(r) = min{Hp(r), p e PE}, Où : PE représente l'ensemble des points d'échantillonnage pris sur les arrêtes de la face supérieure de la cellule de vue.
La condition pour que ce calcul soit valide est que l'intervalle d'échantillonnage soit inférieur ou égal à l'amplitude d'érosion e des faces occultantes. La cinquième étape de la première phase du calcul de la liste des objets . potentiellement visibles consiste à déterminer la liste temporaire des objets potentiellement visibles par rapport à chaque cellule de vue.
Dans un premier temps, on commence par transformer les objets génériques (bâtiments 100), les objets spécifiques, et les objets terrain en objets prolongés modélisés 2D1A
Pour cela, on détermine pour chaque objet spécifique modélisé par assemblage de polygone, un volume englobant.
Ensuite, et comme illustré à la figure 10b, on prolonge les faces des objets génériques 100, des volumes englobants, et des objets terrain 104 dans le plan Pmin 103 d'altitude minimum zmin. On obtient alors des prismes modélisant les objets génériques 100, les volumes englobant, et les objets terrain 104.
Ces prismes sont appelés objets prolongés 305. L'empreinte d'un objet prolongé 305 correspond à la projection sur le plan Pmin de l'objet générique 100, de l'objet terrain 104 ou du volume englobant dont il est le prolongement. L'altitude d'un objet prolongé 305 est égale à zmin. La
hauteur d'un objet prolongé 305 est égale à la somme de l'altitude et de la hauteur de l'objet (objet générique, objet terrain ou volume englobant) qui lui est associé.
Ainsi, contrairement à l'étape de détermination de la première carte des hauteurs minimales visibles où c'était l'altitude de l'objet terrain qui était prise en compte dans les phénomènes d'occultation, ici c'est la hauteur de l'objet terrain qui est prise en compte pour les tests de visibilité.
On obtient l'ensemble d'objets prolongés 305 tel qu'illustré à la figure 10b. On effectue ensuite un test de visibilité des objets prolongés 305. Pour chaque objet prolongé 305, ce test de visibilité se fait par comparaison entre la hauteur de l'objet prolongé 305 et les hauteurs minimales visibles de la première carte des hauteurs minimales visibles des pixels ayant une intersection avec l'empreinte au sol de l'objet. Pour chaque cellule de vue, on obtient alors une liste des objets prolongés 305 potentiellement visibles. Comme chaque objets prolongés 305 de la liste est associé à un objet de la scène ou à un objet terrain, on déduit la liste temporaire d'objets potentiellement visibles.
A la fin de la première phase, on obtient donc pour chaque cellule de vue une liste temporaire des objets potentiellement visibles qui est un sur¬ ensemble de la liste minimale puisque calculée avec un e1 grand. Ainsi, lors de la deuxième phase, on ne testera que la visibilité des objets appartenant à la liste temporaire des objets potentiellement visibles obtenue à la première phase. La deuxième phase du calcul de la liste des objets potentiellement visibles comprend une première étape consistant à choisir une valeur d'érosion e2. Cette valeur d'érosion e2 est choisie faible (en pratique inférieure à 1 mètre) afin de réduire le plus possible le phénomène de réduction des faces occultantes. La valeur de recouvrement k2 correspondant à la taille des pixels se déduit de la valeur d'érosion e2 par la formule reliant e et k : e ≥VJ-JZ.
Comme la valeur d'érosion e2 est faible, alors la valeur de recouvrement k2 est faible (inférieur à k1 ). Par conséquent, la deuxième carte des hauteurs minimales visibles ne couvre plus qu'une partie du terrain. Cette partie couverte par la deuxième carte comprend la cellule courante La deuxième étape de la deuxième phase consiste à choisir les faces occultantes.
On utilise ici les objets occultants déterminés lors de la cinquième étape du procédé.
On sélectionne comme faces occultantes les faces des objets occultants et les faces des couples d'objets occultants connexes.
La fusion de couples d'objets occultants est un cas particulier de la fusion de groupes d'objets occultants connexes. Soit un couple d'objets occultants connexes, alors on définit leur fusion comme étant l'ensemble connexe défini par : - son empreinte au sol qui est égale à la fusion des empreintes au sol, avec suppression des arrêtes en commun des deux objets occultants connexes, - sa hauteur qui égale au minimum des hauteurs des deux objets occultants connexes. La troisième étape du procédé consiste à réaliser une érosion des faces occultantes par la valeur d'érosion e2. La méthode employée pour éroder les faces est identique à celle employée dans la première phase.
La quatrième étape de la deuxième phase consiste à calculer la carte des hauteurs minimales visibles pour la cellule de vue courante. Ce calcul est effectué de la même manière que lors de la quatrième étape de la première phase. On obtient ainsi, pour chaque cellule de vue, la deuxième carte des hauteurs minimales visibles.
La cinquième étape de la deuxième phase consiste à tester la visibilité des objets de la scène afin de déterminer la liste des objets potentiellement visibles. Ce test est réalisé par rapport à chaque cellule de vue en fonction de la deuxième carte des hauteurs minimales visibles (associée à ladite
cellule). Ce test est réalisé sur les objets de la liste temporaire d'objets potentiellement visibles et est fonction de la distance des objets par rapport à la zone recouverte par la deuxième carte des hauteurs minimales visibles.
En effet si l'objet prolongé 305 associé à l'objet (objet générique, spécifique ou terrain) testé a une intersection avec la deuxième carte des hauteurs minimales visibles, alors l'objet est dit potentiellement visible si la hauteur maximale de l'objet prolongé 305 qui lui est associé est supérieure à l'une des hauteurs des pixels de la deuxième carte ayant une intersection avec l'empreinte au sol de l'objet. Si l'objet prolongé 305 associé à l'objet testé n'a pas d'intersection avec la deuxième carte des hauteurs minimales visibles, un volume englobant de l'objet prolongé 305 est projeté (voir figure 2) sur une horizon de visibilité 4. Si la projection de l'objet se trouve au-dessus de l'horizon de visibilité 4, l'objet testé (objet générique, terrain ou spécifique) est dit potentiellement visible.
En résumé, le procédé de calcul de visibilité permettant de déterminer des listes d'objets potentiellement visibles par région pour des scènes 3D de très grandes tailles représentant des villes virtuelles comprend les étapes suivantes : a) le calcul de la hauteur minimale de la scène urbaine : zmin, et la définition d'un plan Pmin à l'altitude zmin (étape 70 de la figure 14), b) la création d'objets terrain (étape 71 de la figure 14) : Les objets terrain sont obtenus par quadrillage du plan z= zmin. A chaque rectangle du quadrillage, on associe un pavé 3D dont : • la base inférieure est le rectangle lui-même, l'altitude minimale est égale à l'altitude minimale de la surface du terrain ayant une intersection non nulle avec ce pavé, la hauteur est égale à l'altitude maximale de la surface du terrain ayant une intersection non nulle avec ce pavé. Cette altitude est donc aussi celle de la base supérieure du pavé,
c) La partition de la zone de déplacement de l'utilisateur (étape 72 de la figure 14) :
La partition en cellules de vue est obtenue par extrusion de prismes sur les triangles résultant de la triangulation de la zone de déplacement de l'utilisateur translatée à l'altitude z = zmin. L'altitude d'une cellule est égale au minimum des altitudes minimales des objets terrain ayant une intersection avec la cellule de vue, et la hauteur d'une cellule de vue est égale à la hauteur de référence à laquelle on ajoute la valeur maximale des hauteurs des pavés ayant une intersection avec la cellule, d) La sélection d'une cellule de vue (étape 73 de la figure 14) :
On échantillonne par e l'arrête supérieure de la cellule de vue courante, e) Le calcul de la taille d'un pixel (k1 ) et de la valeur d'érosion (e1) associée (étape 74 de la figure 14) : k1 est calculée de telle sorte que la première carte des hauteurs minimales visibles recouvre toute la ville. La valeur d'érosion e1 se déduit de Ia valeur de recouvrement k1 , f) La sélection et l'érosion des faces occultantes (étape 75 de la figure 14) :
Pour cela, on transforme les objets générique et les objets terrain en objets occultants modélisés 2D1A
Ensuite, on sélectionne les faces occultantes. On choisit comme faces occultantes toutes les faces des objets occultants et on y ajoute les faces des ensembles connexes issus de la fusion des groupes d'objets occultants connexes. g) Le calcul de la première carte des hauteurs minimales visibles
Hmin1 (r) associée à la cellule de vue courante (étape 76 de la figure 14) : Le calcul se fait par l'opération d'union et d'intersection des volumes d'ombres générés par les faces occultantes et les points échantillonnés de la cellule de vue. Le calcul se fait à l'aide des fonctions câblées des cartes graphiques 3D accessibles par la bibliothèque graphique OpenGL.
Pour calculer la première carte des hauteurs minimales, on effectue un quadrillage en N rectangles (pixels) du plan Pmin, la surface occupée par chaque rectangle étant fonction de la valeur de recouvrement k1 , puis on calcule pour chaque rectangle la hauteur minimale visible depuis la cellule de vue (31 , 107), h) La détermination de la liste temporaire d'objets potentiellement visible (étape 77 de la figure 14) :
Pour déterminer cette liste, on effectue un test de visibilité des objets prolongés (transformé 2D Vz des objets terrain, des volumes englobants et des objets spécifique et générique) à l'aide de la première carte des hauteur minimales visibles.
Le test de visibilité des objets prolongés est le suivant : un objet est dit potentiellement visible si sa hauteur maximale est supérieure à l'une des hauteurs des pixels de Ia carte ayant une intersection avec l'empreinte au sol de l'objet.
Si un objet terrain est potentiellement visible alors, toute la surface du sol contenue dans cet objet terrain sera considérée comme potentiellement visible.
En ce qui concerne les objets génériques rehaussés avec un toit, le test se fait sur le volume englobant de l'union de l'objet et du toit. i) Le choix d'une valeur faible d'érosion e2 et la déduction de la taille d'un pixel k2 (étape 78 de la figure 14) : En pratique Ia valeur d'érosion e2 est inférieure à 1 mètre. j) La sélection et l'érosion des faces occultantes (étape 79 de la figure 14) :
Les faces sélectionnées sont les faces des objets occultants et les faces des fusions de tous les couples d'objets occultants connexes. k) Le calcul de la deuxième carte des hauteurs minimales visibles Hmin2(r) associée à la cellule de vue courante (étape 80 de la figure 14) : Le calcul se fait de la même manière qu'à l'étape g). La longueur et la largeur de la deuxième carte sont fonction de la valeur de recouvrement k2.
I) La détermination de la liste des objets potentiellement visibles (étape 81 de la figure 14) :
Pour cela, on effectue un test de visibilité à l'aide de la deuxième carte des hauteurs minimales visibles. Le test de visibilité ne se fait que sur les objets prolongés associés aux objets de la liste temporaire d'objet potentiellement visibles en fonction de la distance des objets par rapport à la zone recouverte par la carte des hauteurs minimales visibles. En effet, si un objet a une intersection avec la zone couverte par la deuxième carte, alors l'objet est dit potentiellement visible si la hauteur maximale de l'objet prolongé qui lui est associé est supérieure à l'une des hauteurs de la deuxième carte des hauteurs minimales visibles des pixels ayant une intersection avec l'empreinte au sol de l'objet. En cas contraire le volume englobant de l'objet est projeté sur l'horizon de visibilité. Si la projection de l'objet se trouve au-dessus de l'horizon de visibilité l'objet est dit potentiellement visible.
Il est à noter que les opérations d) à I) sont itérées pour toutes les cellules de vues.
Le procédé présenté ci-dessus peut être mis en œuvre dans un système permettant de réaliser les calculs de visibilité.
Ce système est par exemple un ordinateur personnel comprenant des moyens mémoires (RAM, ROM) connectés à des moyens de traitement tels qu'un processeur, des moyens de visualisation tels qu'un écran d'affichage et des moyens de saisie tels qu'un clavier et une souris. Ce système peut également être un serveur Internet. Dans ce cas, le serveur permet de déterminer les listes d'objets potentiellement visibles, et les transmet en ligne par exemple sur un ordinateur personnel distant qui affichera la scène 3D.
REFERENCES
[I] UIf Assarsson and Thomas Mller. Optimized view frustum culling algorithms for bounding boxes
[2] J. Bittner, V. Havran, and P. Slavik. Hierarchical visibility culling with occlusion trees. [3] Edwin E. Catmull. A subdivision Algorithm for Computer Display of curved
Surfaces.
[4] J. H. Clark. Hierarchical géométrie models for visible surface algorithms
[5] Satyan Coorg and Seth Teller. Temporally cohérent conservative visibility
[6] Satyan Coorg and Seth Teller. Real-Time occlusion culling for models with large occluders
[7] Frédo Durand, George Drettakis, Joëlle Thollt and Claude Puech.
Conservative visibility preprocessing using extended projections
[8] James D. Foley, Andries van Dam, Steven K. Feiner, and John F.
Hughes. Computer Graphics, Principles and Pratice Second Edition [9] B. Garlick, D. Baum and J. Winget. Parallel Algorithms and Architectures for 3D Image Gegeration
[10] Ned Greene, M. Kass and Gary Miller. Hierarchical z-buffer visibility
[I I] T. Hudson, D. Manocha, J. Cohen, M. Lin, K. Hoff and H. Zhang. Accelerated occlusion culling using shadow frustra. [12] Vladelen Koltun, Yiorgos Chrysanthou, and Daniel Cohen-Or. Virtual occluders: An efficient pvs représentation
[13] Subodh Kumar, Dinesh Manocha, William Garrett, and Ming Lin.
Hierarchical back-face computation
[14] Hong Lip Lim. Toward a fuzzy hidden surface algorithm. [15] Boaz Nadler, Gadi Fibich, Shuly Lev- Yehudi, and Daniel Cohen-Or. A qualitative and quantitative visibility analysis in urban scènes
[16] M. Slater and Y. Chrysanthou. View volume culling using a probabilistic cashing scheme
[17] Peter Wonka and Dieter Schmalstieg. Occluder shadows for fast walkthroughs of urban environnements
[18] Peter Wonka, Michael Wimmer and Dieter Schmalstieg. Visibility preporecessing with occluder fusion for urban walkthroughs [19] Hanson Zhang, Dinesh Manocha, Thomas Hudson, and Kenneth E. Hoff III. Visibility culling using hierachical occlusion maps