FR2714505A1 - Dispositif et procédé pour générer une image destinée à un traitement graphique d'ordinateur tridimensionnel. - Google Patents

Dispositif et procédé pour générer une image destinée à un traitement graphique d'ordinateur tridimensionnel. Download PDF

Info

Publication number
FR2714505A1
FR2714505A1 FR9415806A FR9415806A FR2714505A1 FR 2714505 A1 FR2714505 A1 FR 2714505A1 FR 9415806 A FR9415806 A FR 9415806A FR 9415806 A FR9415806 A FR 9415806A FR 2714505 A1 FR2714505 A1 FR 2714505A1
Authority
FR
France
Prior art keywords
micropolygon
curved surface
pixel
multiplicity
texture data
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
Application number
FR9415806A
Other languages
English (en)
Other versions
FR2714505B1 (fr
Inventor
Mochizuki Yoshiyuki
Hirai Makoto
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of FR2714505A1 publication Critical patent/FR2714505A1/fr
Application granted granted Critical
Publication of FR2714505B1 publication Critical patent/FR2714505B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping

Landscapes

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

Abstract

Il s'agit d'un dispositif de l'invention prévu pour générer une image incluant une multiplicité de pixels par projection d'une multiplicité de données de texture sur une surface d'objet. Le dispositif comprend: une section de transmission géométrique servant à transformer géométriquement une surface courbe définie dans un espace tridimensionnel en une surface courbe située dans une grille bidimensionnelle, une section de génération de micropolygone servant à diviser la surface courbe située dans la grille bidimensionnelle en une multiplicité de surfaces courbes partielles en concordance avec le nombre de la multiplicité de données de texture et à générer un micropolygone en concordance avec chacune de la multiplicité de surfaces courbes partielles, une section de détermination d'attribution de zones servant à déterminer une attribution de zones du micropolygone à un pixel inclus dans l'image sur la base d'une relation positionnelle relative entre le micropolygone et le pixel, une section d'acquisition de données de texture servant à acquérir des données de texture en concordance avec le micropolygone et une section de détermination de valeur d'intensité servant à déterminer une valeur d'intensité du pixel sur la base de l'attribution de zones déterminée par la section de détermination d'attribution de zones et par la donnée de texture acquise par la section d'acquisition de données de texture.

Description

DISPOSITIF ET PROCEDE POUR GENERER UNE IMAGE DESTINEE A UN
TRAITEMENT GRAPHIQUE D'ORDINATEUR TRIDIMENSIONNEL.
ARRIERE-PLAN DE L'INVENTION
1. Domaine de l'Invention: La présente invention se rapporte à un dispositif et un procédé destinés à générer rapidement une image de haute qualité dans un traitement graphique d'ordinateur tridimensionnel.
2. Description de la Technique Apparentée:
Le lancé de rayons et le flux de rayonnement effectif sont connus comme des techniques classiques caractéristiques servant à générer une image de haute qualité. Ces techniques présentent un désavantage en ce qu'un temps considérablement long est requis d'une manière croissante pour mener à bien le calcul, à mesure que la scène que l'on veut afficher devient plus complexe et que le modèle que l'on veut afficher grandit en dimension. Un tel désavantage constitue un problème critique, particulièrement lorsqu'une animation, incluant des scènes complexes et des modèles de grandes dimensions, doit être produite. L'un des avantages principaux du lancé de rayons et du flux de rayonnement
effectif réside dans un effet d'éclairage non local.
Toutefois, un tel effet peut être approximativement obtenu par une projection de la texture de surface. En fait, il est plus important d'obtenir un avantage en ce qu'une image de haute qualité d'une forme complexe et d'un modèle de grandes dimensions puissent être affichés en une brève durée, plutôt que d'obtenir l'effet d'éclairage non local par le lancé de rayons et par le flux de rayonnement effectif. Sous ce rapport, Cook et al ont conçu une technique de rendu dans laquelle tous les objets sont réduits à des micropolygones constitués en unités de base. Cette technique est décrite en détail dans l'article suivant: Robert L. Cook, Loren Carpenter, Edwin Catmull "The Reyes Image Rendering Architecture", Computer Graphics (SIGGRAPH'87 Proceedings), Vol. 21, n 4, pages 95 à 102,
juillet 1987.
Les grandes lignes de cette technique sont décrites ci-
après. Tout d'abord, des polygones et surfaces courbes qui constituent des objets définis dans un espace universel (à savoir un espace tridimensionnel) sont divisés en entités géométriques appelées micropolygones. Le processus de division est effectué, à titre d'exemple, par calcul de Babbag progressif, d'une manière telle que chaque micropolygone possède une surface d'environ 1/4 de pixel si elle est transformée en grille bidimensionnelle. On indiquera que le processus de division est toujours effectué dans un système de coordonnées spatiales de visualisation à trois dimensions. Après le processus de division, les micropolygones obtenus sont géométriquement transformés en grilles bidimensionnelles. Les micropolygones
géométriquement transformés sont traités par découpe.
Ensuite, une attribution des zones par pixel est déterminée par chaque micropolygone par scintillement qui constitue un type d'échantillonnage aléatoire. Il en résulte qu'une image est générée. La méthode d'échantillonnage aléatoire est similaire à la méthode de Monte Carlo et le scintillement, qui constitue un type d'échantillonnage aléatoire, est utilisé pour l'échantillonnage des micropolygones qui chevauchent des sous-pixels. Précisément, un pixel est
divisé en un certain nombre de sous-pixels et chaque sous-
pixel comporte un point d'échantillonnage en son milieu.
L'emplacement du point d'échantillonnage à l'intérieur du sous- pixel est déterminé en ajoutant un déplacement aléatoire à l'emplacement du centre du sous-pixel. Un tel mode de détermination de l'emplacement est appelé scintillement. L'opération de scintillement est requise d'être répétée un nombre prédéterminé de fois obtenu en multipliant le nombre de pixels devant être écrit par restitution par le nombre de divisions nécessaire pour générer les sous-pixels. Une image produite par le procédé de restitution précédemment décrit est comparable aux images produites par le procédé de lancé de rayons et le procédé de
rayonnement effectif.
Toutefois, par le procédé de restitution précédemment décrit, les micropolygones sont générés dans un système de coordonnées spatiales pour visualisation en trois dimensions, d'une manière telle que tous les micropolygones générés doivent être géométriquement transformés en grilles bidimensionnelles. Le nombre de polygones générés est de 6 800 000 dans l'exemple qui est décrit dans l'article précédemment indiqué. Dans une scène plus complexe, le nombre de micropolygones est encore accru. Ainsi, une quantité énorme de calculs est requise pour les transformations géométriques pour la totalité des micropolygones. Du fait que le procédé précédemment décrit utilise le scintillement, il est nécessaire de produire des nombres aléatoires un nombre prédéterminé de fois qui sont déterminés en multipliant le nombre de pixels qui doivent être écrits par restitution par le nombre de divisions nécessaire pour générer lès sous-pixels. Il est expérimentalement connu que, dans une scène complexe, l'opération d'écriture des pixels est effectuée pour trois ou quatre grilles. Même si la grille est de petites dimensions, celle-ci comprend 640 x 480 pixels. Dans l'article précédemment indiqué, le nombre de divisions pour générer des sous-pixels est de 16, de sorte que la génération de nombres aléatoires est répétée au moins de 14 745 600 fois. Il en résulte qu'une énorme quantité de calculs est également requise pour l'opération de scintillement.
RESUME DE L'INVENTION
L'appareil de la présente invention servant à générer une image comprenant une multitude de pixels par projection d'une multitude de données de texture sur une surface d'un objet, comprend: un moyen de transformation géométrique servant à transformer géométriquement une surface courbe définie dans un espace tridimensionnel en une surface courbe dans une grille bidimensionnelle, un moyen de génération de micropolygones servant à diviser la surface courbe inscrite dans la grille bidimensionnelle en une multitude de surfaces courbes partielles en concordance avec le nombre de la multitude de données de texture et à générer un micropolygone en conformité avec chacune de la multitude de surfaces courbes partielles, des moyens de détermination d'attribution de zones servant à déterminer une attribution de zones du micropolygone à un pixel inclus dans l'image, sur la base d'une relation positionnelle relative entre le micropolygone et le pixel, un moyen d'acquisition de données de texture servant à acquérir des données de texture en conformité avec le micropolygone et un moyen de détermination de valeur d'intensité servant à déterminer une valeur d'intensité du pixel sur la base de l'attribution de la zone déterminée par le moyen de détermination d'attribution de zones et les données de texture acquises
par le moyen d'acquisition de données de texture.
Dans un premier mode de réalisation de l'invention, la surface courbe définie dans l'espace tridimensionnel est définie par une multitude de premiers points de référence, l'appareil comprenant en outre: un moyen servant à calculer une multitude de points sur la surface courbe définie dans l'espace tridimensionnel sur la base de la multitude de premiers points de référence, un moyen servant à transformer la multitude de points présente sur la surface courbe définie dans l'espace tridimensionnel en une multitude de points présents sur la grille bidimensionnelle et un moyen servant à calculer une multitude de seconds points de référence sur la base de la multitude de points présents sur la surface courbe dans la grille bidimensionnelle, ayant pour effet que la surface courbe située dans la grille bidimensionnelle soit définie par la multitude de seconds
points de référence.
Dans un autre mode de réalisation de l'invention, le moyen de génération de micropolygones représente approximativement chacune de la multitude de surfaces courbes partielles sous la forme d'un premier polygone au moins possédant une forme prédéterminée et produit un micropolygone correspondant au premier polygone au moins
représenté d'une manière approximative.
Dans un autre mode de réalisation de l'invention, le polygone possédant la forme prédéterminée comprend l'un au moins d'un quadrilataire, d'un parallélogramme et d'un
triangle.
Dans un autre mode de réalisation de l'invention, le micropolygone est défini par un point de base et par une multitude de vecteurs, le moyen de détermination d'attribution de zones comprenant: une table d'attribution de zones servant à mémoriser une multitude d'attributions de zones qui sont préalablement définies, un moyen de génération d'adresse servant à générer une adresse lorsqu'il est fait référence à la table d'attribution de zones sur la base de l'emplacement du point de base et de la multitude de vecteurs et un moyen de référence à l'attribution de zones servant à obtenir une attribution de zones du micropolygone par pixel, en se référant à la table d'attribution de zones en conformité avec l'adresse générée par le moyen générateur d'adresse. Dans un autre mode de réalisation de l'invention, l'appareil comprend en outre un moyen de redivision servant à diviser les micropolygones d'une manière répétée jusqu'à ce que la dimension des micropolygones produits par le moyen de génération de micropolygones devienne égale, ou plus petite, qu'une dimension prescrite, d'o il résulte que seuls des micropolygones présentant des tailles qui sont égales à la taille prescrite, ou en sont plus petits, sont
délivrés au moyen de détermination d'attribution de zones.
Dans un autre mode de réalisation de l'invention, la surface courbe située dans l'espace tridimensionnel comprend une face avant et une face arrière, l'appareil comprenant en outre un moyen de tri avant-arrière servant à déterminer un micropolygone qui n'est pas restitué sur la base d'une information définissant une direction de la face avant de la surface courbe et d'une information définissant une
direction d'un vecteur normal du micropolygone.
Dans un autre mode de réalisation de l'invention, l'appareil comprend en outre: un moyen servant à modifier une génération de séquences des micropolygones, d'une manière telle que les micropolygones soient produits selon une direction prédéterminée par rapport à une profondeur de la grille bidimensionnelle et un moyen servant à modifier une séquence d'accès aux données de texture en fonction de
la séquence de génération modifiée des micropolygones.
Dans un autre mode de réalisation de l'invention, le micropolygone est défini par un point de base et par une multitude de vecteurs, chacun de la multitude de pixels étant divisé en une multitude de sous-pixels, chacun de la multitude de sous-pixels comportant un point représentatif défini situé à l'intérieur de ceux-ci et dans lequel ledit moyen de détermination d'attribution de zones comprend: un moyen de détermination intérieur/extérieur servant à déterminer si le point représentatif du sous-pixel est positionné ou non à l'intérieur d'une région définie par le micropolygone, en fonction d'une relation positionnelle relative parmi le point représentatif du sous-pixel, le point de base et la multitude de pixels, un moyen de comptage servant à compter le nombre de sous-pixels possédant des points représentatifs qui sont positionnés à l'intérieur de la région définie par le micropolygone sur la base du résultat de la détermination par le moyen de détermination intérieur/extérieur et un moyen de calcul d'attributions de zones servant à calculer l'attribution de zones sur la base du nombre de sous-pixels compté par le
moyen de comptage et par les zones des sous-pixels.
Conformément à un autre aspect de l'invention, un procédé servant à produire une image comprenant une multitude de pixels par projection d'une multitude de
données de texture sur une surface d'un objet est proposé.
Le procédé comprend les étapes consistant à: (a) transformer géométriquement une surface courbe définie dans un espace tridimensionnel en une surface courbe située dans une grille bidimensionnelle, (b) diviser la surface courbe située dans la grille bidimensionnelle en une multitude de surfaces courbes partielles en concordance avec le nombre de la multitude de données de texture, (c) produire un micropolygone en conformité avec chacune de la multitude de surfaces courbes partielles, (d) déterminer une attribution de zones du micropolygone pour un pixel inclus dans l'image, sur la base d'une relation positionnelle relative entre le micropolygone et le pixel, (e) acquérir l'une de la multitude de données de texture en corcondance avec le micropolygone et (f) déterminer une valeur d'intensité du pixel sur la base de l'attribution de zones déterminée à
l'étape (d) et la donnée de texture acquise à l'étape (e).
Dans un premier mode de réalisation de l'invention, la surface courbe définie dans l'espace tridimensionnel est définie par une multitude de premiers points de référence, le procédé comprenant en outre les étapes consistant à: calculer une multitude de points sur la surface courbe définie dans l'espace tridimensionnel sur la base de la multitude de premiers points de référence, transformer la multitude de points situés sur la surface courbe définie dans l'espace tridimensionnel en une multitude de points situés sur la grille bidimensionnelle et calculer une multitude de seconds points de référence, sur la base de la multitude de points situés sur la surface courbe dans la grille bidimensionnelle, d'o il résulte que la surface courbe située dans la grille bidimensionnelle est définie
par la multitude de seconds points de référence.
Dans un autre mode de réalisation de l'invention, l'étape (c) comprend les étapes consistant à: représenter approximativement chacune de la multitude de surfaces courbes partielles sous la forme d'un polygone au moins possédant une forme prédéterminée et produire un micropolygone correspondant à au moins un polygone
représenté approximativement.
Dans un autre mode de réalisation de l'invention, le polygone possédant la forme prédéterminée comprend l'un au moins d'un quadrilataire, d'un parallélogramme et d'un triangle. Dans un autre mode de réalisation de l'invention, le micropolygone est défini par un point de base et par une multitude de vecteurs, l'étape (d) comprenant l'étape consistant à sélectionner une attribution de zones du micropolygone pour un pixel parmi une multitude d'attributions de zones qui sont précédemment définies sur la base de l'emplacement du point de base et de la multitude de vecteurs. Dans un autre mode de réalisation de l'invention, le procédé comporte en outre l'étape consistant à diviser les micropolygones d'une manière répétée jusqu'à ce que les dimensions des micropolygones produits à l'étape (c)
deviennent égales à une taille prescrite ou plus petite.
Dans un autre mode de réalisation de l'invention, la surface courbe située dans l'espace tridimensionnel comporte une face avant et une face arrière, le procédé comprenant en outre l'étape consistant à déterminer un micropolygone qui n'est pas restitué sur la base d'une information définissant une direction de la face avant de la surface courbe et d'une information définissant une direction d'un vecteur normal du micropolygone. Dans un autre mode de réalisation de l'invention, le procédé comporte en outre les étapes consistant à: modifier une séquence de génération de micropolygones d'une manière telle que les micropolygones soient produits selon une direction prédéterminée par rapport à une profondeur de la grille bidimensionnelle et modifier une séquence d'accès à la donnée de texture en fonction de la séquence de
génération modifiée des micropolygones.
Dans un autre mode de réalisation de l'invention, le micropolygone est défini par un point de base et par une multitude de vecteurs, chacun de la multitude de pixels étant divisé en une multitude de sous-pixels, chacune des multitudes des sous-pixels comportant un point représentatif défini situé à l'intérieur de celui-ci et dans.lequel l'étape (d) comprend les étapes consistant: déterminer si le point représentatif du sous-pixel est positionné dans une région définie par le micropolygone ou non, en fonction d'une relation positionnelle relative parmi le point représentatif du sous-pixel, le point de base et la multitude de vecteurs, compter le nombre de sous-pixels possédant des points représentatifs qui sont positionnés à l'intérieur de la région définie par le micropolygone, sur la base du résultat de la détermination et calculer
l'attribution de zones sur la base du nombre compté de sous-
pixels et de zones de sous-pixels.
Dans un autre mode de réalisation de l'invention, la donnée de texture contient une valeur d'intensité, l'étape (f) comprend l'étape consistant à: calculer un produit de l'attribution de zones et de la valeur d'intensité de la donnée de texture, seulement lorsqu'une somme d'attributions
de zones avec le pixel est plus petite que 1.
Dans un autre mode de réalisation de l'invention, la donnée de texture contient une valeur d'intensité et un pouvoir couvrant, l'étape (f) comprenant l'étape consistant à: calculer un produit de l'attribution de zones, la valeur d'intensité des données de texture et le pouvoir couvrant de la donnée de texture, seulement lorsqu'une somme des
attributions de zones avec le pixel est plus petite que 1.
Dans un autre mode de réalisation de l'invention, la donnée de texture contient une valeur d'intensité et un pouvoir couvrant, une attribution de pixels est définie comme un produit de l'attribution de zones et du pouvoir couvrant de la donnée de texture, l'étape (f) comprenant l'étape consistant à: calculer un produit de l'attribution de zones, de la valeur d'intensité de la donnée de texture et du pouvoir couvrant de la donnée de texture, seulement lorsqu'une somme des attributions de pixels est plus petite
que 1.
Dans un autre mode de réalisation de l'invention, la donnée de texture contient une valeur d'intensité et un pouvoir couvrant, une attribution de pixels est définie comme un produit de l'attribution de zones et du pouvoir couvrant de la donnée de texture, l'étape (f) comprend l'étape consistant à: calculer un produit de l'attribution de zones, de la valeur d'intensité de la donnée de texture et du pouvoir couvrant de la donnée de texture, seulement lorsqu'une somme des attributions de zones pour le pixel est plus petite que 1 et qu'une somme de attributions de pixels
est plus petite que 1.
Conformément à un autre aspect de l'invention, un appareil servant à générer une image comprend: un moyen de transformation géométrique servant à transformer géométriquement une surface courbe définie dans un espace tridimensionnel en une surface courbe située dans une grille bidimensionnelle, un moyen de génération de micropolygones servant à diviser la surface courbe située dans la grille bidimensionnelle en une multitude de surfaces courbes partielles et à produire un micropolygone en conformité avec chacune de la multitude de surfaces courbes partielles et un
moyen de restitution servant à restituer le micropolygone.
Conformément à un autre aspect de l'invention, un procédé servant à générer une image comprend les étapes consistant à: (a) transformer géométriquement une surface courbe définie dans un espace tridimensionnel en une surface courbe située dans une grille bidimensionnelle, (b) diviser la surface courbe située dans la grille bidimensionnelle en une multitude de surfaces courbes partielles, (c) produire un micropolygone en conformité avec chacune de la multitude de surfaces courbes partielles et (d) restituer le micropolygone. Conformément à l'invention, des micropolygones sont produits dans une grille bidimensionnelle, d'une manière telle que les transformations géométriques d'un grand nombre de micropolygones ne sont pas requises. En outre, la quantité de calcul est réduite au deux tiers si on la compare au procédé classique du fait qu'il est suffisant de calculer deux valeurs de coordonnées et des composants en vue de déterminer les emplacements et les tailles, dans le cas o les micropolygones sont produits dans l'espace bidimensionnel. En variante, dans le cas o les micropolygones sont produits dans l'espace tridimensionnel, il est nécessaire de calculer trois valeurs et composantes de coordonnées en vue de déterminer les emplacements et les tailles. Conformément à l'invention, les attributions de zones des micropolygones pour les pixels sont préalablement mémorisées dans un format de tableau et une attribution de zones est déterminée sur la base de la table d'attribution de zones mémorisée. C'est ainsi que l'opération de scintillement n'est pas requise, de sorte que la quantité de
calcul est grandement réduite.
Ainsi, l'invention ici décrite rend possible l'avantage de proposer un appareil et un procédé servant à générer une image destinée à un traitement graphique d'ordinateur tridimensionnel dans lequel les micropolygones sont produits dans une grille bidimensionnelle, des attributions de zones de micropolygones aux pixels sont mémorisées dans un format de table et une attribution de zones est déterminée sur la base de la table mémorisée, d'une manière telle que la quantité de calcul est grandement réduite, ce qui a pour effet qu'une image de haute qualité qui est comparable à celle générée par les procédés classiques peut être générée rapidement. Ces avantages et autres de la présente invention ressortiront à l'homme de l'art à la lecture et à la
compréhension de la description détaillée suivante en
référence aux figures annexées.
BREVE DESCRIPTION DES DESSINS
La figure 1 est un schéma montrant la construction d'un
générateur d'image dans un premier exemple de l'invention.
La figure 2 est un schéma montrant la construction d'un
générateur d'image dans un second exemple de l'invention.
La figure 3 est un schéma servant à illustrer une
surface à spline du type B bicubique.
La figure 4 est un schéma servant à illustrer le cas dans lequel est obtenu un point situé sur une surface courbe d'une surface à spline du type B bicubique. La figure 5 est un schéma servant à illustrer les
surfaces divisées.
La figure 6 est un schéma servant à illustrer des sous-
polygones. Les figures 7A à 7C sont des schémas servant à illustrer
des micropolygones.
Les figures 8A, 8B, 8C et 8D sont des schémas servant à
expliquer un procédé destiné à produire des micropolygones.
La figure 9 est un schéma servant à illustrer des points
de division servant à produire des sous-micropolygones.
La figure 10 est un schéma servant à illustrer un tri arrière-avant. La figure 11 est un schéma servant à illustrer la relation entre l'agencement des points de référence et la
surface arrière.
La figure 12 est un schéma servant à illustrer des
attributions de surfaces.
La figure 13 est un schéma servant à illustrer un procédé destiné à générer des adresses et une manière
suivant laquelle on se réfère aux attributions de zones.
Les figures 14A et 14B sont des schémas montrant la
structure des adresses.
La figure 15 est un schéma montrant la structure des données de sortie après la référence à l'attribution de
surfaces.
La figure 16 est un schéma servant à illustrer une séquence de nombres utilisée pour une modification de
l'accès aux données de texture.
La figure 17 est un schéma servant à illustrer un sous-
pixel et son centre.
La figure 18 est un schéma servant à illustrer un lemme permettant de déterminer si un point de base est positionné
à l'intérieur ou à l'extérieur d'un micropolygone.
La figure 19 est un schéma représentant une région rectangulaire minimale incluant un micropolygone.
DESCRIPTION DES MODES DE REALISATION PREFERES
On décrira ci-après un générateur d'image dans un premier exemple de l'invention en référence aux figures pertinentes. La figure 1 montre la construction du générateur d'image dans le premier exemple de l'invention. A la figure 1, le générateur d'image comprend une section de calcul de points de surface courbe 1, une section de transformation géométrique 2, une section de calcul de points de référence 3, une section de modification d'indice 4, une section de
génération de micropolygones 5, une section de tri arrière-
avant 6, une section de détermination de redivision 7, une section de modification de diviseur 8, une section de détermination de diviseur 9, une section de génération de sous-micropolygones 10, une section de génération d'adresse 11, une section de référence à une attribution de zones 12, une section de modification d'accès 13, une section de référence à une donnée de texture 14 et une section de mise
en mémoire 15.
La section de calcul de points de surface courbe 1 calcule une multitude de points sur une surface courbe dans un espace universel tridimensionnel dans lequel un objet est défini. La section de transformation géométrique 2 effectue la transformation d'un espace universel tridimensionnel en une grille bidimensionnelle. La section de calcul de point de référence 3 calcule une multitude de points de référence qui définissent une surface courbe dans la grille bidimensionnelle. La section de modification d'indice 4 modifie les indices des points de référence. La section de génération de micropolygone 5 génère des micropolygones. La section de tri arrière- avant 6 trie les micropolygones comportant une surface orientée vers l'arrière. La section de détermination de redivision 7 détermine si les dimensions d'un micropolygone entrent dans une dimension prescrite ou non. La section de modification de diviseur 8 modifie le rediviseur afin de rediviser les micropolygones. La section de détermination de diviseur 9 détermine le rediviseur utilisé pour rediviser le micropolygone. La section de
génération de sous- micropolygones 10 génère des sous-
micropolygones. La section de génération d'adresse 11 génère des adresses utilisées lorsque l'on se réfère aux attributions de zones. La section de référence à l'attribution de zones 12 permet d'obtenir une attribution de zones du micropolygone à un pixel. La section de modification d'accès 13 modifie l'ordre d'accès à la donnée de texture en se conformant à l'ordre généré des micropolygones. La section de référence à la donnée de
texture 14 obtient une donnée de texture.
La section de mise en mémoire 15 effectue une opération d'écriture dans une mémoire. La section de mise en mémoire inclut une section de restitution 16 servant à effectuer la restitution de micropolygones, une section de traitement et de détermination d'une seule image 17 servant à déterminer si un traitement d'une seule surface courbe est achevé ou non, une section de traitement et de détermination d'une seule scène 18 servant à déterminer si un traitement d'une seule scène est achevé ou non et une section de correction de valeur d'intensité 19 servant à corriger les
valeurs d'intensité présentes dans une mémoire.
On décrira maintenant en détail le fonctionnement du générateur d'image doté de la construction précédemment décrite. Dans le présent mémoiredescriptif, le terme "surface courbe" est défini comme incluant un plan et un polygone. On décrira ensuite, le fonctionnement du générateur d'image i6 pour une surface à spline du type B bicubique prise comme exemple d'une surface courbe. On décrira également le fonctionnement du générateur d'image pour un polygone tétragonal pris comme type illustratif d'un polygone. Le polygone tétragonal constitue un cas spécifique de la surface à spline du type B bicubique. Toutefois, la présente invention n'est pas limitée par les types de surfaces
courbes non plus aue par les types de polygones.
La figure 3 représente une surface à spline du type B bicubique indiquée à titre d'exemple. Comme il est montré à la figure 3, la surface courbe est définie par 16 points de référence Po à P03, Plo à P13, P20 à P23 et P30 à P33. Une équation de la surface courbe est définie pour chacun des
points de coordonnées indépendamment. Chaque fois que deux-
paramètres u et v (0 < u, v < 1) sont fixés, les valeurs de
coordonnées d'un point sur la surface courbe sont obtenues.
L'équation de la surface courbe est définie pour un point (x, y, z) situé sur la surface courbe comme suit: 1 0 0 0 Pzoo Pro1 Pz02 PXO3
- 23PZO PZX11 PZ2 PZI3
Sr(1L, t) = ( 1 v v v) 3j-6 3 0 Pr20 Pr21 P-22 Pr23 -1 3 -3 P1 Przo P3 PZPZ3 0 3 -6 3 u 0 0 3 k-3 (1) oi Iu2I 0 0 0 1 u3
1 0 0 0 PYOOPYOIPY02PYO3
23 -3 3 0 0 Pylo Pyl PYI12PYI3
63 -3 PY20PY21 PY22PY23
-1 3 -3 1 PY30o PY3 22 PYZ2 PY3 (oo 3-3(0 3;-63 u 3 0x0 0 3 -3 u2 (2) O O' PYoo P:i P9:02 P- 03
3(uv) = v 2 vz) 3 P310 Pu=1P-12P-
-6 j 320 Z0:2 P-22 P:23 -1 30-31 P O0 p-,1 Pz P33 o 3 -6 -31 0
- 13 -3 1
0 3 -6 3 3
0 0 3 -3 (3)
000 1 u o Px0 à Px03, PxlO à Px13, Px20 à Px23 et Px30 à Px33 sont les valeurs de coordonnees x, Pyo0 à PY03, Py1O à Py13, Py20 à PY23 et Py30 à Py33 sont les valeurs de coordonnées y, Pz00 à Pz03, Pzlo à Pz13, ?z20 à Pz23 et Pz30 à Pz33 sont les valeurs de coordonnées z des points de références P0o à
P03' Plo à P13, P20 à P23 et P30 à P33, respectivement.
Un polygone tétragonal dans un espace tridimensionnel comportant des origines d'angle données par quatre valeurs de coordonnees dans le sens inverse des aiguilles d'une montre (x1 y, Y Zl), (x2, Y2, z2)' (x3, y3, z3) et (x4, y4, z4) peuvent être définies par les équations (1), (2) et (3), lorsque les points de référence sont donnés comme suit: PWo00 = (zi, Y,) (4)) Pwoi=( -z - 2y,+Y2 2zl+ z5 3, 3 Pw z= +2::, Yl +2Y2: + 2:-,) Pwo2=( 3, 3 , 3) (6)
3 '3 '3
Pwc3 = (:2, Y2,:2) (7)
(___+_ 291+94 2:I+:4 ()
Pwlo =x + -3 2 3 y + 32 (8)
3 I3 3'
P 4z + 2+2z2 + z3+2z4 4y1 +2Y2 + Y3+2Y4 4:1 +2:+3+2:4 p2:4:2 2z3+z4 2Y:+4Y2.2Y3+Y4 2:î+4:22:3+:4 (10) 2z:+:3 2y2+y3 2:2+:3)
PI3 ' 3 3) (11)
+ 2z4 YI +2Y14 Zl +2z4 3 Po0 =2( 3 3 ' 3) (12) p ( 2z + z + 23 + 4z4 Y Y + 293 + 24X3 2:z +:2-2 + 2:3+4:4) ( 3 p = ( zl + 2z2 + 4z3 + 2:4. Y32 + 49 3-+2y4:1 + 2z, + 4z3 24) (14)
3 5--9 9 9
z2 + 23 y2 + 2y3:2 +2: 3)
33 3 (16)
Pw30 = (X4, Y4,:4) (16) P w31 =2z4+:3 2Y4+y3 2ú4+Z3) (17)
3 '3 ' 3
Pw32 = (4+23 423) (l)
3 ' 3 ' 3
1 0 Ppw33 = (z3, Y3,z3) (19) Un objet situé dans un espace universel tridimensionnel est composé de surfaces à spline du type B bicubique et de polygones tétragonaux. Ces surfaces courbes et polygones sont préalablement triées en ceux situés dans une direction qui se rapproche et ceux situés dans une direction qui s'éloigne par rapport à la profondeur pour la grille
bidimensionnelle sur laquelle ils sont projetés.
En ce qui concerne la surface à spline du type B bicubique définie dans l'espace universel tridimensionnel, la section de calcul de point de surface courbe 1 reçoit 16 points de référence Pwij (Pwxij, Pwyij, Pwzij) o i, j = 0, 1, 2, 3. Ensuite, la section de calcul de point de surface courbe 1 calcule 16 points Qwij (Qwxij, Qwyij, Qwzij), o i, j = 0, 1, 2, 3 sur la surface courbe et délivre ceux-ci à la section de transformation géométrique 2. En ce qui concerne le polygone tétragonal défini par les points de référence précédemment décrits, la section de calcul de point de surface courbe 1 délivre directement les valeurs de coordonnées des points de référence à la section de transformation géométrique 2 sous la forme de Qwij. Dans le cas de la surface courbe, comme il est représenté à la figure 4, les relations entre les 16 points Qwij situés sur la surface courbe et les paramètres u et v, sont définies comme suit: : TnS aU.oD anrDa;je qsa.Tm szuToa 91 sap saGuuoplooD ap sna7leA sap -nDIeD sI qnbsio (SS) ((| '|): (I 'o)f '(i':. ':)x)=m zm)O 0ú
(bú) o)'((I ú /Z):'(I'l) '( 'o/C)z) = (::'m' 'O'f?'D '- =zmt)Ocn.
o' (úú) (('/ 'o): '(Iú ')fi '(I 'o)=) = (oI:m: ',ocI, 'o-,. tzm)oI OZ (Zú) (( 'o)-'(OI O)'(: 'o)=) = (-,:.,? b,oEz)o, (Iú) ((ú:/Z 1)-( '(o/Z -/)fi '(o l):) = (ID-m ',,fimb 'O:zrn)IO.=b 6 1 (9O) ((ú/Z ':/.)-(ú/Z 'ú/Z)9 '(ú/Z ':/,)-) = (0:'b,:t,,V.-mZ ' -n, (6Zc) ((ú/Z '/I)-'(:/ '/t)'(ú/ '/):) = (-. ' > ''1çi:.>zn")tfmD (8Z) ((ú/Z 'o)-'(lt 'o)fi '(út 'o)=) = (o,- ,o,o==zm)ofim ( /Z,) ((o/1'1)- '(o/ '1) '(o/ 'I)--) = (o,=,o,o=m 'z)Eo. 51 (SZ) ((o/ '/1): '(o/ '/I.)'(o/ 's/I.)=) = (:o_->,:o, =m,o=,=)lT (.) ((O '1/): '(0 'I/) '(0 't/)) = ( :mb '@tiê ' 'b,.)o.né; (oc) ((o 'o) '(0 'o)fi '(o 'o)-2) = ( OD.b ' Omb ' =,nb) .nb 6!r Pz= ( ?Pwzoo PWZo3 P-zO - Pw3 P'" Pw3 Po3:P- 3o - PwZ33) (36) Py = ( Pwo*-Pwyo3 P'ylo ' PwyI3 Pwy20o Pwy. 3 Pw *3o - Pwy33) (3e) P=( Pw:00 PU:o3 Pw:lO... Pw:3 Pwt;o'-' Pw-:3 Pw:30 P W:33) (38) Q= ( Quzoo QWz03 QwzXo QWz13 QWX20 QWz23 QU7X30 -QWZ33) (39) Qy=( QWYOO. QWYo3 QWyIo QWY13 QWY20o QWY23 QwY30 QWY33) (40) Qz ( Qw:o00o...QwZC3Qwzo...Qw13 Qwzo...Qw:Z3Qw:30...Qwz33) (41) Qz = MPz (42) Qy = MPy (43) Qz = MPz (44) les valeurs de coordonnées x, y et z respectives des 16 points Qwij sont obtenues collectivement par multiplication d'une matrice et de vecteurs. Ici (...)T représente un vecteur de rangée transposé, à savoir un vecteur de colonne et dans lequel la matrice M est une matrice constante 16 x
16 régulière représentée ci-après.
1 0 o0 o 0 0 o O 0 0 0 0 0 0 0 0 8 4 2 _ o o o o o o o o o o o o
27 9 27 F
21-29 9 2 o o o o o o o o o o o o
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
27 9 9 272
0 0 2 0 0 0 4 0 0 0 2 =
Mf= 1o 0 0 o o o o o o o 0 o o o o -- o o o o o o o o o' o o o r 22 16 C8 2 16 a 4 6 î __2 1 __
729213243 7692438 1Sè 24J 24 3881124 7292X 2
29243243729 24381 81 243 81 24 3 71 29243 729
217 9 9 27
-2 132 7 2 7'9
0 0 0 0 2 O 0 0 0 049 a
0 0 229 9 27
0 0 0 O O 0 0 O O O 0 O 207 9 2
1 0 0 O 0 0 0 O 0 0 0 oo 0 27 9 9 27
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
La section de transformation géométrique 2 reçoit la sortie de la section du calcul de point de surface courbe 1, à savoir les points Qwij (Qwxij, Qwyij, Qwzij) o i, j = 0, 1, 2, 3. La section de transformation géométrique 2 transforme les points Qwij reçus en points Qsij (Qsxij, Qsyij) o i, j = 0, 1, 2, 3 sur la grille bidimensionnelle de la même manière que dans le traitement graphique d'ordinateur habituel et délivre les points Qsij à la section de calcul de point de référence 3. La transformation géométrique est effectuée sur la base de l'information de point de visualisation (les valeurs de coordonnées d'un point de visualisation, un vecteur de direction de visualisation et un vecteur supérieur par rapport à la direction de visualisation) et l'information se rapportant à la grille (la distance du point de visualisation à la grille, un point dans l'infini, un point focal, la largeur
et la hauteur d'une image de projection, et analogues).
L'information de point de visualisation et l'information d'image sont préalablement définies et indiquées au
générateur d'image.
La section de calcul de point de référence 3 reçoit la sortie de la section de transformation géométrique 2, à
savoir les points Qsij (Qsxij, Qsyij), o i, j = 0, 1, 2, 3.
En ce que concerne la surface à spline du type B bicubique, la section de calcul de point de référence 3 calcule les points de référence Psij (Psxij, Psyij) o i, j = O, 1, 2, 3 qui définissent la surface à spline du type B bicubique sur la grille qui comprend la totalité des 16 points Qsij. Les points de référence calculés Psij sont délivrés à la section de modification d'indice 4. En ce qui concerne le polygone tétragonal, les points Qsij reçus sont directement délivrés à la section de modification d'indice 4 de même que les
points de référence Psij.
Lorsque le calcul des valeurs de coordonnées des points de référence Psij (Psxij, Psyij) est effectué comme suit: Pz' = ( Pszoo.-- Pso3 PsZ10..PSZ13 PS:Z0 --. PSZ23 Ps:30 -*..- Ps:33 (46) Y'= ( PSYoo. PSYo3 Psyo... PSY13 PSY20o PSY.3 PSY30 PSY33) (47) T Q '= ( QSoo.. QSO3 Qso10 QS:13 QS:Xo.. QS:23 QS30o.. QSZ33) (48) y20 = QSYOO QSY03 QSY1o QSY13 QSY20... QSY23 QSY30 - QSY33)T (49) les valeurs de coordonnées x, y et z respectives des points de référence Psij sont obtenues collectivement par les équations suivantes: Pz='= M-Qz' (50) Py' = M-qy' (51) Ici, M-1 est une matrice inverse de la matrice M représentée en (45) ci- dessus. Les éléments situés dans les rangées respectives de la matrice M- 1 qui sont obtenus eI 3ns euiwoD auJi;dxe 3a: znad iTSa eup;: 3p sOuIod sep saUuopiOOD 3p SanflTA sep InDIeD 91 'sUuTIPA US IOOO OO 'O 'O ' O 'OOO 'OO 'O Oa6uE.9
EeC SOgE'0- 'g0OOOOOOO 'úIOOOOOOOS 00I- 'Cee'0 '0ee 'O 'O 'O 'O 'O 'O 'O 'O 'O 'O 'O 'O .
um 'O 'I000' 'OOOOOO- OO0000000 'm m8'O- 'O 'O 'O 'O 'O 'O 'O 'O 'O 'O 'O 'O Eu p O O 'O 'i 'O 'O 'O 'O '0 '0 0 0 0 0 0 0 'O se'o- '0 'O '0 '00000ooooooo000 'O '0 '0 'Ioooooooç- 'O 'O 'O 'Oúeeee'úúú0 O 'O 'O0 u a =6u Z9iiiii69'0 '000000Z-;' 'ZEOOOOOS, t
96 -L L L O- 'ú0OOOOOO00'- '6000 00000'6 '1v000000 0'- 'IOOO 'OOO 'I 'iOOOOOOOO'S -
0O00000-l' 'OO 00000o- '96_ U,'0- 'Ioooooo0'I 'Iooo000000oOO- '6IIIIIIIIO aue -
96L L:!"':ZO- 'úoo00000o. I 'SOOOOO 'z-
Z9iii69'0 '1O00000 1 'OO 000_-- '600000000'6 'Eú000000 ZOOO- 0 O '10 SO'ZOOOOOO.ZZ OOOOoiç 000000'- ', ú00000'I '6zIIIItI'O '10 00000eo 'IOOOO0001 '96. LL-L-.,O- -u 0uo a O 'O 'O 30 ' 'O '0 '0OOOOO 'O 0 1000002 'O '0 '0 '0O 'OOu wr6 eúe'eee 'O '0 ' 0 ' 0 'o0o0o0O00Ot '0 '0 '0 '0 'eeeeee- '0 '0 '0 ue i 96úLú_L O'- 't eOOOOOOO' I
00eOOOOOO0- O'6I IIIIII' 0 'tO o00000e' I 'i'00 OOOOOSi- 'OOO00000O0Z 'Z1' ú000000eo - 'Z-
600000000'6 'O0O00000ev- 'IOOOO0'0000 '091, i,69' O 'eooe0o0Ooo 'Z'CZO00000e 'I '96 1-- LZ 'O- @ a5Ue 6cI.III'0 ' IOO000000'0- 'i eOOOOOO I 965 1! 'O- 'iJOOZO- 'o 0 eOOOOOeO - '00000 'OOOOOOO i 'eooooo 'IeOOOOOO I '000OOOOOOS -'60000000006 0eOOOOOO'-Z '96-L-'0' 'OOOO0-' 'Z0O0000S O2O -'-9-,i69 0 O-: ? 0 O 0 ' 'OeeS0 'O '0 '0 '10000000 IOOOOOOO '0 '0 ' O OOOOO0 '0 '0 '0 'eOeesee0- 'O ' 0O 'o 'O 'o O' O 'o 'o O 'o ''o 'o T 0 'o oo 0 ' ' 0 '0 ' 0 '0 '0 '0 '0O '0 'e 0- '00000000 'IOOe'0000'0 'teeoO '5 'E (O O O O 0 '0 '0 'O ' m20 '10000000 -IO 'eoooooooQ'C0ooe et e '.u_.E j.9 o 'O 'O 'o 'o O 'O 'o o 'o 'o 'o 'o o 'o0 'I uE ÀUUOTOD 3 p a3pio ua:Tns au.m1oD s:T.Dap ZUOS s2eT?'TDep saa5up;nau.,nbsnE 909t7OGTZgú PszooPszoxPszo2 PS-O3 1 0 0 0 QsXOO QSZOxQsz02Qsxc3 , _t 9 2 PsIo 6 6 PSXJIPsz'.2PS-:_ -6 SL -S S QSZ10 QszliQS:12Q SSI3O
P5:20PSZ21PSI:-2-PSX23_ s QS:2' QSZ22QS.T22Q S I2.
P sz O Pszz1 Ps x:2 Ps-3 0 0 0 - Qsz3o QsT31 Qsz12 Qsz233 ( 9) a PSylO PSyll PSY12 -PSY13 _ -6 6 -6 6 QsyIO QYIl, QsyI2 Qsy1, Psz2o Pszx Psz:2 Psx:z -_ _ _ -- Qsy20 QszY21 QszY22 QsY23 Ps:y3oPsz'yPsz2PszzY3 o o 1 QsY3oQsrY3 QSY.2QszY3 6i 6
1 0 ( } -& ) (53)
( 9 (52)
0 2 0
62 65
Ps=ooPsZoIPsZ02PSO3 i O f oQsZOaQsyoxQsy02Qs o3
-S 18
Psy=oPs:lîPsi:2Ps: - 6 _ 9 2 QsyIoQsII Qsy12Qs:y:) Dpso Psy=,Ps"z2Ps,-' 6 0 19 Ps20 Psy21 Psy22 PsyZ23 2 9 6k 6 6 Qs20o Qs-2 Q3 22 Qs3 Qs23
o 6.
i - i T6- 53 Ps:zoPs:, Ps;2 Ps-33 0 0 1 Qs:-oQs:Z3Qs:32QS:33
_ 5 2
1P5 s -6 69 Q 0 o- o Ps:.-o Ps:21. s:2 Ps:: 3 O O o 6 Q,:.o Q:î Q:2 Q: Ps:zo Ps:.33 s2 s2 s2 s 1 -g g x o1to j (54)
0 9 8 0
6 6 Lorsque la valeur de v est fixée et que la valeur de u est modifiée de 0 à 1 dans les équations (1) et (2), les points situés sur la surface courbe sont générés suivant une direction partant du point de référence Pso0 jusqu'au point de référence Ps03. Lorsque la surface courbe ou le polygone est trié dans la catégorie de ceux suivant la direction de rapprochement par rapport à la profondeur de la grille bidimensionnelle, la section de modification d'indice 4 sélectionne les points le plus profond et le plus profond suivant Ps0, Ps03, Ps30 et Ps33. Ensuite, les indices des points de référence sont modifiés d'une manière telle que le point de plus profond sélectionné soit indiqué par Pso0 et
que le point le plus profond suivant soit indiqué par Ps03.
Lorsque la surface courbe ou le polygone est trié dans la catégorie de ceux suivant la direction d'écartement par rapport à la profondeur de la grille bidimensionnelle, la section de modification d'indice 4 sélectionne les points le plus voisin et le plus voisin suivant Ps0, Ps03, Ps30 et Ps33. Ensuite, les indices des points de référence sont modifiés d'une manière telle que le point le plus voisin sélectionné soit indiqué par Ps00 et que le point le plus voisin suivant soit indiqué pra Ps03. Il existe 8 types de telles modifications d'indices incluant le cas de non modification. La relation avec l'origine (Ps00, Ps03) est indiquée sous forme de liste comme suit: (Ps00, Ps03), (PsOO, Ps30), (Ps30, Ps33), (Ps30, Ps00), (Ps33, Ps30), (Ps33, Ps03), (Ps03, Ps00) et (Ps03, Ps33). L'information de substitution d'indice, à savoir la manière dont les indices sont modifiés est mémorisée. L'information de subsitution d'indice indique en lesquels Ps00, Ps03, Ps30 et Ps33 les incides d'origine Ps00 et Ps03 sont modifiés, respectivement. De préférence, l'information de substitution d'indice est mémorisée dans une mémoire sous la forme d'une table. L'information de substitution d'indice est utilisée
ultérieurement dans la section de modification d'accès 13.
Les points de référence postérieurs aux modifications d'indice sont délivrés à la section de génération de micropolygones 5 comme Psij (Psxij, Psyij), i, j = 0, 1, 2, 3. La section de génération de micropolygone 5 divise la surface courbe de manière à générer des surfaces divisées ou sous- polygones sur la base de la dimension de la donnée de
texture projetée sur la surface courbe ou sur le polygone.
Ensuite, la section de génération de micropolygone 5 génère un micropolygone tétragonal, un micropolygone parallélogramme ou deux micropolygones triangles pour
chacune des surfaces divisées et pour chacun des sous-
polygones. La donnée de texture, le nombre et la dimension de la donnée de texture sont préalablement définis et
délivrés au générateur d'image.
Avant de procéder à la description du fonctionnement de
la section de génération de micropolygone 5, on décrira les termes utilisés ici. Tout d'abord, le terme "surface divisée" constitue une partie de la surface courbe d'origine obtenue en divisant la surface courbe d'origine. Un exemple de surface divisée est illustré à la figure 5. Le terme "sous- polygone" représente un plan partiel obtenu par division d'un polygone. Un exemple de sous- polygone est illustré à la figure 6. Comme on peut le voir à partir des figures 5 et 6, la surface divisée et le sous-polygone sont des surfaces fermées et définies par des segments de ligne partielle de lignes de séparation. Un point de croisement de lignes de séparation qui correspond à une extrémité d'un
segment de lignes partielles est appelé point de division.
un micropolygone tétragonal est un micropolygone considéré approximativement comme un quadrilataire qui est défini par quatre points de division de la surface divisée ou du sous-polygone. Le micropolygone tétragonal est défini par un point de base (x, y) et par trois vecteurs (dx, dy), (Px, Py) et (qx, qy). La figure 7A représente un micropolygone tétragonal présenté à titre d'exemple. Un micropolygone parallélogramme est un micropolygone représenté approximativement comme un parallélogramme qui est défini par trois des quatre points de division de la surface divisée ou du sous-polygone. Le micropolygone parallélogramme est défini par un point de base (x, y) et par deux vecteurs (dx, dy) et (Px' Py). La figure 7B représente un micropolygone parallélogramme présenté à titre d'exemple. Les micropolygones triangles sont des micropolygones représentés approximativement comme deux triangles dont chacun est défini par trois des quatre points
de division de la surface divisée ou du sous-polygone.
Chacun des micropolygones triangles est défini par un point de base (x, y) et par deux vecteurs (dx, dy) et (Px' Py). La figure 7C représente des micropolygones triangles présentés
à titre d'exemple.
On décrira ensuite le fonctionnement de la section de génération de micropolygone 5. Comme il a été précédemment décrit, un micropolygone est généré sur la base de points de division. C'est ainsi que la section de génération de
micropolygone 5 génère initialement des points de division.
Le nombre de points de division devant être générés est déterminé par la taille de la texture. A titre d'exemple, si la taille de texture est m fois n, la section de génération de micropolygone 5 génère (m+l) fois (n+1) points de division. Les points de division sont générés en se conformant aux équations (1) et (2). Ici, Pxij dans l'équation (1) est remplacé par Psxij et Pyij dans l'équation (2) est remplacé par PsYij. Ici, Psxij et Psyij sont les coordonnées des points de référence délivrés par la section de modification d'indice 4. En se conformant aux équations (1) et (2), par une modification des paramètres u et v de O à 1 avec des incréments respectifs de 1/m et l/n, des points situés sur la surface courbe sont générés. Les points situés sur la surface courbe sont en fait les points de division. La génération de points de division peut être effectuée en utilisant un algorithme d'un analyseur
différentiel numérique.
On décrira ci-après, à titre d'exemple d'un procédé de calcul utilisant les équations (1) et (2), le procédé suivant. Dans les équations (1) et (2), v est modifié de O à 1 avec un incrément de 1/n. Chaque fois que v est fixé, u est modifié de O à 1 avec un incrément de l/m, de manière à générer des points de division sur une ligne. Lorsque u atteint 1, v est incrémenté de l/n, de manière à générer des points de division sur la ligne suivante. Cette opération est répétée jusqu'à ce que v = 1. Il en résulte que (m+l)
fois (n+l) points situés sur la surface courbe sont générés.
Lorsque la direction sur laquelle la texture est projetée est modifiée par la section de modification d'indice 4 (lorsque les relations entre les directions verticale et horizontale sont échangées), l'incrément de u est 1/n et l'incrément de y est 1/m. Que la relation entre les directions verticale et horizontale soit échangée ou non, peut être connu à partir de l'information de substitution d'indice. Si la dimension de la texture est limitée à la dimension qui peut être exprimée par la puissance de 2, la division de 1/m et de 1/n peut être effectuée par des opérations de décalage. Précisément, si la taille de texture est 2m x 2n, les incréments sont de 1/2m et 1/2n, d'une manière telle que les calculs peuvent être effectués par le décalage vers la droite de m bits et de n bits, respectivement. On décrira ensuite le cas dans lequel la taille de texture est de 2m x 2n. Les valeurs de coordonnées des points de division générés sont arrondies selon la
précision requise.
En vue de générer un micropolygone, il est suffisant de mémoriser simultanément les coordonnées de quatre points de division. Toutefois, ci-après, à des fins de simplification
de la description, les valeurs de coordonnées de tous les
points de division générés sont mémorisées. On suppose que les coordonnées des points de division qui sont générées et arrondies selon la précision requise sont représentées par
(Xij, Yij) o 0 < i < 2m et 0 < j < 2n.
On décrira tout d'abord, en se référant à la figure 8A, la génération d'un micropolygone tétragonal. Comme on peut le voir à partir de la figure 8A, le micropolygone tétragonal est généré par le point de base (Xij, Yij) et par les trois vecteurs suivants: (d=, dy) = (Xi+!j - - Xij, Yi+j -Yj), (.55) 3 0 (p., p) = (Xij+i -Xij, Yij-+1 - Yij), (.56) (q=, qy) = (Xi+j+ Xij+l, Yi+1j+ -- Yij+z), (57)
o 0 < i < 2m-1 et 0 < j < 2n-1.
On décrira ensuite, en se référant aux figures 8B et 8C, la génération d'un micropolygone parallélogramme. Par un simple procédé de génération, comme il est montré à la figure 8B, le micropolygone parallélogramme est généré par le point de base (Xij, Yij) et par les deux vecteurs suivants: (d=, dy) = (Xi+lj - xj Y j - yj), (.58) (p.,pY)= (Xj+ - Xij.yij+1 -Yj), (59)
o 0 < i < 2m-1 et 0 < j < 2n-1.
En vue d'accroître le degré d'approximation, il est préféré de générer un micropolygone parallélogramme sur la base de la relation en amplitude entre la longueur l1 (= PsOoPs30) d'un segment de ligne entre les points de référence Ps00 et Ps30 et la longueur 12 (= Ps03Ps33) d'un
* segment de ligne entre les points de référence Ps03 et Ps33.
La longueur d'un segment de ligne (à savoir une distance séparée en deux points) peut être une distance euclidienne ou une distance dans un espace discret (une valeur absolue d'une somme de différences entre les coordonnées respectives de deux points). Lorsque 11 > 12, le micropolygone parallélogramme est généré par le procédé illustré à la figure 8B. Ce procédé est similaire au procédé illustré à la figure 8A. Lorsque l1 < 12 comme il est montré à la figure 8C, le micropolygone parallélogramme est généré par un point de base (Xi+lj, Yi+lj) et par les deux vecteurs suivants: (d,dy) = (Xij-Xi+ljY'j-i-+j), (60) (pr,py)=(Xi+1j+1 -Xi +1ji+i+j), (61)
o 0 < i < 2m-1, 0 < j < 2n-1.
La génération de micropolygones triangles est décrite en référence à la figure 8D. Comme on peut le voir à partir de la figure 8D, deux micropolygones triangles sont générés pour une seule surface divisée ou pour un seul sous- polygone. L'un des deux micropolygones triangles est généré par un point de base (Xij, Yij) et par les deux vecteurs suivants: (d=,dy) = (Xi+i -Xij,Y±Y;i), (62) (p=, py) = (XiXj+1 - Xij, Yij. - Yj), (63) et l'autre micropolygone est généré par un point de base (Xi+lj, Yi+lj) et par les deux vecteurs suivants: (d, dy) = (Yij - Xi-+ j, Yij i+l), (64) (pr, py) = (Xi+,j+l - Xyi+1j, Y+Ij- Yi+lj), (65)
o 0 < i < 2m-1 te 0 < j < 2n-1.
Parmi les micropolygones qui sont générés par le procédé précédemment décrit, les micropolygones qui n'existent pas à l'intérieur de la surface que l'on veut afficher dans la grille sont éliminés afin de les empêcher d'être traités par les opérations suivantes. Ceci correspond à ce que l'on appelle un procédé de découpe. Que le micropolygone généré existe à l'intérieur ou à l'extérieur de la surface que l'on veut afficher dans la grille est déterminé par la section de génération de micropolygone 5 en se référant à l'information d'image précédemment décrite. Un micropolygone situé à l'intérieur de la surface que l'on veut afficher dans la grille est délivré à la section de tri arrière-avant 6. Les valeurs de coordonnées des quatre points de division utilisées pour générer le micropolygone devront être mémorisées pour chaque polygone jusqu'à ce que le processus dans la section de détermination de redivision 7 soit achevé et que les coordonnées soient délivrées à la section de
génération d'adresse 11 qui sera décrite ci-après.
La section de tri arrière-avant 6 élimine des micropolygones lorsqu'une surface arrière doit être affichée dans la grille. La figure 10 illustre le processus de tri arrière-avant. En vue d'effectuer le tri arrièreavant, il est nécessaire que la surface courbe ait précédemment reçu une information indiquant quelle surface est la face avant par rapport à l'agencement des points de référence de la surface courbe. Précisément, dans le cas illustré à la figure 11, à savoir dans le cas de l'agencement de points de référence dépourvus de parenthèses, lorsque la direction indiquée par la flèche du type vers la droite est la face avant, le côté arrière de la figure sur le papier est la face avant de la surface courbe. Lorsque la direction indiquée par les flèches du type vers la gauche est la face avant, le côté avant de la figure sur le papier est la surface de la surface courbe. Dans le cas de l'agencement des points de référence pourvu de parenthèses, lorsque la direction indiquée par les flèches du type vers la droite est la face avant, le côté avant de la figure sur le papier est la face avant de la surface courbe. Lorsque la direction indiquée par les flèches du type vers la gauche est la face avant, le côté arrière de la figure sur le papier est la face avant de la surface courbe. Par suite, on suppose que la surface courbe reçoit préalablement l'information se rapportant à l'agencement des points de référence, à savoir dépourvus de parenthèses ou pourvu de parenthèses et l'information se rapportant à laquelle des directions indiquées par les flèches du type vers la droite ou des
flèches du type vers la gauche est la face avant.
En comparant l'information avec un signe du produit extérieur de (dx, dy) et (ps, py), les polygones dont la face est orientée vers l'arrière sont éliminés. A titre d'exemple, dans le cas o l'agencement des points de référence dépourvus de parenthèses est employé dans la direction du type vers la droite est la surface, si le signe d'un produit extérieur de (dx, dy) et (px, py) est moins pour les micropolygones représentés aux figures 8A, 8B et 8D, ces micropolygones sont inversés et leurs faces arrière sont visualisées, de sorte que les micropolygones sont éliminés. Si le signe d'un produit extérieur de (dx, dy) et de (px, py) est plus pour le micropolygone illustré à la figure 8C, le micropolygone est éliminé. Si la modification des indices des points de référence et effectuée dans la section de modification d'indice 4, l'agencement des points de référence pourvus de parenthèses peut être modifié en l'agencement de points de référence dépourvus de parenthèses et inversement, d'une manière telle que l'information se rapportant au type vers la droite ou au type vers la gauche peut, d'une manière correspondante être inversée. Les données de micropolygone qui ne sont pas éliminées par la section de tri arrière-avant 6 sont délivrées à la section
de détermination de redivision 7.
La section de détermination de redivision 7 détermine si la taille du micropolygone généré est ou non plus grande qu'une taille prescrite. La taille de micropolygone n'est pas toujours définie uniquement. Toutefois, en général, la taille du micropolygone est déterminée par la surface de celui-ci ou par les longueurs des côtés du micropolygone. A titre d'exemple, la taille du micropolygone est définie par la longueur de son côté. Un côté d'un micropolygone correspond à la taille d'un vecteur qui définit le micropolygone. Par suite, dans le cas du micropolygone tétragonal, la taille des vecteurs (dx, dy), (px, py) et (qx, qy) est calculée et il est évalué si les tailles calculées dépasse ou non la taille prescrite. Dans le cas du micropolygone parallélogramme et dans lecas du
33 2714505
micropolygone triangle, la taille des vecteurs (dx, dy) et (px, py) est calculée et il est évalué si les tailles calculées dépassent ou non la taille prescrite. En variante, la détermination peut être effectuée à l'aide d'une table. A titre d'exemple, le degré de précision permettant de définir les vecteurs est établi en unité de 0,25 et une taille prescrite est 1, la détermination peut être effectuée à l'aide d'une table de taille de vérification présentée au
Tableau 1 ci-après.
Tableau 1 Table de taille de vérification ldZl, IpzI \ Idyl, IpyIllI 0.25 5 0.5 1.0 PLUS GR. QUE 1,0
OUI |OUI OUI OUI OUI NON
i CI 5 InOUI OUI I,O NON 0 |.5 ou Io I ou NON NON [ol.2 OUI OUI OU I ouiNONNON Ci-. 5 o 0uioui NON
C'.75 OUI OUI OUI NONNON NON
t _ i_ _ _ _ _ _
!I.0OUI [NON I NON NON NON
i PLUS GR. QUE 1,0 NON NON NON NON NON Au Tableau 1, les valeurs numériques présentées en rangées et en colonnes représentent les valeurs absolues des composantes vectorielles respectives. A Tableau 1 "Oui" indique que la taille du vecteur est égale à 1, ou plus petite, et "Non" indique que la taille du vecteur est
supérieure à 1.
La donnée du micropolygone par laquelle il est déterminé que celui-ci présente une taille égale à la taille prescrite, ou plus petite que celle-ci, dans la section de détermination de redivision 7 est délivrée à la section de génération d'adresse 11. La donnée de micropolygone, par laquelle il est déterminé que celui-ci présente une taille plus grande que la taille prescrite, est requise pour être encore divisée, de sorte que la donnée du micropolygone est délivrée à la section de modification de division 8, à la section de détermination de diviseur 9 et à la section de génération de sous-micropolygone 10 à des fins de traitement ultérieur. On décrira ensuite, une suite de traitements de redivision destinée au micropolygone qui est effectuée d'une manière récurrente dans la section de modification de diviseur 8, la section de détermination de diviseur 9 et dans la section de génération de sous-micropolygone 10. Dans la première redivision, la section de modification de redivision 8 n'effectue aucune opération et le traitement
est effectué dans la section de modification de diviseur 9.
La section de détermination de diviseur 9 détermine le diviseur pour la redivision sur la base des coordonnées des quatre points de division (Xij, Yij), (Xi+lj, Yi+lj), (Xi+lj+l, Yi+lj+l) et (Xij+l, Yij+l) qui ont été utilisés pour générer le micropolygone. Ici, le diviseur est limité
au nombre qui peut être exprimé comme la puissance de 2.
Ceci a pour fin d'effectuer une opération de décalage haute vitesse au lieu de la division, comme il a été décrit précédemment. Par suite, on comprend que d'autres nombres généraux peuvent être utilisés comme diviseur dans le
procédé ici décrit.
La section de détermination de diviseur 9 obtient tout d'abord ce qui suit: Li= -Xi+i- Xi; + Yi+i - y1j (66) L2 = lXi+i+ -Xi-. ljil + lyii+i Yi+iI (61) L3 =lXij+l- Xi+j>+Y[+[I+l-I+jU± (68) L4 =i - Xii l+l yi - yi1 (69) Ensuite, la section de détermination de diviseur 9 calcule ce qui suit: L(l) = ma=(L, L3) (70) L(2) = maz(L2, L4) (71) Ensuite, la section de détermination de diviseur 9 calcule les nombres entiers non positifs minimum m et n qui satisfont les conditions suivantes: L()' <2m" (72)
L(2)<2', (73)
Les nombres entiers m et n sont les diviseurs qui doivent
être obtenus. La section de génération de sous-
micropolygone 10 génèrent de nouveaux ensembles de points de division sur la base des coordonnées des quatre points de division correspondant au micropolygone d'origine et aux
diviseurs m et n', de manière à générer des sous-
micropolygones. Les sous-micropolygones sont des micropolygones obtenus en divisant un micropolygone et, ainsi, le sous-micropolygone est le même que le micropolygone en termes de données. Lorsque les points de division générés sont définis comme suit, de même qu'à la figure 9, ( -') Y(J)), 0 < p < 2m, 0 < q < 2" (74) Les coordonnées des points de division peuvent être obtenues comme suit: = (2m' - p)(2' - q)Xij + p(2"' - q)Xj+u1 + q(2' - p)X1i+l + pqXj+ij+i (75) xpq 75 pq) (2' p)(2' q)j+ pJ + q(2' - p)Yjj+1 + pqY;+j+i(76) 2m'' La section de génération de sous- micropolygone 10 génère des sous-micropolygones sur la base des points de division
obtenus. Le procédé permettant de générer les sous-
micropolygones est similaire au procédé servant à générer un micropolygone tétragonal, urn mcropolygone parallélogramme et un micropolygone triangle qui sont décrits pour la section de génération de micropolygone 5. Pour la totalité des sous-micropolygones ainsi générés, il est de nouveau évalué si la taille des sous-micropolygones dépasse ou non la taille prescrite dans la section de détermination de redivision 5. Lorsque le sous-micropolygone est évalué posséder une taille égale à la taille prescrite, ou plus petite que celle-ci, la donnée du sous-micropolygone est délivrée à la section de génération d'adresse 11. Lorsque le sous-micropolygone est évalué posséder une taille plus grande que la taille prescrite, le diviseur est modifié dans la section de modification de diviseur 8. A titre d'exemple, dans le cas du micropolygone parallélogramme et dans le cas du micropolygone triangle, lorsque la taille du vecteur (dx, dy) est égale à la taille prescrite, ou est plus petite que celle-ci, et que la taille du vecteur (px, py) est plus grande que la taille prescrite, m' n'est pas modifié et n' est modifié en n'+l. Lorsque la taille du vecteur (dx, dy) est plus grande que la taille prescrite et que la taille du vecteur (px, py) est égale à la taille prescrite, ou est plus petite que celle-ci, m' est modifiée en m'+l et n' n'est pas modifié. Lorsque la taille des deux vecteurs (dx, dy) et (px, py) est plus grande que la taille prescrite, m' et n' sont modifiés en m'+l e: n'--1, respectivement. Dans le cas du micropolygone tétragonal, la modification des diviseurs est effectuée de la même manière que celle
précédemment décrite. Dans la seconde génération du sous-
micropolygone et dans les suivantes, le traitement de la section de détermination de diviseur 9 est sauté. La section de génération de sousmicropolygone 10 effectue la génération de sous-micropolygones en utilisant les diviseurs mis à jour de la même manière que dans la génération précédente. Les traitements qui précèdent sont répétés de manière récurrente, d'une manière telle à rediviser les micropolygones et à générer des sous-micropolygones. Ainsi, les micropolygones et les sous-micropolygones qui possèdent des tailles égales à la taille prescrite, ou plus petite sur celle-ci, sont délivrés à la section de génération d'adresse
11.
La section de génération d'adresse 11 génère une adresse permettant de se référer à une attribution de zones de micropolygone à un pixel. Les attributions de zones sont préalablement établies en un format de table aux fins de valider la référence provenant de la section de référence
d'attribution de zones 12. Préalablement à la description du
procédé permettant de générer une adresse, une attribution de zones et une tables d'attributions de zones sont décrites en référence à la figure 13. Lorsqu'un pixel est supposé constituer un carré doté d'une longueur de côté de 1, une surface qui est partagée par un pixel et par un micropolygone est appelée attribution de surface du micropolygone au pixel. En d'autres termes, l'attribution de zones est un rapport de surface partagée par le pixel et le
micropolygone à la surface du pixel.
A la figure 12, une surface de la surface partagée hachurée du pixel et du micropolygone indique l'attribution
de zones du micropolygone à chaque pixel. On suppose ci-
après que la taille du micropolygone délivrée par la section de détermination de redivision 7 à la section de génération d'adresse 11 est 1 ou moins. Dans le cas du micropolygone tétragonal et du micropolygone parallélogramme, si un point de base est fixé à l'intérieur d'un pixel central de la région de 5x5 pixels, même lorsque les vecteurs servant à définir le micropolygone sont déplacés d'une manière aléatoire, le micropolygone existe à l'intérieur de la région de 5x5 pixels (dans le cas du micropolygone triangle, le micropolygone existe à l'intérieur d'une région de 3x3 pixels). Il s'ajoute qu'un micropolygone entre dans la région de 3x3 pixels et que le nombre de pixels maximum auquel un seul micropolygone peut proposer ses attributions de surface est 6 (dans le cas o la taille du vecteur est indiquée en unité de 0,25). Lorsqu'un micropolygone est appliqué à la région de 3x3 pixels, une information indiquant les attributions de zones à 9 (=3x3) pixels est considérée être suffisante comme la formation d'attribution de zones à des pixels. L'information est mémorisée dans un format de table sous la forme d'une table d'attributions de zones. Si des coordonnées locales bidimensionnelles sont appliquées à la région de 5x5 pixels et si la position de la région de 3x3 pixels est indiquée par les coordonnées locales du pixel gauche supérieur de la région de 3x3 pixels, la position relative de la région de 3x3 pixels à la région de 5x5 pixels peut être spécifiée. La figure 13 montre ce processus. La région de 3x3 pixels incluant le micropolygone est spécifiée par les coordonnées (0, 0) du pixel gauche supérieur et le micropolygone assure une attribution de zones aux quatre pixels. En ce qui concerne le micropolygone situé dans une grille, une région de 3x3
pixels est segmentée de manière à inclure le micropolygone.
Ensuite, la région est projetée sur une région de 5x5 pixels, et des attributions de zones aux pixels respectifs présents dans la région 3x3 pixels sont obtenues. Ensuite, la projection est effectuée d'une manière inverse sur la grille, de sorte que les attributions de zones aux pixels dans la grille peuvent facilement être obtenues. La projection de la région de 3x3 pixels incluant un micropolygone dans la région de 5x5 pixels est effectuée d'une manière telle que le point de base est projeté à l'intérieur du pixel central de la région de 5x5 pixels. A cette fin, les parties de nombre entier des coordonnées du point de base sont converties. En vue de déterminer à quelle position dans le pixel central le point de base est projeté, il est suffisant de connaître une valeur suivant le point décimal des coordonnées du point de base. Les éléments destinés à définir un micropolygone sont un point de base et trois vecteurs pour un micropolygone tétragonal ou deux vecteurs pour des micropolygones parallélogramme et triangle. La section de génération d'adresse 11 génère une adresse sur la base du point de base et des vecteurs qui définissent le micropolygone. Le point de base peut être classé à l'aide d'une valeur suivant un point décimal, comme il a été précédemment décrit. Puisque les vecteurs présentent des tailles égales à la taille prescrite, ou plus petite que celle-ci, les vecteurs peuvent être classés en utilisant des combinaisons des valeurs constitutives respectives. A titre d'exemple, en ce qui concerne le point de base, lorsque l'unité du degré de précision est 0,25, chaque coordonnée du point de base peut être l'une de quatre valeurs 0,0, 0,25, 0,5 ou 0, 75. Par suite, il est suffisant qu'un total de 16 sortes soit identifié d'une manière différenciable. Chaque composante du vecteur peut être l'une de 9 valeurs, -0,1, -0,75, -0,5, -0,25, 0,0, 0,25, 0,5, 0,75 ou 1,0. Dans le cas d'un micropolygone tétragonal, il est suffisant qu'un total de 96 sortes puisse être identifié d'une manière différenciable. Dans le cas de micropolygones parallélogramme et triangle, il est suffisant qu'un total de 94 sortes puisse être identifié d'une manière différenciable. En vue de différencier les différentes sortes de valeurs de point de base et les différentes sortes de composantes des vecteurs, une adresse d'un total de 28 bits est générée pour un micropolygone tétragonal. L'adresse comprend 4 bits pour le point de base (x, y) et 24 bits pour trois vecteurs (dx, dy), (px, py) et (qx, qy) comme il est représenté à la figure 14A. En ce qui concerne le micropolygone parallélogramme ou triangle, une adresse de 20
bits est générée, comme il est montré à la figure 14B.
A la lumière de la description qui précède, on décrira
le procédé de génération d'adresse dans la section de génération d'adresse 11. On suppose que le point de base d'un micropolygone situé dans la grille est défini comme (X, Y). Tout d'abord, une position de pixel (I, J) est obtenue à
partir de (X, Y), à savoir I = [X] et J = [Y]. La notation.
[x] est un symbole gaussien indiquant un nombre entier maximal qui ne dépasse pas x. Ensuite, les coordonnées locales (x, y) lorsque le point de base du micropolygone est projeté à l'intérieur d'un pixel central (à une position (2, 2) dans le système de coordonnées local) de la région de 5x5 pixels sont obtenues comme suit: = X +2-Int(x) (77) y = Y + 2 - Int(Y) (7s) o Int(x) indique une partie entière de x. Pour un micropolygone tétragonal, une adresse est générée sur la base de (x, y), (dx, dy), (px, py) et (qx, qy) par le procédé précédemment décrit. D'une manière similaire, pour un micropolygone parallélogramme et pour un micropolygone triangle, une adresse est générée sur la base de (x, y), (dx, dy) et (px, py). L'adresse générée est délivrée à la
section de référence à l'attribution de zones 12.
La position du micropolygone dans le système de coordonnées local est déterminée en concordance avec l'adresse d'entrée. Par suite, les attributions de zones du micropolygone correspondant à l'adresse d'entrée aux pixels peuvent être calculées préalablement. Les attributions de zones ainsi calculées sont préalablement mémorisées dans une table d'attributions de zones. La section de référence à l'attribution de zones 12 renvoie à la table d'attributions de zones selon l'adresse générée par la section de génération d'adresse 11, de manière à obtenir les
attributions de zones associées.
Il en résulte que la section de référence aux attributions de zones 12 délivrent d'une manière sérielle des attributions de zones du micropolygone à 9 pixels d'une région de 3x3 pixels. Précisément, l'attribution de zones au pixel gauche supérieur de la région de 3x3 pixels possédant les coordonnées locales (wi, wj) constitue une première sortie puis les attributions de zones aux pixels possédant les coordonnées i fixées, à savoir wi et les coordonnées j croissantes, sont délivrées d'une manière sérielle. Ensuite, les attributions de zones aux pixels possédant une coordonnée i qui est croissante de un et les coordonnées j croissantes sont délivrées d'une manière sérielle. La figure représente un exemple d'un tel format de données. Chacune des valeurs de wi et wj peut être de 0, 1 ou 2. C'est ainsi que la position de coordonnées locale (wi, wj) peut être représentée par 4 bits. Si chaque attribution de zones est représentée par 3 bits, une donnée de 31 bits est délivrée par la section de référence d'attribution de zones 12. La donnée est mémorisée jusqu'à ce que le traitement dans la
zone de mise en mémoire soit achevé.
La section de modification d'accès 13, surjla base de l'information de substitution d'indice générée par la section de modification d'indice 4, modifie la séquence d'accès à la donnée de texture, de sorte que la séquence d'accès à la donnée de texture s'accorde à la direction qui est prévue à l'origine pour projection. A titre d'exemple, comme il est montré à la figure 16, si la taille de la donnée de texture est 2m x 2n et si la donnée est mémorisée unidimensionnellement, la séquence d'accès est modifiée en utilisant l'une quelconque des séquences bidimensionnelles de nombres suivantes: aij = i+2 (j- 1),i= 1,2,---,2m; j= 1,2,..,2 (79) aij = i +2 M2- j), i 1,2,.- 2m;j=1,2,.. 12 (81) aj = 2'(2 - i) j, i 1,2, -,2 2:=,2..,2m (82) a ij - 2i- 1)+ 2 j+), i = 1, 2,-..., 2; j= 1, 2,-,2 (83) ai= j i+ 2 (2 " -i+ -j-),i = 1,2, - --,2; j = 1,2,-. 2" (83) aij =-2m(2 -i+1)-j+,i=1,2,---,2";j=1,2,.--,2m (84)
(5
aij=-i+1+2j,i=1,2,...,2;j=1,2,...,2" (85) a j=2 i-j+l,i=1,2,",2; j=1,2, -,2m (86) Les séquences de nombres précédemment mentionnées sont utilisées tout en augmentant la valeur de i pour chaque valeur de j modifiée et la valeur aij calculée correspond au nombre de textures devant être accessibles pour le micropolygone. Le (Ps00, Ps03) d'origine peut être modifié en (Ps00, Ps03), (Ps00, Ps30), (Ps30, Ps33), (Ps30, Ps00), (Ps33, Ps30), (Ps33, Ps03), (Ps03, Ps00), (Ps03, Ps33) dans la section de modification d'indice 4. Dans cette correspondance, les séquences de nombres (79), (80), (81), (82), (83), (84), (85) et (86) sont utilisées pour calculer
le nombre auquel il convient d'accéder.
La section de référence à une donnée de texture 14 acquiert une donnée de texture en concordance avec le nombre de textures devant être accessible pour le micropolygone qui est calculé par la section de modification d'accès 13. La donnée de texture comprend fondamentalement des valeurs d'intensité RVB, le pouvoir couvrant de l'objet et analogues. La donnée d'intensité RVB de la donnée de texture devant être utilisée reflète le résultat calculé de l'intensité d'illumination. Ceci revient à dire que la donnée d'intensité RVB reflète le résultat calculé par diverses méthodes de calcul d'intensité d'illumination
(incandescence, phone, flux de rayonnement effectif, etc.).
En ce qui concerne la surface courbe et le polygone qui sont utilisés pour représenter l'ombre, ce que l'on appelle une projection d'ombre peut être effectuée si donnée contenant
la valeur de propagation de l'illumination est utilisée.
La section de mise en mémoire 15 comprend une section de restitution 16, une section de détermination d'achèvement de traitement d'une image 17, une section de détermination d'achèvement de traitement d'une scène 18 et une section de correction de valeur d'intensité 15. En utilisant les attributions de zones aux pixels et les données de texture auxquelles il est référé par la section de référence d'attribution de zones 12 et par la section de référence ou données de texture 14, la restitution d'un micropolygone, la mémorisation de données dans une mémoire, la détermination
d'un achèvement de traitement et analogues sont effectuées.
La restitution d'un micropolygone correspond à une compensation à plat. C'est-à-dire que le calcul est effectué d'une manière telle que le micropolygone soit coloré uniformément avec les valeurs RVB appliquées comme les données de texture. La méthode de traitement dans la section de mise en mémoire 15 est tributaire de l'ordre de tri initialement appliqué à la surface courbe et au polygone. De même, la méthode de traitement dans la section de mise en mémoire 15 dépend de ce que le pouvoir couvrant soit ou non inclus dans la donnée de texture. On décrira ci-après la
méthode de traitement.
Tout d'abord, on décrira les première, seconde, troisième et quatrième méthodes de traitement dans la section de mise en mémoire 15 dans le cas o le tri est effectué parmi ceux suivants la direction de rapprochement
par rapport à la profondeur.
La première méthode de traitement est appliquée au cas dans lequel la donnée de texture ne contient aucun pouvoir couvrant. La section de restitution 16 comprend une mémoire servant à mémoriser une valeur d'intensité de restitution, une valeur d'intensité de calcul et une somme des attributions de zones à chaque pixel dans le système de coordonnées de grille. On suppose que la valeur d'intensité de restitution et la valeur d'intensité du calcul sont
toutes deux des données tridimensionnelles du type RVB.
Puisqu'un seul pixel reçoit des attributions de zones par une multitude de micropolygones, les attributions de zones pour le pixel sont sommées, de manière à obtenir la somme des attributions de zones. La section de restitution 16 calcule la valeur d'intensité de restitution, la valeur d'intensité de calcul et la somme des attributions de zones sur la base des attributions de zones d'un premier micropolygone à une sortie de 9 pixels délivrée par la section de référence à l'attribution de zones 12 et à la donnée de texture délivrée par la section de référence à la donnée de texture 14. Ensuite, la section de restitution 16 effectue les opérations de lecture, de modification et d'écriture dans la mémoire. La valeur d'intensité de calcul est une valeur temporaire utilisée pour calculer la valeur d'intensité de restitution. Comme il a été précédemment décrit en référence à la figure 15, les attributions de zones délivrées par la section de référence aux attributions de zones 12 est la donnée basée sur le système de coordonnées locales de 5x5 pixels. C'est ainsi qu'il est nécessaire de convertir la donnée en une donnée basée sur le système de coordonnées de grille. La conversion est effectuée comme suit en utilisant I et J qui sont décrits pour le fonctionnement de la section de génération d'adresse 11. Il est indiqué que les coordonnées du pixel auquel il convient d'accéder dans la grille sont représentées par (Iw, Jw). Si (wi, wj) = (0, 0), un pixel positionné en I-2 < Iw < I
et J-2 < Jw < J est rendu accessible.
Si (wi, wjI) = (0, 1), un pixel positionné en I-2 < Iw < I
et J-1 < Jw < J+1 est rendu accessible.
Si (wi, wj) = (0, 2), un pixel positionné en I-2 < Iw < I
et J < Jw < J+2 est rendu accessible.
15. Si (wi, wj) = (1, 0), un pixel positionné en
I-1 < Iw < I+1 et J-2 < Jw < J est rendu accessible.
Si (wi, wj) = (1, 1), un pixel positionné en
I-1 < Iw < I+1 et J+1 < Jw < J+1 est rendu accessible.
Si (wi, wj) = (1, 2), un pixel positionné en
I-1 < Iw < I+1 et J < Jw < J+2 est rendu accessible.
Si (wi, wj) = (2, 0), un pixel positionné en I < Iw < I+2
et J-2 < Jw < J est rendu accessible.
Si (wi, wj) = (2, 1), un pixel positionné en I < Iw < I+2
et J-1 < Jw < J+1 est rendu accessible.
25. Si (wi, wj) = (2, 2), un pixel positionné en I < Iw < I+2
et J < Jw < J+2 est rendu accessible.
Ces pixels sont traités par la section de restitution 16 comme il est décrit ci-après. Tout d'abord, la somme des attributions de zones asum d'un pixel devant être traité est extraite de la mémoire. C'est seulement lorsque la somme asum est plus petite que 1, qu'une valeur temporaire (Temp) est calculée en ajoutant l'arbre de sortie a calculée par la section de référence à l'attribution de zones 12 à la somme
asum, à savoir Temp = asum + a.
(1) Si la valeur temporaire est égale à 1 ou plus petite, (Temp < 1): La somme des attributions de zones est mise à jour pour être Temp. La valeur d'intensité de calcul est mise à jour pour être une valeur qui est obtenue en ajoutant un produit de a et la valeur d'intensité (IG, IG, IB) à ladite il est référé par la section de référence à la donnée de texture 14 à la valeur d'intensité de calcul (IcalR, IcalG, IcalB) qui est extraite de la mémoire: (Valeur d'intensité de calcul) = a(IR, IG, IB) + (IcalR, calalG' IcalB) (87) (2) Si la valeur temporaire est supérieure à 1 (Temp > 1): La valeur d'intensité du calcul est mise à jour pour être la valeur suivante et la somme des attributions de zones est mise à jour pour être 1: (Valeur d'intensité de calcul) - (1-asum)(IR, IG, IB) + (IcalR, IcalG, IcalB) (88) La section de détermination d'achèvement de traitement d'une image 17 détermine si le traitement de tous les micropolygones générés pour un seul polygone ou une surface courbe est ou non achevé. Si le traitement n'est pas achevé, les traitements qui précèdent sont effectués d'une manière répétée jusqu'à ce que la totalité des micropolygones générés pour un seul polygone ou une surface courbe soit traitée. S'il est déterminé que le traitement est achevé, la valeur d'intensité de restitution est mise à jour pour être la valeur suivante utilisant la valeur d'intensité de restitution (IdR, IdG, IdB) qui est extraite de la mémoire: (Valeur d'intensité de restitution) = (1-asum)(IR, IG, IB) + (IcalR, IcalG' IcalB) (89) Lorsque la mise à jour est terminée, la valeur d'intensité de calcul et la somme des attributions de zones sont initialisées à 0. Le traitement précédemment mentionné est effectué d'une manière répétée jusqu'à ce que la section de détermination d'achèvement de traitement d'une scène 18 détermine que le traitement de toutes les données pour une seule scène est achevé. Dans cette première méthode, la section de correction de valeur d'intensité 19 ne joue aucun rôle. La seconde méthode de traitement est appliquée au cas o la donnée de texture possède un pouvoir couvrant. Une valeur obtenue en multipliant une attribution de zones par le pouvoir couvrant est définie comme une attribution de pixels. La section de restitution 16 comprend une mémoire servant à mémoriser une valeur d'intensité de restitution, une valeur d'intensité de calcul, une somme d'attributions de zones et une somme d'attributions de pixels pour chaque pixel. La méthode utilisée pour convertir les coordonnées situées dans la région de 5x5 pixels en celles de la grille pour le pixel auquel s'est référée la section de référence d'attribution de zones 12 est la même que celle décrite dans
le premier procédé de traitement.
Tout d'abord, la section de restitution 16 extrait la somme des attributions de zones asum d'un pixel destiné à être traité à partir de la mémoire. C'est seulement lorsque la somme asum est inférieure à 1 qu'une valeur temporaire (Temp) est calculée en ajoutant l'attribution de zones a calculées par référence aux attributions de zones 12 à la
somme asum, à savoir Temp = asum + a.
(1) Si la valeur temporaire est égale à 1, ou est plus petite (Temp < 1): La somme des attributions de zones est mise à jour pour être égale à Temp. La somme des attributions des pixels est mise à jour pour constituer une valeur obtenue en ajoutant un produit du pouvoir couvrant 6 auquel s'est référée la section de référence aux données de texture 14 et l'attribution de zones calculée a à la somme des attributions de pixels Y qui est extraite de la mémoire: (Somme des attributions de pixels) = a8 + Y (90) La valeur d'intensité du calcul est mise à jour pour constituer une valeur obtenue en ajoutant un produit de a, f et la valeur d'intensité (IR, IG, IB) à laquelle s'est référée à la section de référence à la donnée de texture 14 a la valeur d'intensité de calcul (IcalR, IcalG, IcalB) qui est extraite de la mémoire: (Valeur d'intensité de calcul) = ap(IR, IG, IB) + (IcalR, IcalG' IcalB) (91) (2) Si la valeur temporaire est supérieure à 1 (Temps > 1): La valeur d'intensité de calcul est mise à jour pour être à la valeur suivante: (Valeur d'intensité de calcul) = (1- a)P(IR, IG, IB) + (IcalR' IcalG, IcalB) (92) La somme des attributions de zones est mise à jour pour être 1. La somme des attributions de pixels est mise à jour pour être la valeur suivante: (Somme des attributions de pixels) = (1- asum)P +7 (93) La section de détermination d'achèvement du traitement d'une image 17 détermine si le traitement de tous les micropolygones générés pour un seul polygone ou une surface courbe est ou non achevé. Si le traitement n'est pas achevé, les processus qui précèdent sont effectués d'une manièrerépétée jusqu'à ce que la totalité des micropolygones générés pour un seul polygone ou une surface courbe sont traités. S'il est déterminé que le traitement est achevé, la valeur d'intensité de restitution est mise à jour pour être la valeur suivante en utilisant la valeur d'intensité de restitution (IdR, IdG, IdB) qui est extraite de la mémoire: (Valeur d'intensité de restitution) = (1-))(IdR, IdG, IdB) + (IcalR, IcalG, IcalB) (94) Lorsque la mise à jour est terminée, la valeur d'intensité du calcul, la somme des attributions de zones et
la somme des attributions de pixels sont initialisées à 0.
Le traitement précédemment indiqué est effectué d'une manière répétée jusqu'à ce que la section de détermination d'achèvement de traitement d'une scène 18 détermine que le
traitement de toutes les données pour une scène est achevé.
Dans cette seconde méthode, la section de correction de
valeur d'intensité 19 ne joue aucun rôle.
Le troisième procédé de traitement est appliqué au cas dans lequel la donnée de texture ne possède aucun pourvoir couvrant. La section de restitution 16 comprend une mémoire servant à mémoriser une valeur d'intensité de restitution, une valeur d'intensité de calcul et une somme des attributions de zones pour chaque pixel. La méthode servant à convertir les coordonnées dans la région de 5x5 pixels en celles de la grille pour le pixel auquel s'est référée la section de référence aux attributions de zones 12 est la même que celle décrite dans le premier procédé de
traitement.
Tout d'abord, la section de restitution 16 extrait la somme des attributions de zones asum d'un pixel devant être traité de la mémoire. C'est seulement lorsque la somme asum est inférieure à 1 qu'une valeur temporaire (Temp) est calculée en ajoutant l'attribution de zones a calculée par la section de référence aux attributions de zones 12 à la
somme asum, à savoir Temps = asum + a.
(1) Si la valeur temporaire est égale ou inférieure à 1 (Temp < 1): La somme des attributions de zones est mise à jour pour être égale à Temp. La valeur d'intensité de calcul est mise à jour pour être une valeur qui est obtenue de la manière suivante: la valeur d'intensité (IR, IG, IB) à laquelle s'est référée la section de référence aux données de texture 14 est tout d'abord soustraite de la valeur d'intensité de restitution (IdR, IdG, IdB) qui est extraite de la mémoire, le résultat soustrait est ensuite multiplié par a et le résultat multiplié est soustrait de la valeur d'intensité de calcul (IcalRI IcalG, IcalB) extraite de la mémoire: (Valeur d'intensité de calcul) = (IcalR, IcalG, IcalB) - a{(IdR, IdG, IdB) - (IR, IG, IB)} (95) (2) Si la valeur temporaire est supérieure à 1 (Temp > 1): La valeur d'intensité de calcul est mise à jour pour être la valeur suivante et la somme des attributions de zones est mise à jour pour être 1: (Valeur d'intensité de calcul) (IcalR, calalG IcalB)} - (1-asum){(IdR, IdG, IdB) - (IR, IG, IB)} (96) La section de détermination d'achèvement de traitement d'une image 17 détermine si le traitement de tous les micropolygones générés pour un seul polygone ou une surface courbe est ou non achevé. Si le traitement n'est pas achevé, les processus qui précèdent sont effectués d'une manière répétée jusqu'à ce que la totalité des micropolygones générés pour un seul polygone ou une surface courbe soient traités. S'il est déterminé que le traitement est achevé, la valeur d'intensité de restitution est mise à jour pour être la valeur d'intensité de calcul. Lorsque la mise à jour est terminée, la valeur d'intensité de calcul et la somme des attributions de zones sont initialisées à 0. Le traitement mentionné précédemment est effectué d'une manière répétée jusqu'à ce que la section de détermination d'achèvement d'une scène 18 détermine que le traitement de toutes les données pour une scène est achevé. Dans ce troisième procédé, la section de correction de valeur d'intensité 19
ne joue aucun rôle.
Le quatrième procédé de traitement est appliqué au cas dans lequel la donnée de texture possède un pouvoir couvrant. La section de restitution 16 comprend une mémoire servant à mémoriser une valeur d'intensité de restitution, une valeur d'intensité de calcul et une somme des attributions de zones pour chaque pixel. La méthode utilisée pour convertir les coordonnées de la région de 5x5 pixels en celles de la grille pour le pixel auquel s'est référé la section de référence aux attributions de zones 12 est la même que celle décrite dans le premier procédé de traitement. Tout d'abord, la section de restitution 16 extrait la somme des attributions de zones asum d'un pixel destiné à être traité de la mémoire. C'est seulement lorsque la somme asum est inférieure à 1 qu'une valeur temporaire (Temp) est calculée en ajoutant l'attribution de zones a calculée par la section de référence aux attributions de zones 12 à la
somme asum, à savoir Temp = asum + a.
(1) Si la valeur temporaire est égale ou inférieure à 1 (Temps < 1): La somme des attributions de zones est mise à jour pour être Temp. La valeur d'intensité de calcul est mise à jour
pour être une valeur qui est obtenue de la manière suivante.
La valeur d'intensité (IR, IG, IB) à laquelle s'est référée la section de référence aux données de texture 14 est tout d'abord soustraite à la valeur d'intensité de restitution (IdR, IdG, IdB) qui est extraite de la mémoire, le résultat soustrait est alors multiplié par a et par le pouvoir couvrant P auquel s'est référé la section de référence à une donnée de texture 14 et le résultat multiplié est soustrait de la valeur d'intensité de calcul (IcalR, IcalG' IcalB) extraite de la mémoire: (Valeur d'intensité de calcul) (IcalR, IcalG, IcalB) - ap{(IdR, IdG, IdB) - (IR' IG, I B)} (97) (2) Si la valeur temporaire est supérieure à 1 (Temps > 1): La valeur d'intensité de calcul est mise à jour pour être la valeur suivante et la somme des attributions de zones est mise à jour pour être 1: (Valeur d'intensité de calcul) ( IcalR, IcalG, IcalB)(1-asum)P{(IdR, IdG, IdB)
- (IR, IG, IB) (98)
La section de détermination d'achèvement de traitement d'une image 17 détermine si le traitement de tous les micropolygones générés pour un seul polygone ou une surface courbe est ou non achevé. Si le traitement n'est pas achevé, les traitements qui précèdent sont effectués d'une manière répétée jusqu'à ce que la totalité des micropolygones générés pour un seul polygone ou une surface courbe soit traitée. S'il est déterminé que le traitement est achevé, la valeur d'intensité de restitution est mise à jour pour être la valeur d'intensité de calcul. Lorsque la mise à jour est terminée, la valeur d'intensité de calcul et la somme des attributions de zones sont initialisées à 0. Le traitement précédemment mentionné est effectué d'une manière répétée jusqu'à ce que la section de détermination d'achèvement de traitement d'une scène 18 détermine que le traitement de toutes les données pour une scène soit achevé. Dans ce quatrième procédé, la section de correction de valeur
d'intensité 19 ne joue aucun rôle.
On décrira ensuite les cinquième, sixième et septième procédés de traitement dans la section de mise en mémoire 15 dans le cas o le tri est effectué entre ceux situés dans la
direction d'éloignement par rapport à la profondeur.
Le cinquième procédé de traitement est appliqué au cas dans lequel la donnée de texture ne possède aucun pouvoir couvrant. La section de restitution 16 inclut une mémoire servant à mémoriser une valeur d'intensité et une somme d'attributions de zones pour chaque pixel. La méthode utilisée pour convertir les coordonnées dans la région de x5 pixels en celles de la grille pour le pixel auquel s'est référée la section de référence aux attributions de zones 12 est la même que celle décrite dans le premier procédé de
traitement.
Tout d'abord, la section de restitution 16 extrait la somme des attributions de zones asum d'un pixel devant être traité de la mémoire. C'est seulement lorsque la somme asum est inférieure 1 qu'une valeur temporaire (Temp) est calculée en ajoutant l'attribution de zones a calculée par la section de référence d'attribution de zones 12 à la somme
asum, à savoir Temp = asum + a.
(1) Si la valeur temporaire est égale ou inférieure à 1 (Temp < 1): La somme des attributions de zones est mise à jour pour être Temp. La valeur d'intensité est mise à jour pour être valeur qui est obtenue de la manière suivante: la valeur d'intensité (IR, IG, IB) à laquelle s'est référée la section de référence aux données de texture est tout d'abord multipliée par a, puis le résultat multiplié est ajouté à la valeur d'intensité (IdR, IdG, IdB) qui est extraite de la mémoire: (Valeur d'intensité) = a(IR, IG, IB) + (IdR, IdG, IdB) (99) (2) Si la valeur temporaire est supérieure à 1 (Temp > 1): La valeur d'intensité est mise à jour pour correspondre à la valeur suivante et la somme des attributions de zones est mise à jour pour être 1: (Valeur d'intensité) = (1-asum)(IR, IG' IB) + (IdR, IdG, IdB) (100) Le traitement précédemment mentionné est effectué d'une manière répétée jusqu'à ce que la section de détermination d'achèvement de traitement d'une scène 18 détermine qu'elle
traitement de toutes les données pour une scène est achevé.
Si la section de détermination d'achèvement de traitement d'une scène 18 détermine que le traitement est achevé, la section de correction de valeur d'intensité l9,met à jour, pour un pixel ayant une attribution de zones inférieure à 1, la valeur d'intensité pour qu'elle corresponde à une valeur obtenue comme suit: la somme des attributions de zones est soustraite de 1, le résultat soustrait est multiplié par la valeur d'intensité (IbR, IbG, IbB) qui est appliquée comme fond et le résultat multiplié est ajouté à la valeur d'intensité mémorisée (IdR, IdG, IdB): (Valeur d'intensité) = (IdR, IdG, IdB) + (l-a)(IbR, IbG, IbB) (101) Le sixième procédé de traitement est appliqué au cas dans lequel la donnée de texture possède un pouvoir recouvrant. La section de restitution d'intensité 16 qui inclut une mémoire servant à mémoriser une valeur d'intensité et une somme d'attributions de pixels pour chaque pixel. La méthode utilisée pour convertir les coordonnées dans la région de 5x5 pixels en celles de la grille pour le pixel auquel s'est référé la section de référence aux attributions de zones est la même que celle
décrite dans le premier procédé de traitement.
Tout d'abord, la section de restitution 16 extrait la somme des attributions de pixels /sum d'un pixel devant être traité de la mémoire. C'est seulement lorsque la somme sum est inférieure à 1 qu'une valeur temporaire (Temp) est calculée en ajoutant Ysum à un produit de attribution de zones a calculée dans la section de référence aux attributions de zones 12 et le pouvoir couvrant p auquel s'est référée la section de référence et données de texture
14, à savoir Temp = Ysum + ah.
(1) Si la valeur temporaire est égale ou inférieure à 1 (Temps < 1): La somme des attributions de pixels sum est mise à jour pour être Temp. La valeur d'intensité est mise à jour pour être une valeur qui est obtenue de la manière suivante: un produit de a et de P est multiplié par la valeur d'intensité (IR, IG, IB) à laquelle s'est référée la section de référence aux données de texture 14, et le résultat multiplié est ajouté à la valeur d'intensité (IdR, IdG, IdB) qui est extraite de la mémoire: (Valeur d'intensité) = ap(IR, IG, IB) + (IdR, IdG, IdB) (102) (2) Si la valeur temporaire es supérieure à 1 (Temps > 1): La valeur d'intensité est mise à jour pour être la valeur suivante et la somme des attributions de pixel est mise à jour pour être 1: (Valeur d'intensité) = (1-Ysum)(IR, IG IlB)) + (IdR, IdG, IdB) (103) Le traitement précédemment mentionné est effectué d'une manière répétée jusqu'à ce que la section de détermination d'achèvement de traitement d'une scène 18 détermine que le
traitement de toutes les données pour une scène soit achevé.
Si la section de détermination d'achèvement de traitement d'une scène 18 détermine que le traitement est achevé, la section de correction de valeur d'intensité 19 met à jour, pour un pixel comportant une attribution de zones inférieure à 1, la valeur d'intensité pour qu'elle soit une valeur obtenue comme suit: la somme des attributions de pixels est soustraite de 1, le résultat soustrait est multiplié par la valeur d'intensité (IbR, IbG, IbB) qui est appliquée comme fond et le résultat multiplié est ajouté à la valeur d'intensité mémorisée (IdR, IdG, IdB): (Valeur d'intensité) = (IdR, IdG, IdB) + (1-ysum)(IbRI IbG, IbB) (104) Le septième procédé de traitement est appliqué au cas dans lequel la donnée de texture possède un pouvoir couvrant. La section de restitution 16 inclut une mémoire servant à mémoriser une valeur d'intensité et une somme d'attributions de zones pour chaque pixel et une mémoire servant à mémoriser une somme des attributions de zones pour chaque pixel. La méthode utilisée pour convertir les coordonnées de la région de 5x5 pixels en celles de la grille pour le pixel auquel s'est référée la section de référence aux attributions de zones 12 est la même que celle
décrite dans le premier procédé de traitement.
Tout d'abord, la section de restitution 16 extrait la somme des attributions de zones asum et la somme des attributions de pixels Ysum d'un pixel devant être traité de la mémoire. C'est seulement lorsque les sommes asum et Ysum sont toutes deux inférieures à 1 qu'une première valeur temporaire (Templ) correspondant à la somme des attributions de zones est calculée en ajoutant asum à l'attribution de zones a qui est calculée par la section de référence aux attributions de zones 12 et qu'une section valeur temporaire (Temp2) correspondant à la somme des attributions de pixels est calculée en ajoutant Ysum à un produit de l'attribution de zones a et du pouvoir couvrant P auquel s'est référée la section de référence aux données de texture 14. Ceci revient
à dire que Templ = asum + a et que Temp2 = Ysum + af.
(1) Si Templ et Temp2 sont toutes deux égales ou inférieures à 1 (templ < 1 et Temp2 < 1): La somme des attributions de zones asum sont mise à jour pour correspondre à Templ et la somme des attributions de pixels sum est mise à jour pour correspondre à Temp2; La valeur d'intensité est mise à jour pour correspondre à une valeur qui est obtenue de la manière suivante: un produit de a et de P est multiplié par la valeur d'intensité (IR, IG, IB) à laquelle s'est référée la section de référence aux données de texture 14 et le résultat multiplié est ajouté à la valeur d'intensité (IdR, IdG, IdB) qui est extraite de la mémoire: (Valeur d'intensité) = ap(IR, IG, IB) + (IdR, IdG, IdB) (105) (2) Si Templ est supérieur à 1 et si Temp2 est égal ou inférieur à 1 (Templ > 1 et Temp2 < 1): La valeur d'intensité est mise à jour pour correspondre à la valeur suivante et la somme des attributions de zones est mise à jour pour correspondre à 1: (valeur d'intensité) = (1-asum)P(IR, IG, IB) + (IdR, IdG, IdB) (106) La somme des attributions de pixels est mise à jour pour correspondre à la valeur suivante: (Somme des attributions de pixels) = ysum + (1-asum) suni + lasum)p (107) (3) Si Temp2 est supérieur à 1 (Temp2 > 1): La valeur d'intensité est mise à jour pour correspondre à la valeur suivante et la somme des attributions de zones et la somme des attributions de pixels sont mises à jour pour correspondre à 1: (Valeur d'intensité) = (1-Ysum)(IR, IG, IB)) + (IdR, IdG, IdB) (108) La section de détermination d'achèvement de traitement d'une image 17 détermine si le traitement de la totalité des micropolygones générés pour un seul polygone ou une surface courbe est ou non achevé. Si le traitement n'est pas achevé, les processus qui précèdent sont effectués d'une manière répétée jusqu'à ce que la totalité des micropolygones générés pour un seul polygone ou une surface courbe soit traitée. S'il est déterminée que la traitement est achevé, la somme des attributions de zones est initialisée à 0. Le traitement précédemment mentionné est effectué d'une manière répétée jusqu'à ce que la section de détermination d'achèvement de traitement d'une scène 18 détermine que le
traitement de toutes les données pour une scène soit achevé.
Si la section de détermination d'achèvement de traitement d'une scène 18 détermine que le traitement est achevé, la section de correction de valeur d'intensité 19 met à jour, pour un pixel ayant une somme d'attributions de pixels inférieure à 1, la valeur d'intensité pour qu'elle corresponde à une valeur obtenue comme suit: la somme des attributions de pixels est soustraite de 1, l'ers soustrait est multiplié par la valeur d'intensité (IbR, IbG, IbB) qui est appliquée comme fond et le résultat multiplié est ajouté à la valeur d'intensité mémorisée (IdR, IdG, IdB): (Valeur d'intensité) = (IdR, IdG, IdB) + (1-Ysum)(IbR, IbG, IbB) (109) On décrira ci-après un section exemple de l'invention en
référence aux figures pertinentes.
Dans le premier exemple, l'attribution de zones est calculée en référence à la table d'attributions de zones. Dans le second exemple, on décrira une méthode utilisée pour calculer une attribution de zones par des opérations arithmétiques. La figure 2 illustre le générateur d'image dans le second exemple de l'invention. A la figure 2, le générateur d'image comprend un section de détermination d'intérieur/extérieur 201, une section de comptage 202, une section de détermination d'achèvement de traitement d'un pixel 203, une section d'achèvement d'attribution de zones 204 et une section de détermination d'achèvement de traitement de pixel de région 205. La section de détermination intérieur/extérieur 201 détermine si un point intérieur d'un sous- micropolygone existe ou non à l'intérieur d'une région définie par un micropolygone. La
section de comptage 202 compte le nombre de sous-
micropolygones présents à l'intérieur de la région définie par le micropolygone. La section de détermination d'achèvement de traitement d'un pixel 203 détermine si le traitement d'un pixel est ou non achevé. La section de détermination d'achèvement de traitement de pixels de région 205 détermine si le traitement pour tous les pixels présents
dans une région prescrite est ou non achevé.
En ce qui concerne le générateur d'image du second exemple, l'arrière plan logique sera décrit ci-après et le fonctionnement en sera décrit. Comme il est décrit dans le premier exemple, si la taille prescrite d'un micropolygone est de 1 ou moins, le micropolygone demeure à l'intérieur de la région de 5x5 pixels (il est indiqué que le point de base
est positionné à l'intérieur d'un centre des 5x5 pixels).
Lorsque la région de 5x5 pixels est indiquée par, une région définie par le micropolygone est indiquée par D et une région de pixel à la position (i, j) est indiquée par Pij, l'équation suivante étant établie en conformité avec la définition d'une attribution de zones: D (Attribution de Pij) j dzdy (110) En général, lorsqu'une intégrale est définie par un ensemble S, la relation suivante est établie pour une
fonction intégrable f sur l'ensemble S, o A est un sous-
ensemble de S: J f(s)ds =IndA(s)f(s)ds (111) r 1 ifsEA IndA(s) { 0 ifs5A (112) C'est ainsi qu'à partir des équations (110), (111) et (112) la relation suivante est établie: (Attribution de Pij) = fIndpjD((Zy))dzdY (113) On considèrera à présent un procédé permettant de rendre l'équation (113) discrète. La figure 17 est un schéma correspondant au moment o chaque côté du Pij est divisé en
2n parties égales et o 22n sous-pixels sont générés.
Lorsqu'un point intérieur de l'un des sous-pixels est supposé être un centre de gravité, le centre de gravité peut être représenté comme suit tout en introduisant un système de coordonnées kl: _ = 1 k. I 1 l
- - ±--+
qkI i2-2n+1 +,-2n± +2) (114) o n5 qO < k,t< --1 (115) En utilisant ce qui précède, l'équation (113) peut être exprimée comme une limite de l'équation discrète suivante:
2 -1 2 -1
(Attribution de Pij) = lim 1 2- Indp,ino(qi) (116) k=0 1=0 Le côté droit de l'équation (116) peut être interprété en ce que le nombre de centre de gravité existant à l'intérieur d'une zone partagée de Pij et D est obtenu et en
ce que le nombre est multiplié par une zone des sous-pixels.
Il est par suite nécessaire de déterminer si chaque centre de gravité est ou non positionné à l'intérieur de la zone partagée de Pij et D. Cette détermination peut être effectuée sur la base des quatre lemmes suivants (voir
figure 18).
Lemme 1: il est supposé qu'un point de base (x, y) et deux vecteurs (dx, dy) et (px, py) prenant leur origine dans le point de base sont donnés et qu'un certain point (a, 3) qui satisfait la relation suivante est fourni:
(a-x, 1-y) = s(dx, dy) + t(px, py).
Si 0 < s < 1 et si 0 < t < 1, alors le point (a, p) est positionné dans un parallélogramme (incluant les frontières de celui-ci) défini par le point de base (x, y) et par les deux vecteurs (dx, dy) prenant leur origine dans le point de base. Lemme 2: il est supposé qu'un point de base (x, y) et deux vecteurs (dx, dy) et (px, py) prenant leur origine dans le point de base sont donnés et qu'un certain point (a, P) qui satisfait la relation suivante est fourni:
(a-x, P-y) = s(dx, dy) + t(px, py).
Si 0 < s < 1 et si 0 < t < 1, alors le point (a, /) est positionné dans un parallélogramme (en excluant les
6 1 2714505
frontières de celui-ci) défini par le point de base (x, y) et les deux vecteurs (dx, dy) et (px, py) prenant leur
origine dans le point de base.
Lemme 3: il est supposé qu'un point de base (x, y) et deux vecteurs (dx, dy) et (px, py) prenant leur origine dans le point de base sont donnés et qu'un certain point (a, P) qui satisfait la relation suivante est fourni:
(a-x, P-Y) = s(dx, dy) + t(px, py).
Si 0 < s < 1 et si 0 < t < 1 et si 0 < s+t < 1, alors le point (a, P) est positionné dans un triangle (incluant le frontière de celui-ci) défini par le point de base (x, y) et les deux vecteurs (dx, dy) et (px, py) prenant leur origine
dans le point de base.
Lemme 4: il est supposé qu'un point de base (x, y) et deux vecteurs (dx, dy) et (px, py) prenant leur origine dans le point de base sont donnés et qu'un certain point (a, B) qui satisfait la relation suivante est fourni:
(a-x, P-y) = s(dx, dy) + t(px, py).
Si 0 < s < 1 et si 0 < t < 1 et si 0 < s+t < 1, alors le point (a, P) est positionné dans un triangle (excluant le frontière de celui-ci) défini par le point de base (x, y) et les deux vecteurs (dx, dy) et (px, py) prenant leur origine
dans le point de base.
Pour tous les lemmes 1, 2, 3 et 4 précédemment décrits, s et t peuvent être obtenus comme suit, si (dxpy - pxdy) n'est pas égal à 0: (sA) 1) (pz(117) t dzpy - dyp\ -dy dz 8 - y Toutefois, si (dxpy - pxdy) est égal à 0, il n'existe pas de solution (ceci indique que le parallélogramme ou le triangle
est affaissé).
Eu égard à la description qui précède, on décrira le
traitement ci-après. La donnée incluant un point de base ainsi que des vecteurs pour définir un micropolygone et la donnée de la région de 5x5 pixels comportant le point de base comme son centre sont appliqués à la section de détermination intérieur/extérieur 201. Dans le cas d'un micropolygone tétragonal, le micropolygone est divisé en deux triangles. La section de détermination intérieur/extérieur 201 détermine si la condition de (dxpy - pxdy) = 0 est ou non satisfaite. S'il est déterminé être 0, les attributions de zones à la totalité des pixels présents dans la région de 5x5 pixels sont de 0, de sorte que le processus complet est terminé. Si (dxpy - pxdy) n'est pas égal à 0, le traitement suivant est effectué pixel par
pixel dans la région de 5x5 pixels.
Tout d'abord, s et t sont obtenus pour le centre de gravité du sous- pixel sur la base de l'équation (117). Dans le cas du micropolygone parallélogramme, il est déterminé si Lemme 1 ou Lemme 2 est ou non satisfait. Dans le cas du micropolygone tétragonal ou triangle, il est déterminé si Lemme 3 ou Lemme 4 est ou non satisfait. Si l'un quelconque des lemmes est satisfait, la section de comptage 202 incrémente les contenus d'un compteur correspondant de un (les compteurs de Lemmes 1, 2, 3 et 4 sont appelés comptel,
compte2, compte3 et compte4, respectivement).
Ce traitement est répété jusqu'à ce que la section de détermination d'achèvement de traitement de un pixel 203 détermine que le traitement pour la totalité des sous-pixels présents dans un pixel est achevé. Si la section de détermination d'achèvement de traitement d'un pixel 203 détermine que le traitement pour la totalité des sous-pixels dans un pixel est achevé, la section de calcul d'attribution de zones 204 calcule: pour le micropolygone parallélogramme, compte = compte2 + (comptel - compte2) / 2, et pour le micropolygone tétragonal ou triangle,
compte = compte4 + (compte3 - compte4) / 2.
Ensuite, le compte obtenu est multiplié par la zone du sous-pixel, de manière à obtenir l'attribution de zones du pixel. L'attribution de zones qui en résulte est arrondie en concordance avec la précision requise dans une direction plus. Le traitement est effectué d'une manière répétée jusqu à ce que la section de détermination d'achèvement de traitement de pixel de région 205 détermine que le traitement de la totalité des pixels présents dans la région de 5x5 pixels est achevé. Si le traitement est déterminé
comme achevé, le traitement complet est terminé.
Dans cet exemple, le traitement est exécuté pour la région de 5x5 pixels. Toutefois, comme il est décrit dans le premier exemple, si la taille prescrite est de 1 ou moins, un micropolygone possédant la taille maximale existe à l'intérieur de la région de 3x3 pixels. C'est ainsi que si une section de prétraitement quelconque servant à l'obtention d'une région rectangulaire minimale incluse dans le micropolygone est prévue, le nombre de pixels devant être traités sera encore diminué. Par exemple, on peut voir dans le cas de la figure 19 qu'une région de 2x2 pixels est suffisante pour le traitement. Le procédé décrit dans le section exemple peut être employé pour réaliser une table
d'attributions de zones dans le premier exemple.
Comme il a été décrit précédemment, conformément à l'invention, une surface courbe et un polygone définis dans l'espace tridimensionnel sont géométriquement transformés en grille bidimensionnelle puis la génération des micropolygones est effectuée. Par suite, la quantité de calcul pour les transformations géométriques est réduite d'une manière drastique comparée à la technique antérieure,
de sorte qu'un traitement rapide peut être réalisé.
Précisément, en fait, dans les transformations géométriques de la surface courbe et du polygone en grilles bidimensionnellles, les sommets, points de référence, points de division intérieurs qui définissent la surface courbe et le polygone sont transformés géométriquement. Le nombre de tels sommets et points est inférieur au nombre de micropolygones d'un ou trois ordres. C'est ainsi que la quantité de calcul requise pour lestransformations géométriques est réduite d'un à deux ordres ou moins, ce qui influe grandement sur l'accroissement de la vitesse de traitement. En outre, dans le processus de génération de micropolygones, lorsqu'un micropolygone est généré dans l'espace tridimensionnel comme dans la technique antérieure, trois valeurs ou composantes de coordonnées sont requises d'être calculées pour définir la position et la taille de celles-ci. Tandis qu'un micropolygone est généré dans l'espace bidimensionnel, deux valeurs ou composantes de coordonnées sont suffisantes pour définir la position et la taille de celles-ci. A cet égard, la quantité de calcul est réduite jusqu'à correspondre aux 2/3 comparé à la technique antérieure. Dans le procédé classique, la restitution est effectuée par sautillement, de sorte que la génération de nombres aléatoires est requise. Par ailleurs, dans la présente invention, l'attribution de zones est déterminée en utilisant une table de sorte que la génération de nombres aléatoires n'est pas requise et qu'ainsi un traitement rapide peut être réalisé. Le procédé de la présente invention incluant les attributions de zones dans un format de table possède la caractéristique supplémentaire de pouvoir être facilement mise en oeuvre par matériel. En outre, le nombre d'entrées dans la table peut être diminué si les formes des micropolygones sont limités à un parallélogramme et à un triangle. Dans un tel cas, une surface divisée ou un sous-polygone qui est obtenu en divisant la surface courbe ou le polygone est approché par un micropolygone parallélogramme ou triangle. L'attribution de zones peut être obtenue par calcul au lieu d'une utilisation de la table. Dans la présente invention, le calcul nécessaire pour l'attribution de zones est utilisé par un procédé qui applique une intégration de zone. Ce procédé peut être utilisé pour produire la table
d'attributions de zones.
Le micropolygone parallélogramme ou triangle peut être défini par les coordonnées positionnelles d'un point de base et de deux vecteurs prenant leur origine dans le point de base et par une adresse utilisée lorsque la table appelée en référence est générée depuis le point de base et des deux vecteurs de la présente invention. Si la taille maximale d'un micropolygone est déterminée et si les tailles des micropolygones sont établies d'une manière discrète jusqu'à la taille maximale, la taille de la table peut être finie. A ce moment, une région rectangulaire de pixel est déterminée d'une manière telle que le polygone possédant la taille maximale ne sorte jamais de la région rectangulaire tandis que le point de base du micropolygone possédant la taille maximale est fixé à l'intérieur d'un pixel, le micropolygone possédant la taille maximale étant déplacé jusqu'à une position désirée quelconque. Une entrée de la table d'attributions de zones est suffisante, si elle permet de mémoriser les attributions de zones à des pixels inclus dans la région rectangulaire. Toutefois, dans un tel cas, la taille d'une seule entrée est importante. C'est ainsi que, dans la présente invention, la taille de la table d'attributions de zones est réduite d'une manière telle qu'une seule de ses entrées comprennent les attributions de zones aux pixels inclus dans une région partielle dans
66 2714505
laquelle le micropolygone de taille maximale peut être inclus de même qu'un identificateur indicatif de la position dans laquelle la région partielle est positionnée dans la
région rectangulaire.
Le fait que la taille maximale du micropolygone soit déterminée signifie qu'il peut exister un cas dans lequel un sous-polygone ou une surface divisée qui est obtenue en divisant un polygone ou une surface courbe en conformité avec une procédure prédéterminée possède une taille supérieure à la taille maximale. Dans un tel cas, un procédé de redivision est requis. Dans la présente invention la redivision est effectuée en conformité avec un algorithme
récurrent utilisé à des fins de redivision.
Certains micropolygones tels que des micropolygones orientés vers l'arrière ne sont pas reflétés dans l'image générée obtenue. La présente invention utilise un procédé
pour la découpe de micropolygones orientés vers l'arrière.
Qu'un micropolygone soit ou non orienté vers l'arrière est généralement déterminé par la direction d'une surface de la surface courbe originale et par la direction de la perpendiculaire du micropolygone. Ce procédé de détermination est utilisé dans la présente invention. Dans une unité de surface courbe ou un polygone, un tri est effectué par rapport à la profondeur. Dans le cas o le traitement de la face cachée est effectuée par le tri, si la séquence de génération de micropolygones de la surface courbe n'est pas prise en compte, il peut se produire un cas dans lequel un micropolygone caché qui est positionné à la position de profondeur est restitué. En ce qui concerne la surface courbe, la séquence de génération de micropolygones peut être contrôlée par la séquence d'indexage des points de référence. A moins que la séquence d'accès aux données de valeur d'intensité telle que la texture soit également prise en compte à ce moment, la direction suivant laquelle la texture est projetée peut être erronée. Dans la présente invention, eu égard à cet aspect, la séquence d'accès à la donnée de valeur d'intensité de même que la séquence de
génération de micropolygones sont modifiées.
En vue d'une génération effective d'images, il est nécessaire de mémoriser les données dans une mémoire de trame et analogues. Dans la présente invention, la mise en mémoire est effectuée en vue des attributions de zones pour éliminer un bruit de crénelage. S'il n'existe pas d'erreur, l'attribution de zones à chaque pixel est égale ou inférieure à 1. Toutefois, une erreur quelconque est inévitablement être incluse et il peut exister un cas dans lequel une valeur obtenue en ajoutant entre elles les attributions de zones aux micropolygones pour un pixel qui dépasse 1. En vue de gérer un tel cas, dans la présente invention, la somme des attributions de zones est rendue égale ou inférieure à 1, de sorte que la transparence d'un objet peut être représentée. En outre, l'ordre de mise en mémoire est différent entre le cas o la donnée est mémorisée depuis le côté le plus profond et le cas dans lequel la donnée est mémorisée depuis le côté le plus
rapproché. La présente invention peut gérer les deux cas.
Diverses autres modifications apparaitront à l'homme de l'art, et pourront facilement être réalisées par celui-ci, sans sortir de la portée ni de l'esprit de la présente invention. C'est ainsi qu'il n'est pas prévu que la portée
des revendications qui lui sont annexées soit limitée à la
description telle que présentée ici, mais plutôt que les
revendications soient largement comprises.

Claims (24)

REVENDICATIONS:
1. Dispositif destiné à la génération d'une image incluant une multiplicité de pixels par projection d'une multiplicité de données de texture sur une surface d'un objet, le dispositif comprenant: un moyen de transformation géométrique servant à transformer géométriquement une surface courbe définie dans un espace tridimensionnel en une surface courbe située dans une grille bidimensionnelle, un moyen de génération de micropolygones servant à diviser la surface courbe située dans la grille bidimensionnelle en une multiplicité de surfaces courbes partielles en concordance avec le nombre de la multiplicité de données de texture et servant à générer un micropolygone en concordance avec chacune de la multiplicité de surfaces courbes partielles, un moyen de détermination d'attribution de zones servant à déterminer une attribution de zones du micropolygone à un pixel inclus dans l'image, sur la base d'une relation positionnelle relative entre le micropolygone et le pixel, un moyen d'acquisition de données de texture servant à acquérir une donnée de texture en concordance avec le micropolygone, et un moyen de détermination de valeur d'intensité servant à déterminer une valeur d'intensité du pixel, sur la base de l'attribution de zones déterminée par le moyen de détermination d'attribution de zones et par la donnée de texture acquise par le moyen d'acquisition de donnée de texture.
2. Dispositif selon la revendication 1, dans lequel la surface courbe définie dans l'espace tridimensionnel est définie par une multiplicité de premiers points de référence, le dispositif comprenant en outre: un moyen servant à calculer une multiplicité de points situés sur la surface courbe définie dans l'espace tridimensionnel, sur la base de la multiplicité de premiers points de référence, un moyen servant à transformer la multiplicité de points situés sur la surface courbe définie dans l'espace tridimensionnel en une multiplicité de points situés sur la grille bidimensionnelle, et un moyen servant à calculer une multiplicité de seconds points de référence, sur la base de la multiplicité de points situés sur la surface courbe dans la grille bidimensionnelle, d'o il résulte que la surface courbe située dans la grille bidimensionnelle est définie par la multiplicité des seconds points de référence.
3. Dispositif selon la revendication 1, dans lequel le moyen de génération de micropolygones représente approximativement chacune de la multiplicité de surfaces courbes partielles sous la forme d'un polygone au moins possédant une forme prédéterminée et génère un micropolygone correspondant au un polygone au moins représenté
approximativement.
4. Dispositif selon la revendication 3, dans lequel le polygone possédant la forme prédéterminée comprend l'un au moins d'un quadrilatère, d'un parallélogramme et d'un triangle.
5. Dispositif selon la revendication 1, dans lequel le micropolygone est défini par un point de base et par une multiplicité de vecteurs, le moyen de détermination d'attribution de zones comprenant: une table d'attributions de zones servant à mémoriser une multiplicité d'attributions de zones qui sont préalablement définies, un moyen de génération d'adresse servant à générer une adresse utilisée lorsque la table d'attributions de zones est appelée en référence sur la base de la position du point de base et de la multiplicité de vecteurs, et un moyen de référence aux attributions de zones servant à obtenir une attribution de zones du micropolygone à un pixel en se référant à la table d'attributions de zones en concordance avec l'adresse générée par le moyen de génération d'adresse.
6. Dispositif selon la revendication 1, comprenant en outre un moyen de redivision servant à diviser d'une manière répétée les micropolygones jusqu'à ce que la taille des micropolygones générés par le moyen de génération de micropolygones devienne égale ou inférieure à une taille prescrite, d'o il résulte que seuls les micropolygones possédant une taille qui est égale ou inférieure à la taille prescrite sont délivrés au
moyen de détermination d'attribution de zones.
7. Dispositif selon la revendication 1, dans lequel la surface courbe de l'espace tridimensionnel possède une face avant et une face arrière et, le dispositif comprenant en outre un moyen de découpe arrière-avant servant à déterminer un micropolygone qui n'est pas restitué, sur la base d'une information définissant une direction de la face avant de la surface courbe et une information définissant une direction
d'un vecteur perpendiculaire du micropolygone.
8. Dispositif selon la revendication 1, comprenant en outre: un moyen pour modifier une séquence de générations des micropolygones d'une manière telle que les micropolygones soient générés selon une direction prédéterminée par rapport à une profondeur de la grille bidimensionnelle, un moyen servant à modifier une séquence d'accès à la donnée de texture en fonction de la séquence de générations
modifiée des micropolygones.
9. Dispositif selon la revendication 1, dans lequel le micropolygone est défini par un point de base et par une multiplicité de vecteurs, chacun de la multiplicité de pixels étant divisé en une multiplicité de sous-pixels, chacun de la multiplicité de sous-pixels comportant un point représentatif défini dans sa partie interne, et dans lequel le moyen de détermination d'attributions de zones comprend: un moyen de détermination intérieur/extérieur servant à déterminer si le point représentatif du sous-pixel est ou non positionné à l'intérieur d'une région définie par le micropolygone en fonction d'une relation positionnelle relative entre le point représentatif du sous-pixel, le point de base et la multiplicité de vecteurs, un moyen de comptage servant à compter le nombre de sous-pixels comportant des points représentatifs qui sont positionnés à l'intérieur de la région définie par le micropolygone sur la base du résultat de détermination par le moyen de détermination intérieur/extérieur, et un moyen de calcul d'attributions de zones servant à calculer l'attributions de zones sur la base du nombre de sous-pixels comptés par le moyen de comptage et par les
zones des sous-pixels.
10. Procédé servant à générer une image incluant une multiplicité de pixels par projection d'une multiplicité de données de texture sur une surface d'un objet, le procédé comprenant les étapes consistant à: (a) transformer géométriquement une surface courbe définie dans un espace tridimensionnel en une surface courbe située dans une grille bidimensionnelle, (b) diviser la surface courbe située dans la grille bidimensionnelle en une multiplicité de surfaces courbes partielles en concordance avec le nombre de la multiplicité de données de texture, (c) générer un micropolygone en conformité avec chacune de la multiplicité de surfaces courbes partielles, (d) déterminer une attribution de zones du micropolygone à un pixel inclus dans l'image sur la base d'une relation positionnelle relative entre le micropolygone et le pixel, (e) acquérir l'une d'une multiplicité de données de texture environ le micropolygone, et (f) déterminer une valeur d'intensité du pixel, sur la base de l'attribution de zones déterminée à l'étape (d) et des données de texture acquises à l'étape (e).
11. Procédé selon la revendication 10, dans lequel la surface courbe définie dans l'espace tridimensionnel est définie par une multiplicité de premiers points de référence, le procédé comprenant en outre les étapes consistant à: calculer une multiplicité de points situés sur la surface courbe définie dans l'espace tridimensionnel sur la base de la multiplicité de premiers points de référence, transformer la multiplicité de points situés sur la surface courbe définie dans l'espace tridimensionnel en une multiplicité de points situés sur la grille bidimensionnelle, et calculer une multiplicité de seconds points de référence sur la base de la multiplicité de points situés sur la surface courbe dans la grille bidimensionnelle, d'o il résulte que la surface courbe située dans la grille bidimensionnelle est définie par la multiplicité du second point de référence.
12. Procédé selon la revendication 10, dans lequel l'étape (c) comprend les étapes consistant à: représenter approximativement chacune de la multiplicité de surfaces courbes partielles sous la forme d'un polygone au moins possédant une forme prédéterminée, et générer un micropolygone correspondant à un polygone au
moins représenté approximativement.
13. Procédé selon la revendication 12, dans lequel le polygone possédant la forme prédéterminée comprend l'un au moins d'un quadrilatère, d'un parallélogramme et d'un
triangle.
14. Procédé selon la revendication 10, dans lequel le micropolygone est défini par un point de base et par une multiplicité de vecteurs, et dans lequel l'étape (d) inclut l'étape consistant à sélectionner une attribution de zones du micropolygone à un pixel parmi une multiplicité d'attributions de zones qui sont préalablemnet définies sur la base de la position du point de base et de la
multiplicité de vecteurs.
15. Procédé selon la revendication 10, comprenant en outre l'étape consistant à diviser d'une manière répétée les micropolygones jusqu'à ce que la taille des micropolygones générés au cours de l'étape (c) deviennent égaux ou
inférieurs à une taille prescrite.
16. Procédé selon la revendication 10, dans lequel la surface courbe située dans l'espace tridimensionnel comporte une face avant et une face arrière, le procédé comprenant en outre l'étape consistant à déterminer un micropolygone qui ne soit pas restitué sur la base d'une information définissant une direction de la face avant de la surface courbe et une information définissant une direction d'un
vecteur perpendiculaire au micropolygone.
17. Procédé selon la revendication 10 comprenant en outre les étapes consistant à: modifier une séquence de génération de micropolygones d'une manière telle que les micropolygones soient générés suivant une direction prédéterminée par rapport à une profondeur de la grille bidimensionnelle, et modifier une séquence d'accès aux données de texture en fonction de la séquence de génération modifiée des
micropolygones.
18. Procédé selon la revendication 10, dans lequel le micropolygone est défini par un point de base et par une multiplicité de vecteurs et dans lequel chacun de la multiplicité de pixels est divisé en une multiplicité de sous-pixels, chacun de la multiplicité de sous- pixels comportant un point représentatif défini situé dans sa partie interne, et dans lequel l'étape (d) comprend les étapes consistant à: déterminer si le point représentatif du sous-pixel est ou non positionné à l'intérieur d'une région définie par le micropolygone en fonction d'une relation positionnelle relative entre le point représentatif du sous-pixel, le point de base et la multiplicité de vecteurs, compter le nombre de sous-pixels comportant des points représentatifs qui sont positionnés à l'intérieur de la région définie par le micropolygone sur la base du résultat de détermination, et calculer l'attribution de zones sur la base du nombre
compté de sous-pixels et des zones des sous-pixels.
19. Procédé selon la revendication 10, dans lequel la donnée de texture contient une valeur d'intensité, l'étape (f) incluant l'étape cf consistant à: calculer un produit de l'attribution de zones et de la valeur d'intensité de la donnée de texture, seulement lorsqu'une somme des attributions de zones au pixel est
inférieure à 1.
20. Procédé selon la revendication 10, dans lequel la donnée de texture contient une valeur d'intensité et un pouvoir couvrant, l'étape (f) comprenant l'étape consistant à: calculer un produit de l'attribution de zones, la valeur d'intensité de la donnée de texture et le pouvoir couvrant de la donnée de texture seulement lorsqu'une somme des
attributions de zones au pixel est inférieure à 1.
21. Procédé selon la revendication 10, dans lequel la donnée de texture contient une valeur d'intensité et un pouvoir couvrant, une attribution de pixels étant définie comme un produit de l'attribution de zones et du pouvoir recouvrant de la donnée de texture, l'étape (f) comprenant l'étape consistant à: calculer un produit de l'attribution de zones, de la valeur d'intensité de la donnée de texture et du pouvoir couvrant de la donnée de texture, seulement lorsqu'une somme
des attributions de pixels est inférieure à 1.
22. Procédé selon la revendication 10, dans lequel la donnée de texture contient une valeur d'intensité et un pouvoir couvrant, une attribution de pixels étant définie comme un produit de l'attribution de zones et du pouvoir couvrant de la donnée de texture, l'étape (f) comprenant l'étape consistant à: calculer un produit de l'attribution de zones, de la valeur d'intensité de la donnée de texture et du pouvoir couvrant de celle-ci, seulement lorsqu'une somme des attributions de zones au pixel est inférieure à 1 et lorsqu'une somme des attributions de pixels est inférieure à 1.
23. Dispositif utilisé pour la génération d'une image, comprenant: un moyen de transformation géométrique servant à transformer géométriquement une surface courbe définie dans un espace tridimensionnel en une surface courbe située dans une grille bidimensionnelle, un moyen de génération de micropolygone servant à diviser la surface courbe située dans la grille bidimensionnelle en une multiplicité de surfaces courbes partielles et à générer un micropolygone en concordance avec chacune de la multiplicité de surfaces courbes partielles, et un moyen de restitution servant à restituer le micropolygone.
24. Procédé utilisé pour générer une image, comprenant les étapes consistant à: (a) transformer géométriquement une surface courbe définie dans un espace tridimensionnel en une surface courbe située dans une grille bidimensionnelle, (b) diviser la surface courbe située dans la grille bidimensionnelle en une multiplicité de surfaces courbes partielles, (c) générer un micropolygone en concordance avec chacune de la multiplicité de surfaces courbes partielles, et
(d) restituer le micropolygone.
FR9415806A 1993-12-28 1994-12-28 Dispositif et procédé pour générer une image destinée à un traitement graphique d'ordinateur tridimensionnel. Expired - Fee Related FR2714505B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP34942693A JP3313221B2 (ja) 1993-12-28 1993-12-28 画像生成方法及び画像生成装置

Publications (2)

Publication Number Publication Date
FR2714505A1 true FR2714505A1 (fr) 1995-06-30
FR2714505B1 FR2714505B1 (fr) 1997-01-31

Family

ID=18403671

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9415806A Expired - Fee Related FR2714505B1 (fr) 1993-12-28 1994-12-28 Dispositif et procédé pour générer une image destinée à un traitement graphique d'ordinateur tridimensionnel.

Country Status (4)

Country Link
US (1) US5903273A (fr)
JP (1) JP3313221B2 (fr)
CA (1) CA2138841C (fr)
FR (1) FR2714505B1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001071668A2 (fr) * 2000-03-17 2001-09-27 Hewlett-Packard Company Appareil et procede destines au rendu d'objets 3d avec correspondances de structures parametriques

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3179392B2 (ja) * 1997-11-17 2001-06-25 日本電気アイシーマイコンシステム株式会社 画像処理装置及び画像処理方法
EP1026639A3 (fr) * 1999-02-04 2002-09-04 Canon Kabushiki Kaisha Appareil et procédé de traitement d'images tridimensionnelles
US6559853B1 (en) 2000-02-16 2003-05-06 Enroute, Inc. Environment map creation using texture projections with polygonal curved surfaces
US6515673B1 (en) 2000-02-16 2003-02-04 Enroute, Inc. Displaying immersive videos using tiled decompression
US7259760B1 (en) 2000-02-16 2007-08-21 Be Here Corporation Polygonal curvature mapping to increase texture efficiency
US6897858B1 (en) 2000-02-16 2005-05-24 Enroute, Inc. Partial image decompression of a tiled image
US6819333B1 (en) * 2000-05-12 2004-11-16 Silicon Graphics, Inc. System and method for displaying an image using display distortion correction
US7245299B2 (en) * 2003-05-12 2007-07-17 Adrian Sfarti Bicubic surface real-time tesselation unit
USRE42534E1 (en) 2000-07-28 2011-07-12 Adrian Sfarti Bicubic surface real-time tesselation unit
US6504537B1 (en) * 2000-09-05 2003-01-07 Nvidia Corporation System, method and article of manufacture for fractional tessellation during graphics processing
US7280108B2 (en) * 2000-12-11 2007-10-09 Adrian Sfarti Bicubic surface rendering
US7302111B2 (en) * 2001-09-12 2007-11-27 Micronic Laser Systems A.B. Graphics engine for high precision lithography
KR100440492B1 (ko) * 2002-03-18 2004-07-15 신종계 곡면을 평면으로 전개시키는 방법
US7199806B2 (en) * 2003-03-19 2007-04-03 Sun Microsystems, Inc. Rasterization of primitives using parallel edge units
US8471852B1 (en) * 2003-05-30 2013-06-25 Nvidia Corporation Method and system for tessellation of subdivision surfaces
JP2007528757A (ja) * 2003-10-29 2007-10-18 松下電器産業株式会社 ゲームシステム
JP4579914B2 (ja) 2003-10-29 2010-11-10 パナソニック株式会社 ゲームシステム、ゲーム実行装置及びメモリカード
CN100476879C (zh) * 2004-01-06 2009-04-08 Nxp股份有限公司 用于再现图形对象的方法
US7295204B2 (en) * 2004-12-14 2007-11-13 Adrian Sfarti Rapid zippering for real time tesselation of bicubic surfaces
US7760231B2 (en) * 2005-03-09 2010-07-20 Pixar Animated display calibration method and apparatus
KR100767278B1 (ko) * 2005-04-15 2007-10-17 충남대학교산학협력단 3차원 곡면의 2차원 평면으로의 패턴전개를 이용한맞춤의복의 디자인 방법
US8571346B2 (en) * 2005-10-26 2013-10-29 Nvidia Corporation Methods and devices for defective pixel detection
US7750956B2 (en) * 2005-11-09 2010-07-06 Nvidia Corporation Using a graphics processing unit to correct video and audio data
US8588542B1 (en) 2005-12-13 2013-11-19 Nvidia Corporation Configurable and compact pixel processing apparatus
US8737832B1 (en) 2006-02-10 2014-05-27 Nvidia Corporation Flicker band automated detection system and method
US8979753B2 (en) * 2006-05-31 2015-03-17 University Of Rochester Identifying risk of a medical event
US20080002880A1 (en) * 2006-06-30 2008-01-03 Intelisum, Inc. Systems and methods for fusing over-sampled image data with three-dimensional spatial data
US8594441B1 (en) 2006-09-12 2013-11-26 Nvidia Corporation Compressing image-based data using luminance
US8189006B1 (en) * 2006-09-28 2012-05-29 Pixar Caching attributes of surfaces without global parameterizations
US9007388B1 (en) 2006-09-28 2015-04-14 Pixar Caching attributes of surfaces without global parameterizations
KR100887466B1 (ko) 2006-10-12 2009-03-10 태광엠티씨 주식회사 금형 형상 설계를 위한 연속 원활한 수학 면의 생성 방법
US8723969B2 (en) * 2007-03-20 2014-05-13 Nvidia Corporation Compensating for undesirable camera shakes during video capture
US8724895B2 (en) * 2007-07-23 2014-05-13 Nvidia Corporation Techniques for reducing color artifacts in digital images
US8570634B2 (en) * 2007-10-11 2013-10-29 Nvidia Corporation Image processing of an incoming light field using a spatial light modulator
US9177368B2 (en) * 2007-12-17 2015-11-03 Nvidia Corporation Image distortion correction
US8780128B2 (en) * 2007-12-17 2014-07-15 Nvidia Corporation Contiguously packed data
US8698908B2 (en) * 2008-02-11 2014-04-15 Nvidia Corporation Efficient method for reducing noise and blur in a composite still image from a rolling shutter camera
US9379156B2 (en) * 2008-04-10 2016-06-28 Nvidia Corporation Per-channel image intensity correction
US8373718B2 (en) * 2008-12-10 2013-02-12 Nvidia Corporation Method and system for color enhancement with color volume adjustment and variable shift along luminance axis
US8749662B2 (en) 2009-04-16 2014-06-10 Nvidia Corporation System and method for lens shading image correction
JP5388707B2 (ja) * 2009-06-09 2014-01-15 キヤノン株式会社 描画処理装置及び描画処理方法
US8698918B2 (en) * 2009-10-27 2014-04-15 Nvidia Corporation Automatic white balancing for photography
US9401046B2 (en) * 2011-02-07 2016-07-26 Intel Corporation Micropolygon splatting
US9798698B2 (en) 2012-08-13 2017-10-24 Nvidia Corporation System and method for multi-color dilu preconditioner
US9508318B2 (en) 2012-09-13 2016-11-29 Nvidia Corporation Dynamic color profile management for electronic devices
US9307213B2 (en) 2012-11-05 2016-04-05 Nvidia Corporation Robust selection and weighting for gray patch automatic white balancing
US9756222B2 (en) 2013-06-26 2017-09-05 Nvidia Corporation Method and system for performing white balancing operations on captured images
US9826208B2 (en) 2013-06-26 2017-11-21 Nvidia Corporation Method and system for generating weights for use in white balancing an image
CN105654460A (zh) * 2014-12-03 2016-06-08 富泰华工业(深圳)有限公司 点云拼接***及方法
CN108924521A (zh) * 2018-05-31 2018-11-30 晨星半导体股份有限公司 投影***的梯形校正方法及设备

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2194656B (en) * 1986-09-03 1991-10-09 Ibm Method and system for solid modelling
US4855934A (en) * 1986-10-03 1989-08-08 Evans & Sutherland Computer Corporation System for texturing computer graphics images
US4935879A (en) * 1987-08-05 1990-06-19 Daikin Industries, Ltd. Texture mapping apparatus and method
US4901064A (en) * 1987-11-04 1990-02-13 Schlumberger Technologies, Inc. Normal vector shading for 3-D graphics display system
US5361386A (en) * 1987-12-04 1994-11-01 Evans & Sutherland Computer Corp. System for polygon interpolation using instantaneous values in a variable
GB8728836D0 (en) * 1987-12-10 1988-01-27 Quantel Ltd Electronic image processing
US4888583A (en) * 1988-03-14 1989-12-19 Ligocki Terry J Method and apparatus for rendering an image from data arranged in a constructive solid geometry format
US5107444A (en) * 1988-09-13 1992-04-21 Computer Design, Inc. Method and apparatus for flattening three-dimensional surfaces
US5448687A (en) * 1988-09-13 1995-09-05 Computer Design, Inc. Computer-assisted design system for flattening a three-dimensional surface and for wrapping a flat shape to a three-dimensional surface
GB8828342D0 (en) * 1988-12-05 1989-01-05 Rediffusion Simulation Ltd Image generator
US5058042A (en) * 1989-04-03 1991-10-15 Hewlett-Packard Company Method for employing a hierarchical display list in global rendering
US5255352A (en) * 1989-08-03 1993-10-19 Computer Design, Inc. Mapping of two-dimensional surface detail on three-dimensional surfaces
JP3092131B2 (ja) * 1989-12-28 2000-09-25 日本電気株式会社 画像生成装置
US5307450A (en) * 1991-02-19 1994-04-26 Silicon Graphics, Inc. Z-subdivision for improved texture mapping
US5299298A (en) * 1991-02-28 1994-03-29 Hewlett-Packard Company Accelerated shadow testing method for three dimensional graphics rendering system
JPH0528235A (ja) * 1991-07-20 1993-02-05 Fuji Xerox Co Ltd 色変換処理装置
JPH05108811A (ja) * 1991-10-04 1993-04-30 Nec Home Electron Ltd 3次元グラフイツクス画像データの符号化方法及び復号化方法
US5555356A (en) * 1992-10-29 1996-09-10 International Business Machines Corporation System and method for generating a trimmed parametric surface for display on a graphic display device
US5537224A (en) * 1992-11-24 1996-07-16 Sony Corporation Texture mapping image processing method and apparatus
JP3240447B2 (ja) * 1993-02-19 2001-12-17 株式会社リコー 画像処理装置
US5490240A (en) * 1993-07-09 1996-02-06 Silicon Graphics, Inc. System and method of generating interactive computer graphic images incorporating three dimensional textures

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ABI-EZZI ET SHIRMAN: "TESSELATION OF CURVED SURFACES UNDER HIGHLY VARYING TRANSFORMATIONS", EUROGRAPHICS '91, 2 September 1991 (1991-09-02) - 6 September 1991 (1991-09-06), AMSTERDAM, pages 385 - 387, XP000300282 *
BOUATOUCH ET AUTRES: "A VLSI CHIP FOR RAY TRACING BICUBIC PATCHES", EUROGRAPHICS '89, 4 September 1989 (1989-09-04) - 8 September 1989 (1989-09-08), AMSTERDAM, pages 107 - 124, XP000132220 *
SWEENY ET BARTELS: "RAY TRACING FREE-FORM B-SPLINE SURFACES", IEEE COMPUTER GRAPHICS AND APPLICATIONS, vol. 6, no. 2, NEW YORK US, pages 41 - 49, XP000002462 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001071668A2 (fr) * 2000-03-17 2001-09-27 Hewlett-Packard Company Appareil et procede destines au rendu d'objets 3d avec correspondances de structures parametriques
WO2001071668A3 (fr) * 2000-03-17 2002-01-03 Hewlett Packard Co Appareil et procede destines au rendu d'objets 3d avec correspondances de structures parametriques
US6515674B1 (en) 2000-03-17 2003-02-04 Hewlett-Packard Company Apparatus for and of rendering 3d objects with parametric texture maps

Also Published As

Publication number Publication date
FR2714505B1 (fr) 1997-01-31
JP3313221B2 (ja) 2002-08-12
CA2138841C (fr) 2000-03-21
US5903273A (en) 1999-05-11
CA2138841A1 (fr) 1995-06-29
JPH07200867A (ja) 1995-08-04

Similar Documents

Publication Publication Date Title
FR2714505A1 (fr) Dispositif et procédé pour générer une image destinée à un traitement graphique d&#39;ordinateur tridimensionnel.
EP1982310B1 (fr) Procede de synthese d&#39;une image virtuelle par lancer de faisceaux
Battiato et al. Digital mosaic frameworks‐An overview
AU742444B2 (en) System and method for modification of the visual characteristics of digital 3D objects
FR2714504A1 (fr) Procédé de production d&#39;un masque de sous-pixel pour système infographique et appareil pour sa mise en Óoeuvre.
WO2001099052A1 (fr) Raffinement d&#39;un maillage triangulaire en trois dimensions
FR2999005A1 (fr) Procede de rendu d&#39;un terrain stocke dans une base de donnees massive
EP2705436A2 (fr) Emploi de fichiers de maillage pour animer des transitions dans applications client
EP0667595A1 (fr) Procédé de génération d&#39;images texturées et d&#39;effets spéciaux en vidéo et dispositif pour la mise en oeuvre du procédé
FR2771201A1 (fr) Mappage de texture anisotrope utilisant l&#39;analyse de silhouette ou d&#39;empreinte dans un systeme informatique de generation d&#39;images
CN112102467B (zh) 一种基于gpu的并行八叉树生成、装置及电子设备
EP1866870B1 (fr) Rendu de graphiques informatiques en 3d au moyen de capacites graphiques informatiques en 2d
WO1996010805A1 (fr) Procede de generation d&#39;images de synthese par tampon spherique
Liu et al. Generating classic mosaics with graph cuts
US10825244B1 (en) Automated LOD construction for point cloud
Dong et al. Fast shadow casting algorithm in analytical polygon-based computer-generated holography
Qin et al. Precise vector textures for real-time 3D rendering
Larsson et al. Strategies for bounding volume hierarchy updates for ray tracing of deformable models
Battiato et al. Artificial mosaic generation with gradient vector flow and tile cutting
Hanika et al. Camera space volumetric shadows
CN115115767A (zh) 一种场景渲染方法、装置、电子设备及存储介质
FR2974927A1 (fr) Optimisation de donnees pour modelisation tridimensionnelle
Dam et al. Terrain generation based on real world locations for military training and simulation
US8952977B2 (en) Pseudo-random interval arithmetic sampling techniques in computer graphics
WO2012004537A1 (fr) Dispositif de synthese d&#39;image

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20140829