FR2693012A1 - Visualisation procedure for synthetic images of volumes in real=time - by maintaining database of data relating to topological, geometric and photometric attributes of volumes in order to represent them as polyhedrons revealing hidden surfaces and to project images in two dimensions - Google Patents
Visualisation procedure for synthetic images of volumes in real=time - by maintaining database of data relating to topological, geometric and photometric attributes of volumes in order to represent them as polyhedrons revealing hidden surfaces and to project images in two dimensions Download PDFInfo
- Publication number
- FR2693012A1 FR2693012A1 FR9207891A FR9207891A FR2693012A1 FR 2693012 A1 FR2693012 A1 FR 2693012A1 FR 9207891 A FR9207891 A FR 9207891A FR 9207891 A FR9207891 A FR 9207891A FR 2693012 A1 FR2693012 A1 FR 2693012A1
- Authority
- FR
- France
- Prior art keywords
- faces
- sides
- truncation
- volumes
- face
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/40—Hidden part removal
- G06T15/405—Hidden part removal using Z-buffer
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
Description
ii
PROCEDE DE VISUALISATION D'IMAGESIMAGE VISUALIZATION METHOD
SYNTHETIQUES DE VOLUMES EN TEMPS REEL SYNTHETICS OF REAL-TIME VOLUMES
La présente invention se rapporte à un procédé de The present invention relates to a method of
s visualisation d'images synthétiques de volumes en temps réel. s visualization of synthetic images of volumes in real time.
Un générateur d'images synthétiques en temps réel (c'est- A real-time synthetic image generator (that is,
à-dire à un rythme d'au moins 25 images par seconde) comporte au moins trois types d'étages de calcul: un processeur géométrique, un processeur d'échantillonnage et un processeur vidéo La puissance informatique nécessaire au calcul en temps réel est telle qu'actuellement on a recours, pour chaque type d'étage, à un processeur dédié (spécialisé) Une telle solution est onéreuse et lorsque la structure est définie et réalisée, il est très difficile ou même impossible de la modifier sans changer un processeur ou at a rate of at least 25 frames per second) has at least three types of computation stages: a geometric processor, a sampling processor, and a video processor. The computational power required for the real-time calculation is such currently used for each type of stage, a dedicated processor (specialized) Such a solution is expensive and when the structure is defined and realized, it is very difficult or impossible to change without changing a processor or
1 S même tous les processeurs.1 S even all processors.
La présente invention a pour objet un procédé de visualisation d'images synthétiques de volumes en temps réel, qui ne nécessite pas pour sa mise en oeuvre de processeurs spécialisés, The subject of the present invention is a method for visualizing synthetic images of volumes in real time, which does not require for its implementation of specialized processors,
et qui soit simple à appliquer.and that is simple to apply.
Le procédé conforme à l'invention consiste à mémoriser dans une base de données les données décrivant les volumes à représenter sous forme de polyèdres quelconques à partir de leurs côtés orientés, ces données étant les attributs topologiques des côtés des polyèdres, les coordonnées dans l'espace des extrémités de ces côtés, et les attributs géométriques et photométriques des faces de ces polyèdres, à éliminer les faces auto-cachées de ces polyèdres, à effectuer un changement de repère des faces à visualiser, à éliminer tous les objets se trouvant entre l'observateur et le plan de troncature avant, à effectuer une mise en perspective pour projection en deux dimensions, et à effectuer une troncature The method according to the invention consists in storing in a database the data describing the volumes to be represented in the form of any polyhedra from their oriented sides, these data being the topological attributes of the sides of the polyhedra, the coordinates in the space of the extremities of these sides, and the geometrical and photometric attributes of the faces of these polyhedra, to eliminate the self-concealed faces of these polyhedra, to make a change of reference of the faces to be visualized, to eliminate all the objects situated between the observer and the truncation plane before, to put into perspective for projection in two dimensions, and to perform a truncation
vectorielle en deux dimensions suivant une pyramide de projection. two-dimensional vector following a projection pyramid.
Cette troncature vectorielle s'effectue pour chacun des plans délimitant ledits polyèdres, et pour chacun de ces plans, on effectue This vector truncation is carried out for each of the planes delimiting the said polyhedra, and for each of these plans, it is carried out
une troncature selon chacun des côtés des faces des polyèdres. a truncation on each side of the faces of the polyhedra.
Les calculs relatifs à la troncature et au changement de repère sont organisés de manière vectorielle de façon à obtenir les performances maximum, et permettre une parallélisation efficace du The truncation and change of reference calculations are organized in a vectorial way so as to obtain the maximum performances, and allow an efficient parallelization of the
procédé de calcul utilisé par l'invention. calculation method used by the invention.
La présente invention sera mieux comprise à la lecture de The present invention will be better understood on reading
la description détaillée d'un mode de réalisation, pris à titre the detailed description of an embodiment, taken as a
d'exemple non limitatif et illustré par le dessin annexé, sur lequel: la figure 1 est une vue schématique en perspective d'un objet à visualiser, dont on a mis en évidence la structure topologique le décrivant; les figures 2 à 5 sont des vues schématiques de faces d'un objet à visualiser, servant à définir les conventions utilisées pour la non-limiting example and illustrated by the accompanying drawing, in which: Figure 1 is a schematic perspective view of an object to be viewed, which has been shown topological structure describing it; FIGS. 2 to 5 are schematic views of faces of an object to be displayed, used to define the conventions used for the
description topologique d'objets;topological description of objects;
la figure 6 est un tableau résumant les données utilisées par le procédé de l'invention; la figure 7 est une vue schématique de faces d'un objet, expliquant la façon de déterminer des faces auto-cachées; la figure 8 est une vue schématique en perspective montrant une pyramide de troncature; la figure 9 est un schéma expliquant un processus de mise en perspective pouvant être mis en oeuvre par le procédé de l'invention; et la figure 10 est une vue schématique en perspective montrant un Figure 6 is a table summarizing the data used by the method of the invention; Figure 7 is a schematic view of faces of an object, explaining how to determine self-hidden faces; Figure 8 is a schematic perspective view showing a truncation pyramid; Figure 9 is a diagram explaining a process of putting into perspective that can be implemented by the method of the invention; and FIG. 10 is a schematic perspective view showing a
volume de troncature normalisé, utilisé par le procédé de l'invention. standardized truncation volume, used by the method of the invention.
On a schématiquement représenté en figure 1 une structure topologique 1 décrivant un objet quelconque, que l'on appellera ci-dessous "hyperfacette" Cette structure est composée de faces planes (facettes) adjacentes qui correspondent le plus exactement possible aux faces de l'objet à représenter Bien entendu, si les faces de l'objet à représenter sont planes, la correspondance est exacte, mais si elles sont courbes, la correspondance est d'autant meilleure que les facettes de la structure sont petites Une telle représentation par polyèdres est basée sur le procédé décrit par B G BAUMGART dans l'article "A polyedron Representation for Computer vision", National Computer FIG. 1 schematically shows a topological structure 1 describing any object, which will be referred to below as "hyperfacette". This structure is composed of adjacent flat faces (facets) which correspond as closely as possible to the faces of the object. to represent Of course, if the faces of the object to be represented are plane, the correspondence is exact, but if they are curved, the correspondence is better as the facets of the structure are small Such a representation by polyhedra is based on the method described by BG BAUMGART in the article "A Polyedron Representation for Computer Vision", National Computer
Conference, 1975, pages 589 à 596.Conference, 1975, pp. 589-596.
Une "hyperfacette" est décrite, dans une base de données, par une liste, non ordonnée, de côtés Chaque côté est caractérisé par ses deux extrémités (dites "points"), ses deux faces 1 o adjacentes (ou sa face adjacente) et ses liaisons avec d'autres côtés. On a schématiquement représenté en figure 1 une hyperfacette 1 Une facette plane de l'hyperfacette 1 est référencée 2 Cette facette 2 est bordée par quatre côtés référencés 3 à 6 Les côtés 3 à 5 sont partagés par deux facettes différentes Ils sont dits "partagés" On remarquera qu'un coté ne peut être partagé par plus de deux facettes Seul le côté 6 n'est pas partagé par deux facettes; il appartient donc au bord de l'objet figuré par A "hyperfacette" is described, in a database, by an unordered list of sides. Each side is characterized by its two ends (called "points"), its two adjacent faces 1 o (or its adjacent face), and its links with other sides. FIG. 1 schematically shows a hyperfacette 1 A flat facet of the hyperfacette 1 is referenced 2 This facet 2 is bordered by four sides referenced 3 to 6 The sides 3 to 5 are shared by two different facets They are said to be "shared" Note that one side can not be shared by more than two facets Only side 6 is not shared by two facets; so it belongs to the edge of the object figured by
l'hyperfacette 1.the hyperfacette 1.
Un point est toujours partagé entre au moins deux côtés. A point is always shared between at least two sides.
Si un point n'était l'extrémité que d'un seul côté, la face bordée par ce côté ne serait pas refermée, ce qui est interdit pour une structure topologique Ainsi, par exemple, dans la structure 1, le point 7 est partagé par les côtés 3, 6 et 8 (il constitue l'une des extrémités de If a point was the end only on one side, the side bordered by this side would not be closed, which is forbidden for a topological structure Thus, for example, in structure 1, point 7 is shared by the sides 3, 6 and 8 (it constitutes one of the ends of
chacun de ces côtés Le point 9 est partagé par les côtés 10 et 1 1. each of these sides The point 9 is shared by the sides 10 and 1 1.
Selon une autre convention, les côtés des facettes sont orientés On oriente un côté d'un point Pl vers le point P 2 On a représenté en figure 2 un tel côté 12 partagé par deux faces 13, 14, et on a représenté les normales 15, 16 à ces faces ( par convention, ces normales sont dirigées vers l'extérieur de l'objet à représenter) Les faces 13 et 14 sont respectivement appelées face gauche et face droite Les côtés des faces 13 et 14 partageant le point Pl sont référencés 17, 18 et appelés respectivement côté haut gauche et côté haut droit Les côtés des faces 13, 14 partageant le point P 2 sont référencés 19, 20 et respectivement According to another convention, the sides of the facets are oriented. One side of a point P1 is oriented towards the point P 2. FIG. 2 shows such a side 12 divided by two faces 13, 14, and the normals 15 are shown. , 16 to these faces (by convention, these normals are directed towards the outside of the object to be represented) The faces 13 and 14 are respectively called left face and right face The sides of the faces 13 and 14 sharing the point P1 are referenced 17, 18 and called respectively upper left side and upper right side The sides of the faces 13, 14 sharing the point P 2 are referenced 19, 20 and respectively
appelés côté bas gauche et côté bas droit. called lower left side and lower right side.
Selon la convention, deux faces ayant un côté partagé doivent être orientées de la même façon: leurs normales doivent pointer vers le même demi-espace intérieur ou extérieur à l'objet dont ces deux faces font partie Cette règle facilite le traitement graphique de l'objet: deux faces ayant un côté partagé ne peuvent s'occulter mutuellement, alors qu'une élimination des parties cachées serait nécessaire si cette règle n'était pas respectée Ainsi, par exemple, on a représenté en figure 3 deux faces 21, 22 Le côté 23 n'est pas un côté partagé au sens de cette règle En effet, les normales respectives à ces faces, référencées 24, 25 pointent l'une vers le demi-espace extérieur à l'objet dont fait partie ces faces, et l'autre vers le demi-espace intérieur à cet objet En fait, il aurait fallu According to the convention, two faces having a shared side must be oriented in the same way: their normals must point to the same half-space inside or outside the object of which these two sides are part. This rule facilitates the graphic processing of the object: two faces having a shared side can not mutually occlude, while an elimination of the hidden parts would be necessary if this rule was not respected Thus, for example, there is shown in Figure 3 two faces 21, 22 side 23 is not a shared side within the meaning of this rule In fact, the respective normals to these faces, referenced 24, 25 point one to the outer half-space to the object of which these faces, and the other towards the inner half-space to this object In fact, it would have been necessary
considérer la face opposée à l'une des deux faces 22 ou 23. consider the face opposite to one of the two faces 22 or 23.
On a représenté en figure 4 un exemple de face "concave" 26 Une face est dite concave lorsqu'au moins le prolongement de l'un de ses côtés la coupe Elle est dite convexe dans le cas contraire Ainsi, le prolongement 27 du côté 28 ou le FIG. 4 shows an example of a "concave" face 26. A face is said to be concave when at least the extension of one of its sides the cut It is said to be convex in the opposite case Thus, the extension 27 of the side 28 where the
prolongement 29 du côté 30 de la face 26 coupe cette face. extension 29 of the side 30 of the face 26 cuts this face.
On a représenté en figure 5 un exemple de face concave rectangulaire trouée 31 comportant quatre trous rectangulaires 32 à 35 Le prolongement de l'un quelconque des trous 32 à 35 coupe la FIG. 5 shows an example of a rectangular concave perforated face 31 having four rectangular holes 32 to 35. The extension of any one of the holes 32 to 35 intersects the
face 31, qui est donc bien concave.face 31, which is well concave.
On a représenté en figure 6 un tableau donnant les trois FIG. 6 shows a table giving the three
catégories d'éléments définissant la topologie d'une hyperfacette. categories of elements defining the topology of a hyperfacette.
Ces éléments sont les côtés, les points (extrémités des côtés) et les faces de l'hyperfacette Pour chaque catégorie d'éléments on définit des attributs: pour les côtés: ce sont les attributs topologiques, à savoir, pour chaque côté, les points Pl et P 2 et les faces gauche et droite (ou l'une de ces faces si le côté n'est pas partagé), et les liaisons entre côtés; pour les points: leurs attributs géométriques, c'est-à-dire leurs coordonnées dans l'espace (X, Y et Z); et pour les faces: leurs attributs géométriques et leurs attributs photométriques Les attributs géométriques sont les équations, dans These elements are the sides, the points (ends of the sides) and the faces of the hyperfacette For each category of elements one defines attributes: for the sides: these are the topological attributes, namely, for each side, the points Pl and P 2 and the left and right faces (or one of these faces if the side is not shared), and the links between sides; for the points: their geometrical attributes, that is to say their coordinates in space (X, Y and Z); and for the faces: their geometric attributes and their photometric attributes The geometric attributes are the equations, in
l'espace, des plans des faces (de la forme Ax + By + Cz + D = 0). space, planes of the faces (of the form Ax + By + Cz + D = 0).
Leurs attributs photométriques comportent: leur couleur, leur Their photometric attributes include: their color, their
texture et leur transparence.texture and their transparency.
Une première étape du procédé de l'invention consiste à éliminer les faces auto-cachées, afin de simplifier les traitements A first step of the method of the invention consists in eliminating the self-hidden faces, in order to simplify the treatments
subséquents du processeur géométrique. subsequent geometrical processors.
Lorsque l'on observe un objet, on ne peut en voir certaines faces que si l'on se trouve dans un angle de vue particulier On utilise cette propriété pour dire que si une face n'est pas orientée en direction de l'observateur, elle ne peut être vue par lui, et elle est alors dite autocachée En figure 7, on a représenté à droite la position X d'un observateur et deux faces 36, 37, ainsi que les normales 38, 39, respectivement, à ces faces La normale 38 se trouve dans le demi-espace (délimité par le plan de la face 36) vu de X, tandis que la normale 39 se trouve dans le demi-espace (délimité par le plan de la face 37) non vu de X. Mathématiquement, la visibilité d'une face est déterminée de la façon suivante: soit Ax + By + Cz + D l'équation de la face en question et lxo, yo, zo I la position de l'observateur Si When we observe an object, we can not see some faces unless we are in a particular angle of view. We use this property to say that if a face is not oriented in the direction of the observer, it can not be seen by it, and it is then said autocachée In Figure 7, there is shown on the right the position X of an observer and two faces 36, 37, and the normals 38, 39, respectively, to these faces The normal 38 is in the half-space (delimited by the plane of the face 36) seen from X, while the normal 39 is in the half-space (delimited by the plane of the face 37) not seen of X Mathematically, the visibility of a face is determined in the following way: either Ax + By + Cz + D the equation of the face in question and lxo, yo, zo I the position of the observer Si
Ax O + Byo + Czo + D < O, alors cette face est auto-cachée. Ax O + Byo + Czo + D <O, so this face is auto-hidden.
Lorsque la position de l'observateur varie, les objets, et en particulier leurs points subissent un changement de repère, se traduisant par une rotation et/ou une translation Ce changement de repère est effectué par un processeur géométrique selon la formule suivante, qui permet d'exprimer les coordonnées absolues de chaque point (xm, Ym, Zm) dans le repère de l'observateur (xo, yo, zo) lxol r 11 '12 '13 ml x yo =r 21 r 2 r 23 Ym + ty ( 1) sZo r 1 12 r FX 1 L_ JL 22 32 33 j Lm, + lt ( 1 on peut ajouter le cas échéant des facteurs d'échelles à cette matrice. Dans cette équation, les coefficients r 11 à r 33 se rapportent aux rotations et les coefficients tx, ty, tz aux When the position of the observer varies, the objects, and in particular their points undergo a change of reference, resulting in a rotation and / or a translation This change of reference is made by a geometric processor according to the following formula, which allows to express the absolute coordinates of each point (xm, Ym, Zm) in the observer's coordinate system (xo, yo, zo) lxol r 11 '12 '13 ml x yo = r 21 r 2 r 23 Ym + ty (1) sZo r 1 12 r FX 1 L_ JL 22 32 33 j Lm, + lt (1 scale factors can be added to this matrix, if any) In this equation, the coefficients r 11 to r 33 relate to rotations and coefficients tx, ty, tz to
translations Ces calculs sont effectués de manière vectorielle. translations These calculations are done in a vectorial way.
Lorsque les coordonnées des points des objets sont calculées dans le repère de l'observateur, on procède à une troncature dans l'espace, afin d'éliminer tous les éléments se trouvant entre l'observateur et un plan de troncature dit plan de troncature avant Ce plan, perpendiculaire à la direction d'observation, pouvant être entre l'observateur et le plan de projection ou au-delà de ce plan de projection Les facettes tronquées par le plan de troncature avant sont découpées puis refermées par l'ajout d'un côté, comme décrit ci-dessous pour la troncature en 2 D, mais ici elle est effectuée en 3 D Le cas échéant, on procède de même avec le plan de troncature arrière, qui est par When the coordinates of the points of the objects are calculated in the observer's coordinate system, a truncation is performed in the space, in order to eliminate all the elements between the observer and a truncation plane called the front truncation plane. This plane, perpendicular to the direction of observation, can be between the observer and the projection plane or beyond this projection plane. The facets truncated by the front truncation plane are cut off and then closed by the addition of one side, as described below for 2 D truncation, but here it is done in 3 D If necessary, the same procedure is followed with the rear truncation plane, which is
exemple le plan de limite de visibilité (ligne d'horizon). example the visibility limit plan (horizon line).
On a représenté en figure 8 la pyramide d'observation 40 relative à un observateur 41, c'est-à-dire la pyramide dont les arêtes joignent l'observateur 41 (supposé ponctuel) aux sommets du plan de projection 42 La direction d'observation Zobs est perpendiculaire au plan de projection 42 On a représenté le plan de clipping avant 43, généralement parallèle au plan 42, situé entre ce FIG. 8 shows the observation pyramid 40 relative to an observer 41, that is to say the pyramid whose edges join the observer 41 (supposedly punctual) to the vertices of the projection plane 42. observation Zobs is perpendicular to the plane of projection 42 is shown the clipping plane before 43, generally parallel to the plane 42, located between this
plan 42 et l'observateur, et un plan de clipping arrière 44, situé au- plane 42 and the observer, and a rear clipping plane 44, located at
delà du plan 42 et parallèle à celui-ci La pyramide tronquée de visualisation est la portion de la pyramide 40 comprise entre le plan de clipping 43 et le plan de projection 42, ou éventuellement entre les deux plans de clipping 43, 44 On a représenté également en figure 8 les angles de vue horizontal Ox et vertical Oy. Une fois ce "clipping" en trois dimensions effectué, on effectue une mise en perspective afin de visualiser sur un écran plat, donc en deux dimensions ( 2 D), les objets à trois dimensions ( 3 D), tout en conservant l'effet visuel de ces trois dimensions La projection la plus simple est celle faisant appel au théorème de Thalès, et est illustrée en figure 9 On y a représenté, en vue de côté, un objet 45 (en 3 D) à visualiser sur une fenêtre de visualisation 46, l'observateur 47 supposé ponctuel regardant dans la direction de visée 48 perpendiculaire à la fenêtre 46 Soit 49 un point quelconque de cet objet La droite joignant 47 à 49 coupe la fenêtre en 50 On appelle Hi et H 2 les distances respectives des points 49 et 50 à la droite 48, et Ll, L 2 les distances respectives de l'observateur 47 à la hauteur Hi et à la fenêtre 46 Selon le théorème de Thalès, on a: LI/Hl = L 2/H 2 Il est donc facile de déterminer l'emplacement sur l'écran 46 du point 50 qui est la projection en perspective du point 49 sur l'écran 46 On procède de The truncated pyramid of viewing is the portion of the pyramid 40 between the clipping plane 43 and the projection plane 42, or possibly between the two clipping planes 43, 44. also in figure 8 the angles of horizontal view Ox and vertical Oy. Once this "clipping" in three dimensions carried out, one carries out a perspective in order to visualize on the flat screen, thus in two dimensions (2 D), the objects three-dimensional (3 D), while maintaining the visual effect of these three dimensions The simplest projection is that using the Thales theorem, and is illustrated in Figure 9 It shows, in side view, a object 45 (in 3 D) to be displayed on a viewing window 46, the observer 47 supposed to be punctual looking in the direction of view 48 perpendicular to the window 46 or 49 any point of this object The straight line 47 to 49 intersects the window to be at 50 We call Hi and H 2 the respective distances of the points 49 and 50 to the line 48, and L1, L2 the respective distances from the observer 47 to the height Hi and to the window 46 According to the Thales theorem, We have: LI / H1 = L2 / H2 It is therefore easy to determine the location on the screen 46 of the point 50 which is the perspective projection of the point 49 on the screen 46.
la même façon pour tous les points de l'objet 45. the same way for all the points of the object 45.
Par convention, et pour des raisons d'efficacité, en même temps, on normalise les coordonnées xe, Ye de tout point de l'écran 46: By convention, and for reasons of efficiency, at the same time, we standardize the coordinates xe, Ye of any point of the screen 46:
-1 xe < 1 et -1 Ye < 1--1 xe <1 and -1 Ye <1-
On a représenté en figure 10 le "volume de clipping normalisé" défini entre l'observateur ponctuel 51 et l'écran normalisé 52 La direction de visée 53, perpendiculaire à l'écran 52, passe par son centre 54 (de coordonnées 0, 0) On a référencé 55 à 58 les milieux des côtés de l'écran 52, de coordonnées normalisées respectives ( 0, 1,), ( 1, O), ( 0, -1), (-1, O) Les arêtes menées du point 51 aux points 55 à 58 sont respectivement référencées 59 à 62 Les angles formés par les arêtes 59, 61 d'une part et 60, 62 d'autre part ont une valeur normalisée de 900 Pour effectuer la mise en perspective, on utilise les paramètres suivants dpp: distance entre l'observateur et l'écran de projection, H 1/2 demi- hauteur de l'écran, L 1/2 demi-largeur de l'écran, e Ox' L 1/2 Fx = cotéy) = d: facteur de normalisation en x, (Oy' 11/2 FIG. 10 shows the "normalized clipping volume" defined between the point observer 51 and the normalized screen 52. The aiming direction 53, perpendicular to the screen 52, passes through its center 54 (with coordinates 0, 0 55 to 58 are referenced the middle of the sides of the screen 52, of respective normalized coordinates (0, 1,), (1, O), (0, -1), (-1, O). from point 51 to points 55 to 58 are respectively referenced 59 to 62 The angles formed by the edges 59, 61 on the one hand and 60, 62 on the other hand have a normalized value of 900. To perform the setting in perspective, it is used the following parameters dpp: distance between the observer and the projection screen, H 1/2 half height of the screen, L 1/2 half-width of the screen, e Ox 'L 1/2 Fx = cotéy) = d: normalization factor in x, (Oy '11/2
Fy= cot =: facteur de normalisation en y. Fy = cot =: normalization factor in y.
k Z} dpp On obtient alors les équations de projection suivantes x x O e Zo Fx e Zo Fy Une fois les informations géométriques déterminées dans le repère écran en deux dimensions, on projette toutes les équations fournissant les autres informations nécessaires à la visualisation profondeur, texture, ombrage, Pour projeter les plan des facettes, on utilise les équations de projection suivantes Axm + B Ym + C Zm + D O lBI Vecteur normal du plan normalisé ( 2) CS Distance du point origine du repère absolu au plan L'équation ci-dessus est définie dans le repère spatial absolu Pour la transformer dans le repère de l'observateur (A', B', C', D'), on utilise la transformation matricielle suivante FA rl, r 12 r 13 Ai i' r 21 =l 2 r r 23 c( 3) D' = D Atx Bty Ctz On calcule la profondeur z, ou plus précisément son inverse N = 1/z, à partir des valeurs normalisées Xe et Ye à l'aide de l'équation A'Fx B'F c' X xx y ' D' e Dl e Dl Les paramètres autres que géométriques, dont on connaît les équations dans le repère trois dimensions, sont transformés de la façon suivante lors de la projection sur l'écran Soit K la valeur de l'un quelconque de ces paramètres (texture, ombrage, luminance,) L'équation donnant K dans le repère monde à trois dimensions est de la forme: K= Px+ P Ym+ y Zm+ ( 5) Pour effectuer la projection, on fait subir aux coefficients (a, ô, y et 5) les transformations de l'équation 3, ce qui donne de nouveaux coefficients (a', Pf', Y et 3 ') L'équation donnant le paramètre K en fonction des coordonnées écran normalisées Xe et Ye est: K= A'F B' ' t 6 A Fxxe e + C' A Xx y,+ 5 ' D' e D Ye D' ax'Fx + 13 'F ye + YI = +' Selon l'invention, on procède à un clipping en trois k Z} dpp The following projection equations are then obtained xx O e Zo Fx e Zo Fy Once the geometrical information has been determined in the two-dimensional screen reference, all the equations providing the other information necessary for the visualization depth, texture, are projected. Shading To project the plane of facets, we use the following projection equations Axm + B Ym + C Zm + DO lBI Normal vector of the normalized plane (2) CS Distance from the origin point of the absolute reference to the plane The equation below above is defined in the absolute spatial coordinate system. To transform it into the observer's coordinate system (A ', B', C ', D'), we use the following matrix transformation FA rl, r 12 r 13 Ai i 'r 21 = l 2 rr 23 c (3) D '= D Atx Bty Ctz We calculate the depth z, or more precisely its inverse N = 1 / z, from the normalized values Xe and Ye using equation A 'Fx B'F c' X xx y 'D' e Dl e Dl Parameters other than geometrical, of which we know the equations in the three-dimensional reference, are transformed in the following way during the projection on the screen Let K be the value of any one of these parameters (texture, shading, luminance,) The equation giving K in the three-dimensional world coordinate is of the form: K = Px + P Ym + y Zm + (5) To perform the projection, we make the coefficients (a, ô, y and 5) undergo the transformations of equation 3, which gives new coefficients (a ', Pf', Y and 3 ') The equation giving the parameter K as a function of the normalized screen coordinates Xe and Ye is: K = A'F B' 't 6 A Fxxe e + C' Xx y, + 5 'D' e D Ye D 'ax'Fx + 13' F ye + YI = + 'According to the invention, a three-way clipping is carried out
dimensions, par la pyramide de visualisation telle que définie ci- dimensions, by the display pyramid as defined above.
dessus en référence à la figure 8, afin d'éliminer tout ce qui dépasse above with reference to Figure 8, in order to eliminate anything that exceeds
des bords de l'écran de projection. the edges of the projection screen.
Ceci revient à exécuter le clipping d'une hyperfacette par This amounts to performing the clipping of a hyperfacette by
un volume convexe délimité par k plans (ici k = 4). a convex volume delimited by k planes (here k = 4).
Tout d'abord, on recherche les faces qui doivent être réellement clippées, c'est-à-dire que l'on élimine d'office celles qui First, we search for the faces that must actually be clipped, that is to say that we eliminate automatically those who
ne doivent manifestement pas être clippées: les faces auto- obviously should not be clipped: the auto-faces
cachées, les faces se trouvant entièrement à l'extérieur de la pyramide de clipping, et celles se trouvant entièrement à l'intérieur de cette pyramide On marque (par exemple par un drapeau de codage) et numérote les faces restantes, qui doivent donc être clippées. Ensuite, pour chacun des k plans de clipping, on examine tour à tour chacun des côtés d'une hyperfacette coupé par le plan de clipping, et on calcule de manière vectorielle pour chacun d'eux le point d'intersection avec le plan de clipping Puis, on "raccourcit" les côtés d'origine pour ne garder que leurs parties se trouvant à I'intérieur de la pyramide de clipping, ce qui revient à pratiquer un clipping de lignes On détermine ainsi les points d'intersection de ces côtés avec le plan de clipping correspondant, et on trie ces points d'intersection par numéro de face de l'hyperfacette, puis le long de la droite de clipping orientée (orientation arbitraire) Enfin, on parcourt la liste triée des points d'intersection et on les relie deux à deux, c'est-à-dire que l'on rajoute des côtés entre ces points hidden, the faces being entirely outside the pyramid of clipping, and those being entirely inside this pyramid One marks (for example by a coding flag) and numbers the remaining faces, which must therefore be clipped. Then, for each of the k clipping planes, we examine in turn each of the sides of a hyperfacette cut by the clipping plane, and we calculate vectorially for each of them the point of intersection with the clipping plane. Then, we "shortened" the original sides to keep only their parts located inside the clipping pyramid, which amounts to practicing a line clipping We thus determine the points of intersection of these sides with the corresponding clipping plane, and we sort these intersection points by face number of the hyperfacette, then along the oriented clipping line (arbitrary orientation) Finally, we go through the sorted list of points of intersection and we connects them two by two, that is to say that we add sides between these points
afin de refermer les faces.to close the faces.
On va maintenant exposer en détail le procédé de sélection des faces à clipper Cette sélection fait appel à un code binaire de P bits attribué à chaque sommet de l'hyperfacette, indiquant sa position par rapport aux P plans de clipping Dans ce code, le bit k (k allant de 1 à P) correspondant au plan k est par exemple à O si le sommet se trouve dans le demi-espace intérieur de ce plan (le demi-espace intérieur est celui contenant la normale intérieure au plan, comme exposé ci-dessus en référence à la figure 2) La sélection des faces à clipper est réalisée au moyen de tests logiques sur ces codes binaires: une face est entièrement visible (n'est pas à clipper) si tous ses côtés sont à l'intérieur de la pyramide de clipping Dans la relation suivante, "U" représente un OU binaire: U codesoet = O ( 7) sonimt E face une face doit être clippée si au moins un de ses côtés intersecte ou si tous ses côtés entourent la pyramide de clipping Le test est le suivant (dans cette relation, "A " est un ET binaire) 3 cote E face codesonmmet 1 ^ c desonmt 2 = O ou U codesomnetl A codesommet 2 = 111 ( 8) cote E face Pour vérifier cette relation, soit il faut et il suffit qu'un côté d'une face coupe le plan de clipping (un de ses sommets est The method for selecting faces to be clipped will now be described in detail. This selection uses a binary P-bit code assigned to each vertex of the hyperfacette, indicating its position relative to the P clipping planes. In this code, the bit k (k ranging from 1 to P) corresponding to the plane k is for example O if the vertex is in the inner half-space of this plane (the inner half-space is that containing the normal inside the plane, as shown in above with reference to FIG. 2) The selection of the faces to be clipped is carried out by means of logical tests on these binary codes: a face is entirely visible (is not to be clipped) if all its sides are inside the clipping pyramid In the following relation, "U" represents a binary OR: U codesoet = O (7) E faces a face must be clipped if at least one of its sides intersects or if all its sides surround the clipping pyramid The test is the following (in this relation, "A" is a binary AND) 3 side E face codesonmmet 1 ^ c desonmt 2 = O or U codesomnetl A codeset 2 = 111 (8) side E face To verify this relation, it is necessary and sufficient that one side of a face intersects the clipping plane (one of its vertices is
dans le demi-espace intérieur, et l'autre sommet dans le demi- in the inner half-space, and the other vertex in the half
espace extérieur), soit il faut que les côtés de la face entourent la pyramide (donc que tous les bits de l'union des codes des intersections des côtés soient à 1) Ce test est plus complexe que la simple intersection des codes de chaque sommet de la face, mais permet d'éliminer les faces coupées par un ou plusieurs plans mais outer space), either the sides of the face must surround the pyramid (so that all the bits of the union of the codes of the intersections of the sides are at 1) This test is more complex than the simple intersection of the codes of each vertex of the face, but allows to eliminate the faces cut by one or more planes but
extérieurs à la pyramide.outside the pyramid.
Bien entendu, les autres faces, qui ne répondent pas à ces tests, sont extérieures à la pyramide et ne sont pas sélectionnées. Les côtés des faces à clipper étant clippés dans n'importe quel ordre, il est nécessaire de trier les points d'intersection avant de refermer ces faces Le critère de tri (coordonnée x ou y des points d'intersection) varie, bien entendu, selon la plan de clipping concerné Selon le procédé de l'invention, on trie ces points Of course, the other faces, which do not respond to these tests, are outside the pyramid and are not selected. The sides of the clipper faces being clipped in any order, it is necessary to sort the points of intersection before closing these faces. The sorting criterion (x or y coordinate of the points of intersection) varies, of course, according to the clipping plane concerned According to the method of the invention, these points are sorted
d'intersection par plan de clipping. intersection by clipping plane.
Pour le clipping en deux dimensions, on oriente arbitrairement les bords de la fenêtre de visualisation, par exemple de gauche à droite pour les bords horizontaux, et de haut en bas pour les bords verticaux Le critère de tri est donc la coordonnée x For clipping in two dimensions, the edges of the viewing window are arbitrarily oriented, for example from left to right for the horizontal edges, and from top to bottom for the vertical edges. The sorting criterion is therefore the x-coordinate
ou y du point d'intersection.or y from the point of intersection.
Pour le clipping en trois dimensions, il faut tenir compte du fait que la droite d'intersection du plan de clipping et du plan de la face à clipper peut avoir n'importe quelle pente Ainsi, par exemple, en figure 11, on a représenté un plan de clipping 63 dans le repère orthonormé Oxyz (Oz étant la direction d'observation, à laquelle le plan 63 est perpendiculaire, ce plan étant à une distance z = dpa de l'observateur) Sur la figure 11, on a représenté trois parties de faces coupées par le plan 63 et référencées 64 à 66 Les parties de faces visibles en figure 1 I sont celles se trouvant au-delà du plan 63 (par rapport à l'observateur) Les droites d'intersection respectives Dl à D 3 ont des pentes différentes et quelconques par rapport aux axes Ox et Oy On ne peut donc pas décider de trier For clipping in three dimensions, it must be taken into account that the line of intersection of the clipping plane and the plane of the face to be clipped can have any slope Thus, for example, in FIG. 11, there is shown a clipping plane 63 in the orthonormal coordinate system Oxyz (where Oz is the observation direction, at which the plane 63 is perpendicular, this plane being at a distance z = dpa from the observer). FIG. 11 shows three parts of faces intersected by the plane 63 and referenced 64 to 66 The parts of faces visible in FIG. 1 are those lying beyond the plane 63 (with respect to the observer) The respective intersection lines D1 to D3 have different slopes and any relative to the axes Ox and Oy So we can not decide to sort
arbitrairement selon les coordonnées en x ou en y. arbitrarily according to the coordinates in x or y.
Le plan de clipping étant perpendiculaire à Oz, son équation est très simple, et les coefficients a et b de l'équation de la face clippée caractérisent directement la pente de la droite d'intersection L'équation de cette droite est de la forme fax + by + cz + d = O LZ= dpa soit, après substitution y = a x + K ( K = constante b On détermine alors le critère de tri (en 3 D) de la façon suivante: The clipping plane being perpendicular to Oz, its equation is very simple, and the coefficients a and b of the equation of the clipped face directly characterize the slope of the line of intersection. The equation of this line is of the form fax + by + cz + d = O LZ = dpa is, after substitution y = ax + K (K = constant b We then determine the sorting criterion (in 3 D) as follows:
si (lai < Ibi), on trie selon les x, sinon on trie selon les y. if (lai <Ibi), we sort according to the x, otherwise we sort according to the y's.
Pour terminer le clipping, il faut fermer les faces clippées. To finish the clipping, it is necessary to close the clipped faces.
Pour cela, il faut déterminer quelle est la face gauche et quelle est la face droite du nouveau côté (joignant les côtés raccourcis) Ce nouveau côté se situe sur le plan (ou la droite) de clipping Ce n'est donc pas un côté partagé Sa deuxième face est la face droite ou For this, it is necessary to determine which is the left face and which is the right face of the new side (joining the shortened sides) This new side is on the plane (or the right) of clipping It is thus not a shared side His second face is the right side or
gauche de l'un des côtés clippés. left of one of the clipped sides.
Pour le clipping 2 D, l'orientation de la droite de clipping permet à elle seule de dire s'il s'agit de la face droite ou de la face gauche On a représenté en figures 12 et 13 respectivement, conformément aux conventions décrites ci-dessus en référence à la figure 2, le cas o la face visible F est une face gauche (par rapport au segment orienté de Il vers 12), et le cas o la face visible F est une face droite (toujours par rapport au segment orienté de Il vers 12). Dans le cas du clipping 3 D, il faut connaître également le sens de la normale (i) à la face à clipper On a représenté en figures 14 et 15 les deux cas possibles, en se référant aux conventions établies en référence à la figure 2 Pour ces deux cas, on clippe une face triangulaire F dont la partie se trouvant à droite (telle que vue sur le dessin) du plan de clipping 67 subsiste Les cas des figures 14 et 15 se distinguent seulement par l'orientation de la normale il à la face à clipper, ce qui fait que dans le cas de la figure 14, on ne garde que la face droite, et dans le cas de la figure 15, on ne garde que la face gauche L'équation de cette normale est de la forme: ax + by + cz + D = O A priori, on pourrait penser que les signes des trois paramètres a, b, c et le critère de tri peuvent influer sur le choix final, ce qui obligerait à examiner seize cas En fait, après étude de tous ces cas, on s'aperçoit qu'en effectuant des regroupements appropriés, leur nombre se réduit à deux Le premier cas se présente lorsque le tri doit se faire selon l'axe Ox et lorsque b < 0, ou bien lorsque a > O, et dans ce cas, la face gauche doit être conservée Le deuxième cas se présente lorsqu'aucune de ces deux For clipping 2 D, the orientation of the clipping line alone makes it possible to say whether it is the right face or the left face. FIGS. 12 and 13 are respectively represented, in accordance with the conventions described herein. above with reference to FIG. 2, the case where the visible face F is a left face (with respect to the segment oriented from Il to 12), and the case where the visible face F is a right face (always with respect to the segment oriented from He to 12). In the case of clipping 3 D, it is also necessary to know the direction of the normal (i) to the face to be clipped. FIGS. 14 and 15 show the two possible cases, with reference to the conventions established with reference to FIG. For these two cases, one clippes a triangular face F whose part lying on the right (as seen in the drawing) of the clipping plane 67 remains The case of Figures 14 and 15 are distinguished only by the orientation of the normal it to the face to clipper, so that in the case of Figure 14, we keep only the right side, and in the case of Figure 15, we keep only the left side The equation of this normal is to the form: ax + by + cz + D = OA a priori, one might think that the signs of the three parameters a, b, c and the sorting criterion can influence the final choice, which would require examining sixteen cases. after studying all these cases, we realize that by carrying out appropriate groupings, their number is reduced to two The first case occurs when the sorting must be done along the axis Ox and when b <0, or when a> O, and in this case, the left face must be preserved The second case arises when 'none of these two
conditions n'est remplie, et la face droite doit alors être conservée. conditions are met, and the right face must be preserved.
Le procédé de visualisation décrit ci-desus est avantageusement suivi d'un processus d'élimination des parties cachées (processus tel que: "Z-Buffer", tri topologique, balayage The visualization method described above is advantageously followed by a process of elimination of the hidden parts (process such as: "Z-Buffer", topological sort, scanning
de lignes,).of lines,).
Claims (8)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9207891A FR2693012A1 (en) | 1992-06-26 | 1992-06-26 | Visualisation procedure for synthetic images of volumes in real=time - by maintaining database of data relating to topological, geometric and photometric attributes of volumes in order to represent them as polyhedrons revealing hidden surfaces and to project images in two dimensions |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9207891A FR2693012A1 (en) | 1992-06-26 | 1992-06-26 | Visualisation procedure for synthetic images of volumes in real=time - by maintaining database of data relating to topological, geometric and photometric attributes of volumes in order to represent them as polyhedrons revealing hidden surfaces and to project images in two dimensions |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2693012A1 true FR2693012A1 (en) | 1993-12-31 |
FR2693012B1 FR2693012B1 (en) | 1997-02-28 |
Family
ID=9431251
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR9207891A Granted FR2693012A1 (en) | 1992-06-26 | 1992-06-26 | Visualisation procedure for synthetic images of volumes in real=time - by maintaining database of data relating to topological, geometric and photometric attributes of volumes in order to represent them as polyhedrons revealing hidden surfaces and to project images in two dimensions |
Country Status (1)
Country | Link |
---|---|
FR (1) | FR2693012A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0747861A1 (en) * | 1995-06-08 | 1996-12-11 | Hewlett-Packard Company | Computer graphics system having high performance primitive clipping preprocessing |
US6137497A (en) * | 1997-05-30 | 2000-10-24 | Hewlett-Packard Company | Post transformation clipping in a geometry accelerator |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0193151A2 (en) * | 1985-02-26 | 1986-09-03 | Sony Corporation | Method of displaying image |
-
1992
- 1992-06-26 FR FR9207891A patent/FR2693012A1/en active Granted
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0193151A2 (en) * | 1985-02-26 | 1986-09-03 | Sony Corporation | Method of displaying image |
Non-Patent Citations (2)
Title |
---|
COMPUTER VISION GRAPHICS AND IMAGE PROCESSING vol. 40, no. 2, Novembre 1987, DULUTH, MA US pages 188 - 204 GUTING 'NEW ALGORITHMS FOR SPECIAL CASES OF THE HIDDEN LINE ELIMINATION PROBLEM' * |
MICROPROCESSING AND MICROPROGRAMMING. vol. 24, no. 1-5, Août 1988, AMSTERDAM NL pages 581 - 588 , XP105698 ANIDO E.A. 'THE ARCHITECTURE OF RIGS: A RISC FOR IMAGE GENERATION IN A MULTI-MICROPROCESSOR ENVIRONMENT' * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0747861A1 (en) * | 1995-06-08 | 1996-12-11 | Hewlett-Packard Company | Computer graphics system having high performance primitive clipping preprocessing |
US5720019A (en) * | 1995-06-08 | 1998-02-17 | Hewlett-Packard Company | Computer graphics system having high performance primitive clipping preprocessing |
US6137497A (en) * | 1997-05-30 | 2000-10-24 | Hewlett-Packard Company | Post transformation clipping in a geometry accelerator |
Also Published As
Publication number | Publication date |
---|---|
FR2693012B1 (en) | 1997-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yu et al. | General linear cameras | |
Westenberg et al. | Volumetric attribute filtering and interactive visualization using the max-tree representation | |
Bittner et al. | Hierarchical visibility culling with occlusion trees | |
US5574835A (en) | Bounding box and projections detection of hidden polygons in three-dimensional spatial databases | |
US20190362152A1 (en) | Tagging virtualized content | |
Kaufman et al. | Overview of volume rendering. | |
Zwicker et al. | EWA splatting | |
Nirenstein et al. | Exact from-region visibility culling | |
US8531457B2 (en) | Apparatus and method for finding visible points in a cloud point | |
US20020163515A1 (en) | Using ancillary geometry for visibility determination | |
Sagawa et al. | Adaptively merging large-scale range data with reflectance properties | |
CN111009033B (en) | OpenGL-based lesion area visualization method and system | |
US20060251294A1 (en) | System and method for dynamically analyzing a mobile object | |
US6978230B1 (en) | Apparatus, system, and method for draping annotations on to a geometric surface | |
Decaudin et al. | Volumetric billboards | |
Andújar et al. | LOD visibility culling and occluder synthesis | |
Sommer et al. | An interactive visualization and navigation tool for medical volume data | |
Lucas et al. | Visualization of volume data in confocal microscopy: comparison and improvements of volume rendering methods | |
Pantazopoulos et al. | Occlusion culling algorithms: A comprehensive survey | |
WO2022177705A1 (en) | Texture based fusion for images with cameras having differing modalities | |
Zhang et al. | Shadows and soft shadows with participating media using splatting | |
FR2749421A1 (en) | Transfer of multiple level graphical data from server to client | |
FR2693012A1 (en) | Visualisation procedure for synthetic images of volumes in real=time - by maintaining database of data relating to topological, geometric and photometric attributes of volumes in order to represent them as polyhedrons revealing hidden surfaces and to project images in two dimensions | |
Correa et al. | Dataset traversal with motion-controlled transfer functions | |
JP3586871B2 (en) | 3D CT image display method |