[go: up one dir, main page]

FR2698983A1 - Procédé et appareil de recyclage d'un tampon vidéo. - Google Patents

Procédé et appareil de recyclage d'un tampon vidéo. Download PDF

Info

Publication number
FR2698983A1
FR2698983A1 FR9314594A FR9314594A FR2698983A1 FR 2698983 A1 FR2698983 A1 FR 2698983A1 FR 9314594 A FR9314594 A FR 9314594A FR 9314594 A FR9314594 A FR 9314594A FR 2698983 A1 FR2698983 A1 FR 2698983A1
Authority
FR
France
Prior art keywords
buffer
frame
rendering
sequence number
value
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
FR9314594A
Other languages
English (en)
Other versions
FR2698983B1 (fr
Inventor
Martin Kevin
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.)
Network Computing Devices Inc
Original Assignee
Network Computing Devices Inc
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 Network Computing Devices Inc filed Critical Network Computing Devices Inc
Publication of FR2698983A1 publication Critical patent/FR2698983A1/fr
Application granted granted Critical
Publication of FR2698983B1 publication Critical patent/FR2698983B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/393Arrangements for updating the contents of the bit-mapped memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal
    • G06T15/405Hidden part removal using Z-buffer

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)
  • Digital Computer Display Output (AREA)

Abstract

L'invention concerne un procédé pour effectuer un rendu d'images tridimensionnelles sur un sous-système vidéo qui ne met pas jeu la remise à zéro du tampon Z lors de chaque trame, consiste à établir un tampon Z et un numéro de séquence en mémoire, le numéro de séquence étant incrémenté lors de chaque trame successive rendue et le tampon Z étant remis à zéro lorsque le numéro de séquence atteint une valeur prédéterminée. Le tampon Z est ainsi recyclé un certain nombre de fois entre les remises à zéro. Suivant une opération plus élaborée appelée planification, la précision du tampon Z est ajustée pour faire en sorte que la remise à zéro du tampon Z se produise soit du fait que le numéro de séquence a atteint une valeur prédéterminée, soit du fait de l'augmentation d'un temps prédéterminé alloué à la remise à zéro.

Description

La présente invention concerne d'une manière générale des dispositifs
d'affichage vidéo et plus précisément, des
dispositifs d'affichage vidéo capables de conférer un rendu à des images graphiques.
Les dispositifs d' affichage vidéo pour utilisation avec des ordinateurs sont bien connus depuis plusieurs décennies.
Le dispositif d'affichage vidéo le plus courant est constitué d'un tube à rayons cathodiques monochrome et d'une électroni- que associée capable uniquement d'afficher des caractères10 ASCII sous forme de texte.
Plus récemment, on a introduit des dispositifs d'affi-
chage vidéo qui ont la capacité d'afficher des images graphiques Dans une mise en oeuvre type d'un affichage de ce type, les attributs (couleur, intensité, etc) de chaque pixel affiché à l'écran sont conservés dans un tampon image. Un tampon image est simplement une matrice mémoire ayant une capacité de stockage suffisante pour stocker les informations appropriées concernant au moins chaque pixel affiché à l'écran Un grand nombre de tampons images peuvent stocker20 une quantité d'informations beaucoup plus importante que
celle affichée à l'écran.
Les dispositifs d'affichage vidéo d'images tri-
dimensionnelles mettent généralement en jeu la construction d'un modèle filaire de l'objet en cours de création, et de nombreux dispositifs d'affichage graphiques affichent simplement la totalité du modèle filaire Plus récemment, des dispositifs d'affichage et des logiciels associés ont été introduits et sont capables d'un rendu à l'écran d'images tridimensionnelles pleines, d'une manière approchant étroite- ment la vue d'un objet réel Les techniques de rendu d'un5 objet mettent généralement en jeu l'élimination de surfaces "cachées" ou de surfaces qui seraient cachées si l'on observait un objet réel, de façon que les seules surfaces visibles sur l'affichage soient celles qui seraient vues par une personne observant l'objet réel A titre d'exemple, lors de l'observation d'un cube de dessus et vers sa droite, trois faces sont visibles et trois faces sont cachées Bien qu'une représentation sur ordinateur du cube comprenne une quantité suffisante d'informations pour afficher la totalité des six
faces (de telle manière qu'une structure filaire représente-
rait la totalité des arêtes), un rendu en volume de cet objet à l'écran ne conduit qu'à l'affichage des trois faces que
l'observateur verrait normalement.
Des rendus d'images tridimensionnelles sont générale- ment créés par utilisation d'un tampon Z qui est une matrice mémoire bidimensionnelle assez semblable au tampon image La fonction du tampon Z est de stocker la distance de chaque pixel vers l'avant d'un point de référence Les pixels ayant les valeurs Z les plus grandes sont censés être à l'avant de pixels ayant des valeurs Z plus faibles, de sorte que le processus de création d'un rendu met en jeu le traitement conceptuellement simple consistant à calculer la valeur Z de chaque pixel pour un objet donné et, lorsque les objets ou les faces d'objet se chevauchent, à retenir les pixels ayant la valeur Z la plus grande (c'est-à-dire la plus proche de l'observateur) En ce qui concerne 1 'affichage du cube mentionné précédemment, les faces cachées auraient des valeurs stockées dans le tampon Z inférieures à celles des
faces observables.
L'incorporation d'un tampon Z dans le traitement d'affichage d'une image pour une trame d'information vidéo conduit à trois étapes fondamentales: ( 1) l'initialisation du tampon Z à la valeur Z minimale; ( 2) l'initialisation du tampon image à la couleur d'arrière-plan; et ( 3) le rendu de
tous les objets.
Bien que le traitement de calcul des valeurs Z pour un écran de pixels soit conceptuellement simple, la nécessité d'effectuer ces calculs rapidement peut conduire à des
difficultés notables Une mesure fondamentale de la perfor-
mance d'un dispositif d'affichage vidéo capable de produire des rendus tridimensionnels est le nombre de trames par seconde sur lesquelles il peut effectuer un rendu Au moins
dix trames par seconde sont nécessaires pour donner l'illu-
sion d'un mouvement, étant entendu que les fréquences de
trame les plus élevées améliorent notablement la représenta-
tion du mouvement Pour des images simples affichées sur des systèmes classiques, lorsque le tampon image et le tampon Z sont tous deux mis à zéro au début de chaque trame, le facteur principal permettant de déterminer la fréquence des trames est le temps demandé pour mettre à zéro les tampons image et Z. Il est donc nécessaire de disposer d'un procédé et d'un dispositif qui réduisent sensiblement la nécessité de mettre
à zéro simultanément les tampons image et Z dans le traite-
ment de rendu d'images tridimensionnelles sur des écrans
d'affichage vidéo.
La présente invention surmonte un grand nombre des limitations de l'art antérieur en proposant un premier mode de réalisation d'un procédé et d'un appareil au moyen desquels il est possible d'effectuer un rendu d'un objet tridimensionnel sur un affichage vidéo sans mettre à zéro le tampon Z au début de chaque trame Dans un autre mode de réalisation, on propose un procédé et un appareil au moyen
desquels il devient inutile de mettre à zéro le tampon image au début de chaque trame Les deux modes de réalisation peuvent être combinés pour conduire à un procédé et un35 appareil permettant d'effectuer le rendu d'images tridimen-
sionnelles sur un affichage vidéo dans lequel le tampon image et le tampon Z ne doivent ni l'un ni l'autre être mis à zéro au début de chaque trame. Dans un mode de réalisation type, les tampons doivent seulement être mis à zéro une fois toutes les seize trames, ce qui permet une augmentation de la fréquence des trames d'un facteur pratiquement égal à seize. La présente invention, dans son acception la plus simple, peut être considérée comme ajoutant un numéro de séquence aux bits de données utilisés pour les données de pixels, que ce soit dans le tampon Z ou dans le tampon image ou dans les deux Pour plus de commodité, le procédé de la présente invention sera résumé ici à propos du seul tampon Z, bien qu'une méthode analogue puisse être utilisée pour le
recyclage du tampon image.
En utilisant l'exemple du tampon Z, on élabore le numéro de séquence sous la forme d'un ou plusieurs bits concaténés aux bits de poids numériquement le plus fort de la valeur Z A titre d'exemple, dans une réalisation en entier de la présente invention, un tampon Z peut comporter 24 bits pour la valeur Z et huit bits pour le numéro de séquence, soit un total de 32 bits D'autres tailles de numéros de séquence et de valeur Z peuvent être envisagées dans diverses applications. Lors de la mise en oeuvre du procédé, le tampon Z est tout d'abord mis à zéro La mise à zéro du tampon Z consiste à mettre à zéro la partie contenant le numéro de séquence ainsi que la partie classique contenant les données du tampon Z Les objets se trouvant dans la première trame sont ensuite soumis à un rendu de la manière classique, par utilisation complète des algorithmes classiques d'élimination des surfaces cachées du tampon Z Une fois le rendu de la première trame achevé, les valeurs Z contenues dans le tampon Z peuvent fortement varier d'un pixel à l'autre Cependant, le numéro de séquence restera nul pour chaque pixel de cette trame Il apparaîtra à l'homme de l'art que, pour un tampon Z de 24 bits, les valeurs Z de chaque pixel sont comprises entre O et 224 _ 1, c'est-à-dire que si un "interstice" entre trames est prévu, d'une taille fixée à Zgap, les valeurs Z de chaque pixel sont alors comprises entre O et 224 Zgap. Lors d'une utilisation de la manière classique, le tampon Z serait de nouveau mis à zéro avant le début de la
seconde trame Cependant, dans le cas de la présente inven-
tion, le rendu de la seconde trame commence par initialisa-
tion du numéro de séquence à 1 Lorsque l'on considère cette opération en association avec la partie correspondant au tampon Z, cela revient à fixer la valeur Z minimale de la seconde trame à 224 Les valeurs Z correspondant à la seconde trame sont alors comprises entre 224 et l 224 + 224 _ 1 l, de sorte que chaque pixel de la seconde trame a une combinaison valeur Z/numéro de séquence supérieure à la valeur Z maximale des pixels de la première trame Ici encore, si l'on prévoit un interstice entre trames d'une valeur égale à Zgap, la valeur Z maximale pour la seconde trame devient égale à l 224 + 224 _ Zgapl D'un point de vue conceptuel, le rendu de la seconde trame est visualisée "devant" la première trame étant donné que les valeurs Z croissantes apparaissent au rendu comme
étant "plus proches" de l'écran.
Chaque trame suivante commence par une incrémentation du numéro de séquence, de sorte que chaque trame successive produit un rendu situé à l'avant des trames précédentes Il n'est donc pas nécessaire de mettre à zéro le tampon Z tant que le numéro de séquence maximum n'a pas été atteint Pour un numéro de séquence à huit bits, le tampon Z ne doit être mis à zéro que toutes les 256 trames Cela représente une augmentation spectaculaire des performances mesurées en nombre de trames par seconde pouvant être rendues par un
contrôleur vidéo.
L'addition du numéro de séquence aux valeurs Z peut être effectuée par une série d'étapes, comme dans le mode de réalisation préféré ici et décrit ci-après, ou peut être effectuée par modification de la matrice de transformation finale du pipeline de rendu 3 D. La présente invention peut également être mise en oeuvre par utilisation d'une valeur en virgule flottante pour le tampon Z au lieu d'une valeur entière Dans une réalisation de ce type, on n'attribue pas un nombre particulier de5 bits au numéro de séquence On ajoute au contraire une valeur en virgule flottante à chaque trame successive, la valeur en
virgule flottante étant suffisamment grande pour faire en sorte que chaque trame successive soit rendue à l'avant de chaque trame précédente Le procédé et l'appareil restent par10 ailleurs pratiquement identiques à ceux du mode de réalisa- tion en entier.
Selon un autre aspect de l'invention, qui n'est pas exigé par tous les modes de réalisation, on propose une technique permettant de trouver un compromis entre le souhait de mettre à zéro le tampon Z et le souhait d'augmenter la précision du tampon Z Notamment, si l'on utilise une taille de tampon de 32 bits pour la combinaison de la valeur Z et du numéro de séquence, il n'est pas nécessaire dans tous les cas de fixer le tampon Z à une taille de 24 bits, par exemple, et le numéro de séquence à huit bits Par contre, il est possible, en gérant soigneusement le rendu de chaque trame et le nombre de combinaisons de numéros de séquence restantes pour le rendu des trames suivantes, de faire varier le nombre de bits utilisés pour la valeur Z et le nombre complémentaire de bits utilisés pour le numéro de séquence En déterminant une variable dans le but d'évaluer si une remise à zéro du tampon Z est nécessaire, puis en faisant varier la valeur de la variable pour permettre un ajustement de la précision du tampon Z et du nombre de trames pouvant être rendues avant de remettre à zéro le tampon Z, on peut obtenir un procédé permettant de planifier l'étape de mise à zéro en trouvant un compromis entre l'obtention de périodes plus longues entre les remises à zéro du tampon Z et une augmentation de la
précision en Z Cette planification peut avoir des applica-
tions plus générales et peut être utilisée pour traiter un grand nombre des tâches de gestion effectuées dans un système
à base d'un processeur.
L'une des caractéristiques de la présente invention est que le procédé de recyclage ne nécessite pas de modification de bits déjà écrits dans le tampon Z.5 Comme indiqué ci-dessus, un procédé de recyclage du même type peut être appliqué au tampon image Cette méthode conduit également à une amélioration des performances Comme pour le tampon Z, le tampon image est étendu pour inclure un numéro d'identification de carte couleur, et un numéro10 d'identification de carte couleur arbitraire est assigné à la trame initiale A chaque trame suivante est assigné un numéro d'identification de carte couleur différent, jusqu'à la limite imposée par le nombre de bits disponibles ou d'autres aspects imposés par le matériel Pour chaque trame, la carte couleur associée à cette trame est initialisée de façon que les pixels n'ayant pas le numéro d'identification de carte couleur courant soient mis en correspondance avec la couleur de l'arrière-plan de cette trame La technique du recyclage du tampon Z peut être combinée à la technique du recyclage du tampon image pour améliorer sensiblement la vitesse de traitement du sous-système vidéo d'un ordinateur personnel, d'une station de travail ou d'un terminal graphique Comme dans le cas du recyclage du tampon Z, le procédé de recyclage du tampon image de la présente invention ne nécessite pas de
modification de bits déjà écrits dans le tampon image.
Le procédé de la présente invention peut être mis en oeuvre soit en virgule flottante, soit en entier, bien que les réalisations en entier soient actuellement généralement préférées. La présente invention a donc pour but de fournir un procédé et un appareil permettant d'accroître notablement le nombre de trames par seconde auxquelles un rendu peut être
appliqué par un sous-système vidéo.
Un autre but de l'invention est de fournir un procédé pour éviter la remise à zéro du tampon Z dans un sous-système vidéo tout en permettant le rendu de trames multiples
d'informations vidéo.
Un autre but de la présente invention est de fournir un procédé pour éviter la remise à zéro du tampon image tout en
permettant l'affichage de trames d'informations vidéo5 multiples.
Un but supplémentaire de la présente invention est de fournir un procédé pour réguler la remise à zéro du tampon Z de façon qu'un équilibre soit conservé entre la remise à zéro du tampon Z et la résolution du tampon Z. Un autre but de la présente invention est de fournir un procédé de recyclage d'un tampon vidéo n'exigeant pas de modification de bits déjà écrits dans ce tampon pour indiquer que le tampon a été recyclé. Ces buts de la présente invention, ainsi que d'autres,
ressortiront plus clairement de la description détaillée ci-
après de l'invention, faite en référence aux dessins annexés sur lesquels: la figure 1 représente sous forme d'organigramme un synoptique du traitement de rendu tridimensionnel destiné à un dispositif d'affichage vidéo; la figure 2 est un schéma fonctionnel du sous-système vidéo de la présente invention; les figures 3 A-3 C représentent une forme simplifiée et plus générale de la présente invention, qui n'utilise qu'une réalisation en entier du recyclage du tampon Z. Plus précisément, la figure 3 A représente sous la forme d'un organigramme les étapes permettant d'initialiser le tampon Z, dans le cas du recyclage du tampon Z effectué
conformément à la présente invention, mais sans planifica-
tion; la figure 3 B représente sous la forme d'un organigramme les étapes permettant d'initialiser le tampon image, seul un recyclage du tampon Z étant utilisé et sans planification; la figure 3 C représente sous la forme d'un organigramme les étapes permettant d'effectuer un rendu d'objets par utilisation des étapes de traitement représentées dans les figures 3 A et 3 B; les figures 4 A-4 D représentent une réalisation plus robuste de la présente invention dans laquelle on a effectué un recyclage du tampon Z avec planification, en association avec un recyclage du tampon image. Plus précisément, la figure 4 A représente sous la forme d'un organigramme les étapes permettant d'initialiser le tampon Z lorsqu'un recyclage et une planification sont utilisés simultanément; la figure 4 B représente sous la forme d'un organigramme les étapes permettant d'initialiser le tampon image lorsque le recyclage du tampon image est combiné aux étapes de traitement de la figure 4 A; la figure 4 C représente sous la forme d'un organigramme les étapes permettant d'effectuer un rendu d'objets par utilisation des procédés des figures 4 A et 4 B; et la figure 4 D représente les étapes finales du traite- ment des figures 4 A-4 C; et
la figure 5 représente sous la forme d'un organi-
gramme les étapes utilisées dans le cas d'une réalisation en virgule flottante pour initialiser le tampon Z avec recyclage
et planification.
Dans la figure 1, on a représenté un montage général et
simplifié permettant de mettre en oeuvre les étapes fondamen-
tales du rendu tridimensionnel d'une image vidéo sur un affichage bidimensionnel Le traitement commence à l'étape 12, qui est suivie d'une initialisation du tampon Z à l'étape 16, d'une initialisation du tampon image à l'étape 20, et d'un rendu des objets à l'étape 24, le traitement s'achevant ensuite à l'étape 28 Bien que ces étapes simplifiées puissent s'appliquer aussi bien à l'art antérieur qu'à la présente invention, les autres figures ne reflètent que la
présente invention.
En se référant ensuite à la figure 2, on pourra mieux appréhender un exemple de système 200 permettant de mettre en oeuvre la présente invention Cet exemple de dispositif peut par exemple être un terminal XWindows NCD modèle 19-C, bien que de nombreux autres dispositifs soient capables de mettre en oeuvre et de bénéficier de la présente invention Une unité centrale (CPU) 202 telle qu'un Motorola 88100 com-5 munique par l'intermédiaire d'une interface mémoire 204 avec une matrice de mémoire vive volatile (VRAM) 206 et une matrice de mémoire vive dynamique DRAM 208 La matrice VRAM fournit des signaux à une logique de carte couleur 210 qui fournit elle-même une sortie vidéo à un moniteur 212 Bien10 que la matrice de mémoire VRAM 206 soit souvent réalisée sous
la forme d'une mémoire vive vidéo, dans certaines réalisa-
tions matérielles, une mémoire vive dynamique classique est suffisante pour que, telle qu'elle est utilisée ci-après, la mémoire vidéo puisse être adaptée à tous les modes de réalisation, qu'il s'agisse d'une RAM vidéo, d'une DRAM, ou d'autres formes de mémoire La logique de carte couleur du
mode de réalisation préféré ici est constituée d'un disposi-
tif RAMDAC de type Brooktree Bt 463, bien que d'autres dispositifs soient envisageables selon le degré de mise en oeuvre de la présente invention, comme décrit ci-après plus
en détail.
En outre, la CPU 202 communique avec une interface E/S 214 qui communique elle-même avec un clavier classique 216,
un haut-parleur 218 et un contrôleur RS-232 220 Le contrô-
leur RS-232 220 communique également avec une mémoire vive non volatile (NVRAM) 222 et tout autre dispositif RS-232
auxiliaire classique 226.
La CPU 202, l'interface mémoire 204, la matrice VRAM 206, la matrice DRAM 208, la logique de carte couleur (comprenant par exemple un RAMDAC) 210, l'interface E/S 214, le haut-parleur 218, le contrôleur RS- 232 220 et la NVRAM 222 peuvent tous être intégrés sur une carte logique unique, bien que cette intégration ne soit pas nécessaire dans tous les cas De plus, le système 200 peut être connecté à un réseau, auquel cas une configuration type, également représentée dans la figure 2, peut comporter une carte d'interface réseau le globalement désignée en 230, et peut comprendre un contrôleur de réseau 232 et une mémoire morte programmable effaçable (EPROM) 234, communiquant tous avec l'interface E/S 214 La carte réseau 230 est généralement connectée au reste du réseau au moyen d'un câble de raccordement au réseau 236 s'étendant entre le contrôleur de réseau 232 et un autre noeud du réseau Dans certains cas, les fonctions remplies par la carte d'interface réseau 230 seront intégrées à la carte sur laquelle se trouve le processeur, de telle façon
que l'affectation d'une fonction particulière à une carte particulière ne soit pas déterminante.
Si l'on se réfère ensuite aux figures 3 A-3 C, celles-ci permettent de mieux apprécier une forme généralisée de la présente invention Plus précisément, le procédé illustré15 dans les figures 3 A-3 C est le recyclage d'un tampon Z, mais ne comprend ni la planification du tampon Z, ni le recyclage du tampon image Ces caractéristiques seront décrites de façon plus détaillée à propos des figures 4 A-4 D Si l'on se réfère plus particulièrement à la figure 3 A, les étapes permettant d'initialiser le tampon Z conformément à la
présente invention y sont représentées de façon plus détail-
lée Ces étapes atteignent le but général de l'étape 16 de la figure 1, qui est d'initialiser le tampon Z. Le traitement commence à l'étape 100, qui est suivi à l'étape 102, par le fait qu'on détermine s'il est nécessaire d'allouer un nouveau tampon Z Dans l'affirmative, à l'étape 104, un tampon Z est alloué en mémoire En rapport avec l'allocation du tampon Z, à l'étape 106, diverses variables sont initialisées à certaines valeurs initiales La variable Z Bits est notamment initialisée à Init Z Bits; c'est-à-dire que le nombre de bits du tampon Z (qui définit la précision du tampon Z) est fixé à une valeur initiale, généralement à un nombre entier compris entre 24 et 32 La variable Zbase est fixée à une valeur égale à -2 A Init Z Bits et représente la distance vers l'avant par rapport à l'origine d'un point particulier Enfin, la variable Z Scale est fixée à 2 AZ Bits-Z Gap, o Z Scale représente un facteur de conversion permettant de convertir les valeurs Z (qui sont généralement sous forme flottante à ce stade du traitement) en valeurs
entières, et Z Gap est une variable affectée de façon arbi-
traire représentant un interstice entre des trames successi- ves Comme noté précédemment, dans certains cas, cet inter- stice n'est pas utilisé et Z Gap est fixé à 1. Après affectation des variables à l'étape 106, et si le contrôle effectué à l'étape 102 permet de déterminer qu'un tampon Z a déjà été alloué, la variable Z Base est fixée à la valeur précédente de Z Base et 2 AZ Bits, à l'étape 108 Un contrôle est alors effectué à l'étape 110 pour déterminer si la valeur de Z Base est nulle ou supérieure à zéro Si la valeur de Z Base est nulle, le tampon Z est remis à zéro de la15 manière classique On peut remarquer que Z Base sera égal à zéro au cours de la première allocation du tampon Z, les valeurs initiales de Z Bits et de Z Base étant fixées En outre, comme cela apparaîtra ci-après, Z Base sera également nul la prochaine fois que Z Base sera incrémenté après que
tous les bits de poids fort auront atteint une valeur de 1.
Cependant, si la valeur des bits de poids fort de Z Base (c'est-à-dire des bits affectés pour désigner le numéro de séquence) est supérieure à zéro, le tampon Z est recyclé à
l'étape 114 et n'est pas remis à zéro de la manière classi-
que Le recyclage s'effectue en incrémentant le numéro de séquence et en continuant sans remettre à zéro le tampon Z, puis en poursuivant simplement le traitement de rendu de la trame suivante Il est apparu souhaitable d'autoriser un recyclage suffisant mais de manière que le recyclage occupe
deux pourcent ou moins du temps de rendu total.
On notera qu'il n'est pas nécessaire d'utiliser de numéros de séquence stockés dans des bits du mot et distincts des valeurs Z Une alternative tout aussi intéressante consiste à choisir un incrément pour Z Base qui ne soit pas une puissance de deux Conformément à cette alternative, la variable Z Bits est remplacée par une nouvelle variable Z Increment, Z Scale est initialisé à Z Increment moins Z Gap à l'étape 106, Z Base est incrémenté de Z Increment à l'étape 108 et le test effectué à l'étape 110 vérifie s'il s'est produit un dépassement de capacité plutôt qu'une valeur nulle Une autre alternative consiste à utiliser une valeur mesurée et non fixe de Z Increment La valeur mesurée de Z Increment peut par exemple être égale à la valeur Z maximale dont un rendu a été effectué lors de la trame précédente, moins la valeur de Z Base de la trame précédente Toutes ces alternatives10 permettent d'atteindre le but essentiel consistant à produire un rendu d'objets appartenant à chaque trame successive à l'avant de tous les objets des trames précédentes. Une fois qu'il a été déterminé si le tampon Z devait ou non être remis à zéro, le tampon image est mis à zéro à l'étape 116, dans la figure 3 B, puis le traitement de rendu des objets commence dans la figure 3 C par évaluation, en premier lieu, des valeurs Z des sommets des divers objets
devant être rendus A l'étape 118, un pointeur est réinitia-
lisé sur une liste d'objets devant être mis à l'échelle et translatés (ce que l'on désigne parfois sous le nom de "conversion Z") On effectue ensuite un contrôle à l'étape en parcourant une liste d'objets pour déterminer s'il reste d'autres objets à mettre à l'échelle et à translater, en tant que partie du traitement de rendu Les spécialistes apprécieront le fait que les objets sont généralement définis par leurs sommets Si un objet a été trouvé à l'étape 120, un contrôle est alors effectué à l'étape 122, par analyse d'une liste de sommets, pour déterminer s'il existe des sommets correspondant à l'objet courant qui n'ont pas encore été30 soumis à une conversion Z Dans l'affirmative, un premier sommet de l'objet est traité par détermination de la valeur Z de ce sommet S'il existe davantage de sommets, la valeur de Z est fixée à Z*Z Scale + Z Base, à l'étape 124, ce qui a pour effet de placer le sommet courant à sa valeur appropriée en plus d'un décalage égal à Z Base, indiquant la trame particulière dans laquelle les sommets sont en cours de traitement. Les étapes 118 à 124, qui ne sont pas exécutées dans le cas d'un rendu classique, assurent fondamentalement un traitement par lequel les valeurs Z des objets dont on doit effectuer un rendu peuvent être calculées indépendamment de
l'opération graphique requise Il ressort de la description
des étapes 128 à 138 fournie ci-dessous que les fonctions remplies par les étapes 118 à 124 auraient pu être intégrées aux étapes 128 à 138, bien que certaines modifications
dussent être apportées à ces étapes Cependant, pour facili-
ter la gestion du logiciel et pour simplifier cette descrip-
tion, ces deux traitements ont été décrits séparément.
Au bout d'un certain temps, tous les sommets d'un objet particulier auront été soumis à une conversion Z, et le contrôle effectué à l'étape 122 aura abouti à un "non" A ce stade, le procédé reboucle vers l'étape 120 pour déterminer s'il reste d'autres objets à soumettre à une conversion Z. Dans l'affirmative, les étapes 122 et 124 sont répétées pour le nouvel objet Dans le cas contraire, le contrôle de l'étape 120 donne un "non" et le traitement se poursuit par une réinitialisation à l'étape 126 du même pointeur que celui traité précédemment à l'étape 118 Il est à noter que les étapes 120 à 124 n'agissent que sur les valeurs Z des objets et sur leurs sommets En commençant par l'étape 126, le
traitement plus classique des valeurs X, Y et Z peut commen-
cer. Après réinitialisation du pointeur à l'étape 126, un contrôle est effectué à l'étape 128 pour déterminer s'il reste des objetssupplémentaires à soumettre à un rendu Dans
l'affirmative, les objets sont traités de la manière clas-
sique et un contrôle est ensuite effectué à l'étape 130 pour déterminer s'il reste davantage de pixels à traiter Dans
l'affirmative, les pixels sont traités de la manière clas-
sique selon l'opération requise En général, les sommets associés à ces pixels sont réduits à leur position et leur couleur, et le traitement se poursuit à l'étape 132 en initialisant la valeur z du tampon, c'est-àdire bz, à la valeur de Z Bufferlx,yl En outre, à l'étape 134, la valeur de
z est fixée à la valeur z de l'objet en x,y.
Un contrôle est ensuite effectué à l'étape 136 pour déterminer si la valeur de z est supérieure ou égale à la valeur de bz Dans l'affirmative, la valeur de Z Buffer en lx,yl est fixée à z, et la valeur de Image Buffer en lx,yl, est fixée à la valeur du pixel. D'un point de vue conceptuel, les étapes 126 à 138 tiennent simplement compte du fait que le point particulier sur l'écran bidimensionnel ou que le pixel, associé à l'objet en cours de rendu, se trouve à l'avant ou à l'arrière d'un pixel rendu précédemment, et est associé à un objet précédent ou à une face précédente de l'objet courant S'il se trouve à l'avant, le pixel associé à l'objet courant est affiché par attribution à ce pixel de la couleur associée S'il se trouve à l'arrière, le pixel est laissé inchangé La valeur du tampon Z est fixée à la plus grande de la valeur z courante
et de la valeur z antérieure.
Le traitement se poursuit par rebouclage de l'étape 138 à l'étape 130 jusqu'à ce qu'il ne reste plus de pixels à traiter, puis le traitement repasse à l'étape 128 jusqu'à ce que tous les objets et tous les pixels associés à ces objets aient été traités ou soumis à un rendu Lorsque le rendu de cette trame est achevé, le traitement est terminé, comme indiqué à l'étape 140, et le rendu de la trame suivante peut commencer, par un retour à l'étape 100 de la figure 3 A. Comme le tampon Z a déjà été alloué, la valeur de Z Base est incrémentée, c'est-à-dire que le numéro de séquence est incrémenté Si l'on suppose qu'il s'agit de la seconde trame et que les bits de poids fort de Z Base ne sont pas tous encore à un, la valeur de Z Base à l'étape 110 est supérieure à zéro Cela signifie que le tampon Z ne sera pas remis à zéro pour cette trame et que tous les objets associés à cette trame seront considérés comme ayant des valeurs Z supérieures à la valeur Z la plus grande de la trame précédente Il en résulte que chaque objet de la présente trame sera rendu à l'avant de l'objet de la trame précédente ayant la valeur Z
la plus grande.
La description de l'exemple du mode de réalisation qui
précède, lorsqu'elle est appliquée rigoureusement, met en jeu le traitement ordonné de chaque objet, jusqu'à ce que tous les objets aient été rendus Cependant, dans au moins certains cas, il est souhaitable de ne sélectionner qu'un sous-ensemble du nombre total d'objets, en suivant les étapes décrites dans la figure 3 C Un second groupe d'objets est ensuite sélectionné et exploité, et ainsi de suite,
jusqu'à ce que tous les objets soient traités Par consé-
quent, les étapes de la figure 3 C peuvent être répétées plusieurs fois au cours du traitement de rendu d'une même image Conformément à cette approche, les objets peuvent être traités en conformité avec un nombre quelconque de techniques hiérarchiques Cependant, ces techniques plus complexes ne sont pas décrites en détail pour plus de clarté, bien
qu'elles entrent dans le cadre de la présente invention.
L'exemple du mode de réalisation précité suppose en outre qu'une méthode classique remette à zéro la totalité du tampon Z Par conséquent, l'exemple du mode de réalisation décrit ci-dessus effectue un rendu de chaque trame successive située à l'avant de la totalité de la trame précédente Dans
de rares situations se présentant dans l'environnement X-
Windows, seule une remise à zéro partielle du tampon Z est effectuée conformément à la méthodologie classique Il en résulte que dans ces rares cas, le recyclage approprié du tampon Z est limité au seul recyclage de la zone pour laquelle une remise à zéro partielle pourrait s'effectuer Ce recyclage partiel peut être effectué avec le procédé de la
présente invention, mais comme il est très rarement nécessai-
re, la description détaillée de ses caractéristiques sort du
cadre de la présente invention.
Dans certains cas, il est souhaitable de trouver un compromis entre une augmentation de la précision et une
augmentation du nombre de recyclages entre remises à zéro.
Cette approche (désignée ci-après sous le nom de planifica-
tion), bien que plus complexe que l'approche représentée dans les figures 3 A-3 C, permet une évaluation à la volée de la précision en Z requise par chaque trame, et ajuste en conséquence le recyclage Si les images soumises au rendu sont simples, on utilise une moindre précision en Z, ce qui permet davantage de recyclages, et une augmentation de la puissance de traitement Inversement, si les images soumises au rendu sont complexes, on utilise une plus grande précision en Z (sous la forme de bits supplémentaires pour définir chaque valeur Z) et le nombre de trames rendues entre remises
à zéro du tampon Z est réduit.
Il est généralement souhaitable de conserver une précision aussi élevée que possible Cependant, il est tout aussi souhaitable d'améliorer la puissance de traitement en évitant la remise à -zéro du tampon Z dans la mesure du possible Compte tenu de ce choix, la présente invention permet d'atteindre un compromis en allouant un certain temps à la remise à zéro du tampon Z C'est ainsi qu'il peut être arbitrairement décidé qu'une amélioration suffisante des performances est atteinte par allocation de deux pourcent du temps de rendu total pour la remise à zéro du tampon Z. Conformément à cette approche, le temps alloué à la remise à zéro s'accroît à mesure que le temps de rendu total entre remises à zéro augmente On aboutit enfin soit au fait que le temps permettant la remise à zéro augmente, ou que la partie
contenant le numéro de séquence du tampon Z subit un dépasse-
ment de capacité Dans les deux cas, une remise à zéro est effectuée Pour plus de commodité, une variable arbitraire peut être affectée au temps augmenté pour la remise à zéro, celle-ci étant par exemple la variable "Z Bucks" En ajustant le nombre de bits utilisés pour le numéro de séquence (et inversement, le nombre de bits utilisés pour la précision en Z), on peut atteindre un équilibre tel que la remise à zéro provoquée par un dépassement de la capacité du numéro de séquence se produit au bout d'un temps pratiquement égal au temps s'écoulant jusqu'à ce que l'augmentation de la variable Z Bucks soit suffisante pour permettre une remise à zéro La précision en Z peut ainsi être conservée au niveau le plus élevé, ce qui n'affecte pas défavorablement les performances. Le procédé particulier représenté a été testé avec succès sur un terminal X-Windows de type NCD 19-C, et a conduit à des gains de performances notables lors du rendu d'images tridimensionnelles. Bien que la planification décrite dans l'exemple de mode de réalisation précité soit utilisée en association avec un recyclage du numéro de séquence, la technique de planifi- cation peut avoir des applications plus générales dans l'environnement d'un système à base de processeur A titre15 d'exemple, les techniques de planification temporelles peuvent être appliquées à des interruptions permettant de déterminer le client que l'on autorise à commander le processeur Dans des systèmes de ce type, plusieurs clients entrent souvent en conflit et sont introduits dans une file20 d'attente en fonction d'une hiérarchie prédéterminée Grâce à la planification, il est possible de résoudre ces problèmes de conflits de manière simple en permettant à chaque client de la file d'attente de faire croître une "valeur" dépendant de la durée pendant laquelle ce client est resté en attente d'un accès Les clients en conflit pour un accès reçoivent alors une priorité dépendant des valeurs du temps d'attente, la priorité la plus élevée étant affectée au client ayant la valeur la plus élevée Pour de telles applications, il n'est pas nécessaire d'utiliser de numéros de séquence ni d'autres
techniques de recyclage.
De plus, dans de nombreux cas, il est souhaitable d'augmenter la capacité de traitement par recyclage du tampon image en plus du recyclage du tampon Z Ici encore, cette
approche complique le procédé représenté dans les figures 3 A-
3 C, mais conduit à des augmentations de performances intéres-
santes. Une réalisation en entier de la présente invention qui met en jeu un recyclage du tampon Z, une planification de la précision en Z et un recyclage du tampon image est repré- sentée dans les figures 4 A-4 D.5 En ce qui concerne la figure 4 A, le traitement commence
à l'étape 400 et se poursuit à l'étape 402, par l'initialisa-
tion d'une variable "Start Time" au temps courant Un contrôle est ensuite effectué à l'étape 404 pour déterminer si le tampon Z existe déjà Si ce n'est pas le cas, un tampon Z est établi en mémoire vidéo à l'étape 406, qui est suivie de l'initialisation des variables Z Bits, Z Base et Z Bucks à leurs valeurs initiales En particulier, et comme décrit à propos de la figure 3 A, la valeur Z Bits est fixée à une valeur Init Z Bits et Z Base est initialisée à -2 A Init Z Bits Cependant, contrairement à la figure 3 A, Z Scale n'est pas initialisé alors qu'au contraire, la nouvelle variable Z Bucks est fixée à zéro L'utilisation de la variable Z Bucks permet un ajustement à la volée de la précision en Z pour permettre une augmentation ou une diminution des nombres de recyclages
entre remises à zéro, comme cela ressortira de la description
qui suit A la fin de l'étape 408, ou si le contrôle effectué à l'étape 404 établit qu'un tampon Z a déjà été alloué, le
traitement passe à l'étape 410.
A l'étape 410, un contrôle est effectué pour déterminer si la valeur de Z Bucks est inférieure à zéro Lors du cycle initial, Z Bucks sera égal à zéro, de sorte que le traitement se poursuivra à l'étape 412 par réinitialisation de la valeur courante de Z Bits à la valeur précédente de Z Bits plus les bits de poids les plus forts inutilisés de Z Base A titre d'exemple, si Z Base comporte des zéros dans les trois bits de poids fort, trois bits inutilisés se trouvent dans la partie de Z Base affectée à la numérotation des séquences, qui auraient dû être alloués à la précision en Z Comme noté précédemment, dans un mode de réalisation type permettant de hautes performances, Z Bits peut aller de 24 à 32 bits, bien que des résolutions inférieures soient également bien connues En ajustant Z Bits de cette manière, on peut produire un glissement de la précision entre des valeurs maximales et minimales prédéterminées La valeur initiale de Z Base est fixée arbitrairement à -2 A Init Z Bits pour marquer tous les5 bits comme étant "inutilisés" pour le traitement effectué à l'étape 402 de sorte que, dans le cas de la trame initiale, Z Bits est laissé inchangé par rapport à sa valeur initiale d'Init Z Bits Init Z Bits est fixé à une valeur fondée sur un équilibre entre des performances acceptables et une précision acceptable pour une image anticipée, lorsqu'aucune donnée n'a encore été reçue Bien qu'il ait été établi empiriquement que l'utilisation de Min Zbits comme valeur initiale d'Init Z Bits fournit une valeur appropriée, d'autres valeurs dans la gamme de Min Z Bits à Max Zbits pourraient dans certains cas être
envisagées.
Après ajustement de la valeur de Z Bits à l'étape 412, le traitement se poursuit à l'étape 414 en vérifiant si Z Bits est supérieur à un nombre maximum de bits pouvant être
alloués pour la précision, ce nombre étant appelé Max Z Bits.
Dans l'affirmative, à l'étape 416, la valeur de Z Bits est
fixée à Max Z Bits Dans la négative, l'étape 416 est contour-
née et la valeur de Z Bits est laissée inchangée.
Si, à l'étape 410, la valeur de Z Bucks est inférieure à zéro, comme cela sera le cas pour les raisons décrites de façon plus détaillée ci- après, le traitement bifurque vers l'étape 418, qui correspond à l'étape 108 de la figure 3 A. Ici encore, l'incrémentation de Z Base, qui se produit à l'étape 418, est une tentative de recyclage du tampon Z Un contrôle est alors effectué à l'étape 420 pour déterminer s'il se produit un dépassement de capacité Si cela n'est pas le cas, le recyclage du tampon Z sur cette trame a réussi et le traitement se poursuit à l'étape 422 L'étape 422 est représentée en traits discontinus car cette étape n'est illustrée qu'à titre de commodité pour indiquer qu'un événement a été reconnu et ne donne lieu à aucun traitement réel. Si la valeur de Z Base est égale à zéro à l'étape 420,
le recyclage n'aura pas réussi sur cette trame et le traite-
ment se poursuivra à l'étape 424 par initialisation de Z Bits à la valeur précédente de Z Bits moins un En fait, cela revient à emprunter un bit au nombre de bits alloués pour la précision en Z dans le cas o un recyclage est souhaité, alors qu'il ne reste plus de bits pour le numéro de séquence. La valeur de Z Bits est alors comparée à l'étape 426, à la valeur minimale de Z Bits (Min Z Bits) et, si elle est infé- 10 rieure à ce minimum acceptable, Z Bits est réinitialisé à Min Z Bits, à l'étape 428 Si Z Bits est supérieur ou égal à la valeur de Min Z Bits, l'étape 428 est contournée. Le traitement passe ensuite à l'étape 430, soit comme résultat de l'étape 416, soit comme résultat du contournement de l'étape 416, lors de l'étape 414, soit comme résultat de l'étape 428 ou de son contournement lors de l'étape 426 A l'étape 430, Z Base est fixé à zéro et Z Scale est fixé à 2 AZ Bits Z Gap Le tampon Z est alors remis à zéro à l'étape 432 qui est suivie d'une étape 434 consistant à initialiser
la variable Elapsed Time à la valeur de time(> moins Start Ti-
me, et la variable Z Bucks, à la valeur précédente de Z Bucks
moins Elapsed Time.
Le traitement se poursuit ensuite dans la figure 4 B, qui illustre sous la forme d'un organigramme les étapes associées au recyclage du tampon image On notera que, une fois que les objets ont été convertis en informations de pixels, les données de pixels sont stockées dans le tampon image En outre, comme mentionné précédemment, le mode de réalisation préféré ici utilise un RAMDAC de type Brooktree Bt 463, qui a la particularité de comporter des tables de consultation de couleurs logiques multiples A chaque table de consultation de couleur logique est associée un numéro d'identification unique auquel on peut en variante se référer soit en tant que numéro d'identification de fenêtre, soit en
tant que numéro d'identification de carte couleur.
D'une manière générale, le traitement de recyclage du tampon image met en jeu l'utilisation des numéros d'identifi-
cation des cartes couleur multiples (ce qui est équivalent aux "numéros d'identification de fenêtre" identifiés par5 Brooktree dans la documentation du système Bt 463) associés aux tables multiples de consultation de couleurs à raison d'un numéro d'identification de carte couleur par trame A chaque application est généralement associée une carte couleur La carte couleur associée à l'application est alors chargée dans la table logique de consultation des couleurs appropriée associée au numéro d'identification de carte couleur correspondant à la trame courante Les données de pixels stockées dans le tampon image comprennent, pour chaque pixel, l'information d'identification de la carte couleur et l'information de couleur Après chargement de la première carte couleur et après que les objets de cette trame ont été rendus, la première trame est affichée par interprétation des
données de pixels provenant du tampon image.
Dans les systèmes classiques, le tampon image serait remis à zéro après le rendu de la première trame Cependant, dans le présent système, cette remise à zéro n'est pas effectuée Au contraire, un second numéro d'identification de carte couleur est affecté à la seconde trame, de façon que chaque pixel associé à un objet rendu dans la seconde trame comporte le second numéro d'identification de carte couleur en tant que partie de sa donnée de pixel Comme les seuls pixels écrits dans le tampon image du fait du traitement de la seconde trame seront des pixels associés à des objets appartement à la seconde trame, le tampon image contiendra alors un certain nombre de pixels appartenant à la première
trame, ces pixels comportant le premier numéro d'identifica-
tion de carte couleur dans leurs données de pixels, et un certain nombre de pixels provenant de la seconde trame, ces pixels comportant le second numéro d'identification de carte
couleur dans leurs données de pixels.
En programmant le système à carte couleur de façon à faire correspondre la totalité des pixels aux numéros d'identification des cartes couleur de l'arrière-plan, seuls les pixels appartenant à la seconde trame sont évalués du point de vue de leurs données de couleurs Il en résulte que la seconde trame est la seule à être affichée La troisième trame est traitée de la même manière en ce sens qu'un numéro d'identification de carte couleur unique lui est affecté, et que chaque pixel du tampon image représentant un objet appartenant à cette troisième trame comporte ce troisième numéro d'identification de carte couleur dans sa donnée de pixel Comme précédemment, tous les numéros d'identification de cartes couleur antérieurs sont mis en correspondance avec la couleur d'arrière-plan en ne laissant que l'image de la
troisième trame affichée à l'écran.
Ce recyclage peut être répété pour un nombre de numéros d'identification de cartes couleur unique aussi grand que le permet le matériel C'est ainsi par exemple que si huit numéros d'identification de cartes couleur sont disponibles, il est possible d'écrire une fois dans le tampon image, puis de recycler celui-ci sept fois avant de le remettre de nouveau à zéro, ce qui conduit à une augmentation de la
capacité de traitement.
Compte tenu de ce qui précède, le traitement effectué dans la figure 4 B peut apparaître plus clairement Ce traitement commence à l'étape 436 par un contrôle permettant de déterminer si un nouveau tampon image est nécessaire, ou inversement, si un tampon image a déjà été alloué Les
spécialistes noteront que, bien que le tampon Z soit généra-
lement alloué par le programme de rendu, le tampon image est
généralement alloué par le client (c'est-à-dire l'applica-
tion) Par conséquent, l'étape 436 effectue en fait un contrôle pour savoir si le programme de rendu vient juste de recevoir un nouveau tampon image dans lequel stocker les
données de rendu.
Si le tampon image est nouveau et n'a jamais été remis à zéro, le traitement se poursuit par remise à zéro du tampon image à l'étape 438, et est suivi de l'étape 440 consistant à vider la liste des anciens numéros d'identification de cartes couleur et à initialiser la valeur de la variable "Current ID" au numéro d'identification de carte couleur
disponible suivant.
En variante, si le contrôle effectué à l'étape 436 indique qu'un tampon image n'a pas été modifié, le traitement peut continuer à l'étape 442 par un contrôle permettant de savoir si des numéros d'identification de cartes couleur supplémentaires restent à traiter Contrairement aux procédés de rendu classiques, un nouveau numéro d'identification de carte couleur est prévu pour chaque trame S'il ne reste
aucun numéro d'identification de cartes couleur supplémen-
taire à allouer, cela signifie que la trame a été entièrement recyclée et le traitement se poursuit à l'étape 438 par remise à zéro du tampon image Cependant, s'il reste d'autres numéros d'identification à allouer, ce recyclage est autorisé comme indiqué par le bloc en pointillés 446 Le traitement se poursuit à l'étape 448 par ajout de la carte du numéro d'identification de la carte couleur courante à l'ancienne liste de numéros d'identification de cartes couleur et par initialisation du numéro d'identification courant au numéro
d'identification de carte couleur disponible suivant.
Après l'étape 440 ou l'étape 448, le traitement se
poursuit avec l'étape 450 pour programmer le circuit d'ini-
tialisation des cartes couleur de façon que le numéro d'identification de la carte couleur courante corresponde à la carte couleur requise Après quoi, à l'étape 452, la valeur du numéro d'identification est fixée à celle du premier numéro d'identification de l'ancienne liste de
numéros d'identification Les valeurs des numéros d'identifi-
cation sont contrôlées à l'étape 454 pour déterminer si elles
sont nulles, c'est-à-dire si tous les numéros d'identifica-
tion ont été traités Dans la négative, les circuits de gestion des cartes couleur sont programmés pour associer tous les pixels ayant un numéro d'identification de carte couleur (sélectionné dans la liste des anciens numéros d'identifica- tion) à la couleur d'arrière-plan de la trame courante, puis le numéro d'identification courant est initialisé au numéro d'identification suivant de l'ancienne liste de numéros d'identification, à l'étape 458 Une fois l'étape 458 achevée, le traitement reboucle vers l'étape 454 pour
déterminer s'il reste des numéros d'identification supplémen-
taires à traiter Dans la négative, le numéro d'identifica-
tion est nul et le traitement peut se poursuivre à la figure 4 C.
Bien que la description qui précède du procédé préféré
mette en jeu l'utilisation d'un circuit de gestion de cartes couleur comportant plusieurs tables de consultation des couleurs, il est à noter que ce circuit de gestion des cartes
couleur sophistiqué n'est pas nécessaire dans tous les cas.
Dans certains modes de réalisation par exemple, le tampon image aura une profondeur de dix bits bien que seulement huit bits soient nécessaires pour l'information de couleur Dans ces cas, deux bits sont inutilisés et doivent être utilisés comme numéros d'identification de cartes couleur, auquel cas le tampon image peut faire l'objet d'une écriture puis être
recyclé trois fois.
La figure 4 C représente sous la forme d'un organigramme les étapes intervenant dans le rendu d'objets dans le cas o un recyclage des tampons image et Z a été effectué en plus d'une planification en Z A partir de l'étape 454 de la figure 4 B, le traitement se poursuit aux étapes 460 à 482 qui ont le même effet que les étapes 118 à 138 correspondantes de la figure 3 C, à l'exception de l'étape 480 L'étape 480, qui traduit le recyclage du tampon image, fixe la couleur d'un pixel à la couleur plus la valeur de l'ID (o ID est le numéro d'identification en cours fixé une fois par trame soit à l'étape 440, soit à l'étape 448), de l'objet courant si la valeur z du pixel en cours de rendu est supérieure à la valeur bz En outre, une fois que le contrôle effectué à l'étape 470 indique qu'il ne reste plus d'objets à traiter, le traitement passe à la figure 4 D au lieu de s'achever comme dans la figure 3 C. 5 Dans la figure 4 D, le traitement passe à l'étape 484 en initialisant la valeur de la variable Elapsed Time à la valeur de time() moins la variable Start Time, et en fixant également la variable Z Bucks à la valeur précédente de Z Bucks plus le résultat de la multiplication de la valeur Elapsed Time par un taux prédéterminé Le taux prédéterminé est le taux avec lequel le temps alloué à une remise à zéro s'accroît A titre d'exemple, s'il a été déterminé, comme cela a été utilisé dans un exemple, que des performances satisfaisantes sont obtenues en allouant deux pour cent du temps de rendu total à la remise à zéro, ce taux peut avoir une valeur de deux pour cent A l'étape 486, la valeur de Z Bucks est ensuite comparée à une valeur maximale prédéterminée, appelée Max Z Bucks Si la valeur de Z Bucks dépasse le maximum admissi- ble, Z Bucks est réinitialisé à Max Z Bucks à l'étape 488 Dans20 le cas contraire, l'étape 488 est contournée et la valeur
courante de Z Bucks est conservée Cela évite qu'une accumula-
tion excessive de Z Bucks soit provoquée lors du rendu d'images très complexes, et lorsque la précision en Z est maximale, ce qui peut conduire à une remise à zéro excessive du tampon Z sur des images ultérieures simples Cependant, ces limitations imposées à la valeur cumulée de Z Bucks ne sont pas exigées dans tous les cas Le rendu de la trame s'achève à l'étape 490, ce qui permet de poursuivre le rendu de la trame suivante par retour à la figure 4 A. Bien que les figures 4 A-4 D représentent une réalisation en entier, il est également possible d'obtenir une mise en oeuvre en virgule flottante d'un tampon Z qui met en jeu un recyclage et une planification Cette mise en oeuvre est représentée dans la figure 5, o le traitement commence à l'étape 500 et se poursuit à l'étape 502 par initialisation de la variable Start Time au temps courant, c'est-à-dire à
time() A l'étape 504, un contrôle est effectué pour détermi-
ner si un nouveau tampon Z doit être alloué. Dans l'affirmative, le traitement se poursuit à l'étape 506 en allouant un nouveau tampon Z en mémoire, qui peut soit être une mémoire vive vidéo (VRAM), soit une mémoire vive dynamique (DRAM) classique selon la réalisation matérielle, et à l'étape 508, les variables Z Scale et Z Bucks sont initialisées à leurs valeurs initiales respectives de 1 et 0. Dans le cas contraire, c'est-à-dire si un tampon Z a déjà été10 alloué, le traitement passe à l'étape 510 en déterminant si la valeur de Z Bucks est inférieure à zéro ou non Si Z Bucks est inférieur ou égal à zéro, ou après l'achèvement de l'étape 508, le traitement passe à l'étape 612 en fixant la valeur de Z Base à zéro et, à l'étape 514, en remettant à zéro le tampon Z A l'étape 516, la variable "Elapsed Time" est ensuite initialisée à time() moins Start Time lo time() est le temps courantl et la variable Z Bucks est ajustée de manière à être égale à la valeur précédente de Z Bucks moins
la valeur de Elapsed Time.
Cependant, si la valeur de Z Bucks est inférieure à zéro, un recyclage est autorisé et la valeur de Z Base est ajustée à l'étape 518 de façon à être égale à la valeur
précédente de Z Base plus un plus la taille d'interstice arbi-
traire Z Gap Les spécialistes noteront que les valeurs Z correspondant à la première trame vont de 0,0 à 1,0, de façon que l'addition de la valeur un permette de s'assurer que chaque valeur Z de la nouvelle trame soit supérieure à la valeur maximale de la trame précédente Une valeur type de la taille d'interstice Z Gap est de 0,01 La réussite de l'étape de recyclage est alors indiquée par le bloc en pointillés de l'étape 520, soit après l'achèvement de l'étape 516, soit après un recyclage réussi du tampon Z à l'étape 518, le traitement se poursuivant dans les figures 4 B à 4 D comme
décrit précédemment.
Dans un autre mode de réalisation, il est également possible d'incrémenterZ Base de la valeur Z maximale soumise à un rendu lors de la trame précédente, plutôt que de l'incrémenter de la puissance de deux indiquée en détail précédemment Dans ce cas, les tests effectués aux étapes 110 et 420 sont modifiés pour tester un dépassement de capacité5 plutôt que la présence d'une valeur nulle Les spécialistes noteront que la valeur de l'incrément n'est pas déterminante pour autant qu'elle se situe dans une gamme appropriée On notera également qu'une remise à zéro du tampon image ou des tampons Z ne nécessite pas, conformément à la présente10 invention, une remise à zéro classique de chaque bit du tampon Au contraire, dans au moins certaines formes de réalisation, il suffit de remettre à zéro la partie du tampon Z qui représente le numéro de séquence De même, dans le cas du tampon image, il suffit de remettre à zéro la partie qui15 représente le numéro d'identification de la carte couleur. Mieux encore, dans au moins certains cas, il suffit de
remettre à zéro une partie seulement de ces portions respec- tives, bien que le recyclage supplémentaire autorisé par cette remise à zéro partielle puisse être moins important que20 dans le cas o toutes ces parties ont été remises à zéro.
L'un des modes de réalisation de la présente invention a été décrit en détail ci-dessus, mais les spécialistes de la technique noteront que de nombreuses variantes et de nombreux équivalents peuvent être envisagés sans s'écarter du contexte de l'invention décrit ci-dessus Il est donc clair que la
présente invention ne se limite pas à la description qui
précède, mais seulement aux revendications annexées.

Claims (7)

REVENDICATIONS
1 Procédé de rendu d'une pluralité de trames d'images tridimensionnelles comprenant chacune au moins un objet ayant une valeur Z, sans remise à zéro du tampon Z5 entre trames, dans un dispositif d'affichage vidéo comprenant un processeur et un tampon Z permettant d'effectuer un rendu, caractérisé en ce qu'il comprend les étapes consistant à: remettre à zéro le tampon Z, effectuer le rendu d'au moins un objet d'une première trame, modifier les valeurs Z d'au moins un objet d'une seconde trame pour que la valeur Z minimale d'un objet de la seconde trame soit supérieure à la valeur Z maximale d'au moins un objet de la trame précédente, effectuer le rendu d'au moins un objet de la
seconde trame conformément à ses valeurs Z modifiées.
2 Procédé pour effectuer le rendu d'images tridimensionnelles à une vitesse plus élevée, dans un dispositif-d'affichage vidéo comprenant un processeur et une matrice mémoire permettant de stocker une pluralité de bits sous la forme de mots pour l'affichage d'images vidéo, caractérisé en ce qu'il comprend les étapes consistant à: établir un tampon Z dans une partie de la matrice mémoire, établir un numéro de séquence stocké dans une partie de la matrice mémoire non utilisée par le tampon Z, la partie contenant le numéro de séquence faisant l'objet d'un adressage par un plus grand nombre de bits significatifs d'un mot que la partie correspondant au tampon Z, remettre à zéro le tampon Z avant d'effectuer le rendu d'une première image, établir un numéro de séquence arbitraire avant d'effectuer le rendu d'une première image, incrémenter le numéro de séquence après avoir effectué le rendu de chaque image, remettre à zéro le tampon Z lors d'un dépassement
de capacité de la partie contenant le numéro de séquence.
3 Procédé pour effectuer le rendu d'une plura-
lité de trames d'images tridimensionnelles, dans un disposi-
tif d'affichage vidéo comprenant une matrice mémoire pour stocker une pluralité de bits sous la forme de mots pour l'affichage de trames d'information vidéo, caractérisé en ce qu'il comprend les étapes consistant à: établir un tampon Z dans une partie de la matrice mémoire, établir un numéro de séquence stocké dans une partie de la matrice mémoire non utilisée par le tampon Z, la partie contenant le numéro de séquence faisant l'objet d'un adressage par un plus grand nombre de bits significatifs d'un mot que la partie contenant le tampon Z,15 remettre à zéro le tampon Z avant d'effectuer le rendu d'une première trame, incrémenter le numéro de séquence après avoir effectué le rendu de chaque image, remettre de nouveau à zéro le tampon Z lorsque le
numéro de séquence atteint une valeur prédéterminée.
4 Procédé selon la revendication 3, caractérisé en ce que la valeur prédéterminée est atteinte lors d'un dépassement de capacité de la partie contenant le numéro de séquence.
5 Procédé pour effectuer le rendu d'images tridimensionnelles, dans un dispositif d'affichage vidéo comprenant une matrice mémoire pour stocker une pluralité de bits sous la forme de mots pour l'affichage de trames d'information vidéo, caractérisé en ce qu'il comprend les étapes consistant à: établir un tampon Z dans une partie de la matrice mémoire, établir un numéro de séquence stocké dans une partie de la matrice mémoire non utilisée par le tampon Z, la partie contenant le numéro de séquence faisant l'objet d'un adressage par un plus grand nombre de bits significatifs d'un mot que la partie contenant le tampon Z, augmenter, en tant que partie d'un temps de rendu total, un temps permettant la remise à zéro du tampon Z, remettre à zéro le tampon Z avant d'effectuer le rendu d'une première trame, incrémenter le numéro de séquence après avoir effectué le rendu de chaque image, remettre de nouveau à zéro le tampon Z lorsque le numéro de séquence atteint une première valeur prédéterminée ou lorsque le temps augmenté pour la remise à zéro du tampon
Z atteint une seconde valeur prédéterminée.
6 Procédé pour afficher séquentiellement des trames multiples d'information vidéo sans remettre à zéro le tampon image entre trames, dans un dispositif d'affichage vidéo capable d'afficher des trames d'information vidéo sous la forme de rendus tridimensionnels et ayant une matrice mémoire comportant un tampon image faisant l'objet d'un adressage par une pluralité de bits d'adresse, caractérisé en ce qu'il comprend les étapes consistant à: remettre à zéro le tampon image, affecter à une première trame à afficher un indice représentant une première carte couleur, affecter à chaque pixel associé à un objet de la première trame, un indice représentant la première carte couleur en association avec une autre information de pixel, la combinaison de l'indice représentant la première carte couleur et l'autre information de pixel formant ensemble les données de pixels de la première trame, écrire dans le tampon image la donnée de pixel de la première trame, mettre en correspondance avec une couleur requise la donnée de pixel stockée dans le tampon image et faire en sorte que l'indice représente la première carte couleur, affecter à une nouvelle trame à afficher un indice représentant une carte couleur différente, affecter à chaque pixel associé à un objet de la trame suivante, un indice représentant la carte couleur suivante en association avec une autre information de pixel, la combinaison de l'indice représentant la carte couleur5 suivante et de l'autre information de pixel formant ensemble la donnée de pixel de la trame suivante, écrire dans le tampon image la donnée de pixel de la trame suivante, mettre en correspondance avec une couleur d'arrière-plan la donnée de pixel stockée dans le tampon image et ne pas faire en sorte que l'indice représente la carte couleur suivante, mettre en correspondance une couleur requise de la donnée de pixel stockée dans le tampon image et faire en sorte que l'indice représente la carte couleur suivante, et répéter, pour chaque trame suivante jusqu'à une limite prédéterminée, les étapes d'affectation, d'écriture et
de mise en correspondance pour la trame suivante.
7 Procédé pour planifier les accès dans un système à base de processeur, dans lequel une pluralité
d'appels peuvent entrer en conflit pour accéder au proces-
seur, caractérisé en ce qu'il comprend les étapes consistant à: identifier une pluralité d'appels entrant tous en conflit pour accéder au processeur, augmenter une valeur pour au moins certains de cette pluralité d'appels proportionnellement au temps passé en attente d'un accès au processeur, autoriser un accès au processeur en fonction de
la valeur augmentée par chacun de cette pluralité d'appels.
FR9314594A 1992-12-04 1993-12-06 Procede et appareil de recyclage d'un tampon video. Expired - Fee Related FR2698983B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/985,283 US5493637A (en) 1992-12-04 1992-12-04 Video buffer recycling method and apparatus

Publications (2)

Publication Number Publication Date
FR2698983A1 true FR2698983A1 (fr) 1994-06-10
FR2698983B1 FR2698983B1 (fr) 1996-03-29

Family

ID=25531339

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9314594A Expired - Fee Related FR2698983B1 (fr) 1992-12-04 1993-12-06 Procede et appareil de recyclage d'un tampon video.

Country Status (6)

Country Link
US (3) US5493637A (fr)
JP (1) JPH06223196A (fr)
CA (1) CA2110551A1 (fr)
DE (1) DE4341304A1 (fr)
FR (1) FR2698983B1 (fr)
GB (1) GB2273636B (fr)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5493637A (en) * 1992-12-04 1996-02-20 Network Computing Devices, Inc. Video buffer recycling method and apparatus
GB9314717D0 (en) * 1993-07-15 1993-08-25 Philips Electronics Uk Ltd Image processing
JPH08272344A (ja) * 1995-03-29 1996-10-18 Hitachi Ltd 高速画面表示装置及び方法
JP3548352B2 (ja) * 1996-10-25 2004-07-28 キヤノン株式会社 遠隔カメラ制御システム及び装置及びその方法
US5848264A (en) * 1996-10-25 1998-12-08 S3 Incorporated Debug and video queue for multi-processor chip
US6222550B1 (en) 1998-12-17 2001-04-24 Neomagic Corp. Multiple triangle pixel-pipelines with span-range pixel interlock for processing separate non-overlapping triangles for superscalar 3D graphics engine
US6337690B1 (en) * 1999-03-31 2002-01-08 Hewlett-Packard Company Technique for reducing the frequency of frame buffer clearing
GB9915012D0 (en) * 1999-06-29 1999-08-25 Koninkl Philips Electronics Nv Z-buffering graphics system
KR100354824B1 (ko) * 1999-11-22 2002-11-27 신영길 시간 일관성을 이용한 실시간 렌더링 방법 및 렌더링 장치
US20030063087A1 (en) * 2001-09-28 2003-04-03 Doyle Peter L. Variable-formatable width buffer and method of use
US6747657B2 (en) * 2001-12-31 2004-06-08 Intel Corporation Depth write disable for zone rendering
US6982713B2 (en) * 2003-01-13 2006-01-03 Xgi Technology Inc. System and method for clearing depth and color buffers in a real-time graphics rendering system
US7755629B2 (en) * 2004-06-30 2010-07-13 Canon Kabushiki Kaisha Method of rendering graphic objects
US7844968B1 (en) 2005-05-13 2010-11-30 Oracle America, Inc. System for predicting earliest completion time and using static priority having initial priority and static urgency for job scheduling
US7752622B1 (en) 2005-05-13 2010-07-06 Oracle America, Inc. Method and apparatus for flexible job pre-emption
US8214836B1 (en) * 2005-05-13 2012-07-03 Oracle America, Inc. Method and apparatus for job assignment and scheduling using advance reservation, backfilling, and preemption
US7743378B1 (en) * 2005-05-13 2010-06-22 Oracle America, Inc. Method and apparatus for multi-dimensional priority determination for job scheduling
US7984447B1 (en) 2005-05-13 2011-07-19 Oracle America, Inc. Method and apparatus for balancing project shares within job assignment and scheduling
EP2297705B1 (fr) 2008-06-30 2012-08-15 Thomson Licensing Procede de composition temps reel d'une video
GB2497762B (en) * 2011-12-20 2018-05-23 Advanced Risc Mach Ltd Intermediate value storage within a graphics processing apparatus
GB2524121B (en) 2014-06-17 2016-03-02 Imagination Tech Ltd Assigning primitives to tiles in a graphics processing system
GB2524120B (en) * 2014-06-17 2016-03-02 Imagination Tech Ltd Assigning primitives to tiles in a graphics processing system
US9589312B2 (en) * 2014-12-19 2017-03-07 Intel Corporation Exploiting frame-to-frame coherence for optimizing color buffer clear performance in graphics processing units

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1990002780A1 (fr) * 1988-09-13 1990-03-22 Silicon Graphics, Inc. Procede et appareil pour effacer une region d'un tampon z

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4197430A (en) * 1978-09-15 1980-04-08 Bell Telephone Laboratories, Incorporated Operator service position system
US4481583A (en) * 1981-10-30 1984-11-06 At&T Bell Laboratories Method for distributing resources in a time-shared system
US4907174A (en) * 1988-06-02 1990-03-06 Sun Microsystems, Inc. Z-buffer allocated for window identification
US5043923A (en) * 1988-10-07 1991-08-27 Sun Microsystems, Inc. Apparatus for rapidly switching between frames to be presented on a computer output display
CA1316271C (fr) * 1988-10-07 1993-04-13 William Joy Dispositif pour supprimer rapidement l'affichage d'un systeme informatique
US5101365A (en) * 1988-10-31 1992-03-31 Sun Microsystems, Inc. Apparatus for extending windows using Z buffer memory
US5050102A (en) * 1989-04-28 1991-09-17 Sun Microsystems, Inc. Apparatus for rapidly switching between output display frames using a shared frame gentification memory
US5220646A (en) * 1990-04-30 1993-06-15 International Business Machines Corporation Single pass hidden line removal using z-buffers
US5493637A (en) * 1992-12-04 1996-02-20 Network Computing Devices, Inc. Video buffer recycling method and apparatus
US5561750A (en) * 1994-09-22 1996-10-01 Seiko Epson Corporation Z-buffer tag memory organization

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1990002780A1 (fr) * 1988-09-13 1990-03-22 Silicon Graphics, Inc. Procede et appareil pour effacer une region d'un tampon z

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
TOST: "AN ALGORITHM OF HIDDEN SURFACE REMOVAL BASED ON FRAME-TO-FRAME COHERENCE", EUROGRAPHICS, 2 September 1991 (1991-09-02), AMSTERDAM, pages 261 - 273, XP000300270 *

Also Published As

Publication number Publication date
FR2698983B1 (fr) 1996-03-29
JPH06223196A (ja) 1994-08-12
DE4341304A1 (de) 1994-06-16
US5894572A (en) 1999-04-13
GB9324973D0 (en) 1994-01-26
GB2273636A (en) 1994-06-22
GB2273636B (en) 1997-02-05
CA2110551A1 (fr) 1994-06-05
US5493637A (en) 1996-02-20
US5748864A (en) 1998-05-05

Similar Documents

Publication Publication Date Title
FR2698983A1 (fr) Procédé et appareil de recyclage d'un tampon vidéo.
FR2583541A1 (fr) Tampon z a haute vitesse munie d'une memoire dynamique a acces aleatoire
EP0458692B1 (fr) Procédé de visualisation d'une partie de l'image d'une structure physique
US11232624B2 (en) Adaptive sampling of pixels
Yang et al. Real‐time concurrent linked list construction on the GPU
EP0215510A1 (fr) Processeur d'élimination de faces cachées pour la synthèse d'images à trois dimensions
US9245358B2 (en) Systems and methods for generating refined, high fidelity normal maps for 2D and 3D textures
US8244029B1 (en) Recursive filters on GPUs
FR2920899A1 (fr) Structure de donnees en tranches et procede de chargement d'une simulation basee sur des particules utilisant une structure de donnees en tranches dans un gpu, etc
FR2767939A1 (fr) Procede d'allocation de memoire dans un systeme de traitement de l'information multiprocesseur
FR2625345A1 (fr) Procede de visualisation en trois dimensions d'objets codes numeriquement sous forme arborescente et dispositif de mise en oeuvre
FR2632434A1 (fr) Procede et dispositif pour l'affichage d'informations graphiques en deux et trois dimensions a l'interieur de fenetres d'un systeme d'affichage
US20110199385A1 (en) System, method, and computer program product for rendering pixels with at least one semi-transparent surface
US7605825B1 (en) Fast zoom-adaptable anti-aliasing of lines using a graphics processing unit
Dumont et al. Perceptually-driven decision theory for interactive realistic rendering
US10460502B2 (en) Method and apparatus for rendering object using mipmap including plurality of textures
FR3082649A1 (fr) Procede d'application de couleurs sur une texture
US20060290703A1 (en) Non-destructive processing of digital image data
EP2504816B1 (fr) Procede d'estimation de diffusion de la lumiere
EP2391989B1 (fr) Procede de representation d'un materiau
US7425967B2 (en) Device for processing pixel rasterization and method for processing the same
FR2964775A1 (fr) Procede d'estimation de l'occultation dans un environnement virtuel
EP0108674B1 (fr) Terminal graphique à mémoire de points muni d'un système d'écriture en mémoire d'image de signaux de texture d'image
US7619628B2 (en) Caching digital image data
US7295208B2 (en) Translating layers into effect graphs in digital image processing

Legal Events

Date Code Title Description
ST Notification of lapse