Brevet FR2864318A1 — publié le 20050624

DOMAINE TECHNIQUE DE L'INVENTION La présente invention concerne de façon générale le domaine des systèmes d'affichage graphique par ordinateur ou par tout autre dispositif de calcul par circuit électronique numérique et plus particulièrement un système et un procédé pour améliorer la qualité de l'affichage dans un système d'affichage graphique. CONTEXTE DE L'INVENTION Les systèmes d'affichage graphique par ordinateur sont couramment utilisés pour afficher des représentations graphiques de données tridimensionnelles ou bidimensionnelles sur des dispositifs d'affichages bidimensionnels comme des écrans à tubes cathodiques ou à cristaux liquides. Dans ces systèmes d'affichages, une application mémorisée dans un ou plusieurs ordinateurs constitués de mémoires et de processeurs, gère une base de données constituée d'objets tridimensionnels. Ces objets sont des représentations d'objets réels dont l'ensemble constitue la scène à afficher. Ces objets contiennent toutes les informations nécessaires à fin de pouvoir être affichées dans le système et ainsi constituer une imitation réaliste de la vue qu'aurait un observateur avec ses yeux si il était plongé dans une scène contenant les objets décrits dans la base de données. Les données associées à ces objets dans la base sont relatives à la position de l'objet, sa forme, sa couleur ou toute autre information ayant un impact sur la façon dont celui-ci peut s'afficher. A fin d'afficher la scène sur le système d'affichage, l'application lit le contenu de cette base de donnée et en communique le contenu à un composant spécialisé contenu dans l'ordinateur appelé processeur graphique. Le processeur graphique effectue tous les calculs nécessaires à fin de produire un ensemble de données numériques appelé 286431 8 tampon de trame. Les données contenues dans ce tampon de trame représentent l'intensité lumineuse et la couleur de chaque position du dispositif d'affichage. Ces données sont ensuite envoyées au dispositif d'affichage par une connexion utilisant un signal vidéo sur un support physique. Un dispositif d'affichage est constitué d'une grille bidimensionnelle contenant un ensemble de positions dont la couleur et l'intensité lumineuse peut être différente à fin de constituer l'image. A fin de pouvoir déterminer, pour chaque objet et pour chaque position du dispositif d'affichage, quel est l'objet qui est effectivement visible, les processeurs graphiques utilisent une mémoire appelée tampon de profondeur dans laquelle est conservée une représentation de la distance à l'observateur du dernier objet à avoir été dessiné à cette position. Ce tampon est utilisé par le processeur graphique pour effectuer son dessin avec l'algorithme classique du tampon de profondeur. De même, le processeur graphique utilise un tampon de transparence qui permet de connaître la transparence du dernier objet à avoir été dessiné à chaque position du dispositif d'affichage. Ce tampon permet de tenir compte des objets transparents lors de l'application de l'algorithme du tampon de profondeur. Bien qu'il soit possible d'utiliser les systèmes d'affichage graphiques par ordinateur pour afficher des représentations graphiques de données tridimensionnelles, le réalisme des images affichés par ces systèmes sont limités par leur performance. Ces limites sont de différents types. La première limite connue est celle du nombre d'objets qui peuvent être calculés par le processeur graphique pendant une durée donnée. Pour pouvoir être utilisé de façon efficace un système d'affichage graphique doit produire une nouvelle image en moins de 15ms. Dans cette durée, un processeur graphique ne peut traiter qu'un nombre limité d'objets d'une base de donnée de scène, ce qui limite le réalisme de l'image affichée par le système. La seconde limite est la complexité des algorithmes qui peuvent être utilisés par le processeur graphique pour calculer la représentation bidimensionnel des objets qui lui sont envoyés. Ces algorithmes tentent d'imiter de façon approximative les phénomènes physiques qui se produisent quand des objets dans l'espace sont soumis à des sources de lumière. Plus on veut des algorithmes réalistes, plus ils prennent du temps de calcul sur un processeur graphique pour chaque objet. Les solutions généralement retenues pour contourner les limites des systèmes d'affichage graphiques par ordinateur utilisent un plus grand nombre de processeurs graphiques que de dispositifs d'affichage. Ainsi, en distribuant de façon adéquate les tâches de calcul de la représentation bidimensionnelle des objets sur un plus grand nombre de processeurs graphiques, on peut calculer plus de position, plus d'objets ou passer plus de temps de calcul pour chaque objet. Ces processeurs graphiques sont généralement organisés en un réseau informatique local de serveurs graphiques possédant chacun un ou plusieurs processeurs graphiques. Le réseau local connecte également les serveurs graphiques avec la ou les machines clientes dont les processeurs font fonctionner l'application graphique qui parcourt la base de donnée d'objet qui doivent être affichés. Les processeurs graphiques sont également reliés aux différents dispositifs d'affichage par un réseau image qui permet de faire transiter les différentes parties d'images produites par les différents processeurs graphiques aux dispositifs d'affichage auxquels ils sont associés. Ce réseau permet de combiner les différentes images produites par les serveurs graphiques qui travaillent chacun sur une partie du calcul. 286431 8 Il existe deux façons de répartir les calculs d'un système d'affichage graphique par ordinateur sur plusieurs serveurs graphiques pour accélérer la vitesse de rendu. On peut soit découper la zone d'affichage bidimensionnelle en différentes sous-zones exclusives dont chaque serveur graphique a la responsabilité. On peut répartir les différents objets sur des serveurs différents, pouvant chacun dessiner sur toute la zone d'affichage. Le problème classique de l'efficacité des systèmes utilisant plusieurs processeurs pour calculer des sous-parties d'une même tâche est que le temps de calcul de l'ensemble est généralement supérieur au temps de calcul par un seul processeur divisé par le nombre de processeurs. Il est actuellement connu que le découpage par répartition d'objets présente une meilleure efficacité que le découpage par répartition d'image. En particulier, lorsque le nombre de processeur graphique commence à être important (plus de dix), le découpage image fait que beaucoup d'objets se trouvent à cheval sur plusieurs zones affectées à des processeurs différents et doivent ainsi être traités plusieurs fois. Certain dispositifs de réseau image on l'inconvénient de posséder leur propre tampon de trame et nécessitent ainsi que ce tampon de trame soit totalement rempli par les parties d'images calculées par les différents processeurs graphiques avant de pouvoir communiquer le contenu de ces tampons de trames aux dispositifs d'affichage. Ces dispositifs ajoutent ainsi le temps de remplissage des tampons de trame qui est généralement de l'ordre de 15ms au temps entre le moment où les applications commencent à dessiner la scène et le moment où les dispositifs d'affichage peuvent afficher la scène. Cette durée supplémentaire nuit à la facilité d'utilisation du système d'affichage graphique par ordinateur. D'autres dispositifs de réseau image traitent les signaux au fur et à mesure 286431 8 reçoivent et les communiquent aux dispositifs sans délai perceptible par l'utilisateur du de dispositifs de réseau image traitant au fur et à mesure est facile à réaliser dans on a une répartition par zone d'image. En revanche, pour pouvoir effectuer une répartition par objets, il est nécessaire pour le réseau image de connaître les informations de profondeur et de transparence pour chaque position du dispositif d'affichage. Or, les dispositifs d'affichages actuels n'ont pas besoin de ces informations et donc les signaux utilisés actuellement pour communiquer entre les cartes graphiques et les dispositifs d'affichages ne comportent jamais cette information. Les réseaux images qui actuellement traitent les dispositifs faisant une distribution du travail par répartition des objets utilisent toujours une mémoire de trame interne qui contient à la fois les informations de luminosités, de transparence et de profondeur. Pour faire passer les informations de transparence et de profondeur de la mémoire du processeur graphique au réseau image, les processeurs graphiques procèdent en plusieurs étapes: 1)Envoi des informations du tampon de trame au réseau image (luminosité et couleur). 2)Recopie des informations de transparence du tampon de transparence dans le tampon de trame. 3)Recopie des informations de profondeurs du tampon de profondeur dans le tampon de trame. 4)Envoi des informations du tampon de trame au réseau 30 image (transparence et profondeur). 5)Traitement de ces informations par le réseau image. L'ensemble de ces opérations prennent beaucoup de temps (de l'ordre de 30ms) et diminuent ainsi beaucoup la qualité d'un tel dispositif. Enfin, un autre problème bien connu des dispositifs qu'ils les d'affichage système. La réalisation les signaux le cas où - 6- d'affichages utilisant un certain nombre de processeurs pour répartir les objets à dessiner est celui de la gestion de la transparence. En effet, l'algorithme du dessin par tampon de profondeur en tenant compte de la transparence nécessite que les objets transparents soient dessinés après tous les objets opaques de la scène et qu'eux même soient triés par rapport à la position de l'observateur. Si ce n'est pas le cas, l'affichage est incorrect. RESUME DE L'INVENTION Selon un mode de réalisation de la présente invention, un dispositif permettant d'utiliser le tampon de trame pour conserver des informations de profondeur et de transparence est décrit. Selon un mode de réalisation de la présente invention, un dispositif permettant de remplir alternativement le tampon de trame avec des informations de profondeur et de transparence et des informations de couleur et de luminosité est décrit. Selon un mode de réalisation de la présente invention, un dispositif permettant de déterminer la parité de l'abscisse d'une position en utilisant une texture répétée est décrit. Selon un mode de réalisation de la présente invention, un dispositif permettant de déterminer la parité de l'abscisse d'une position en utilisant une fonction périodique est décrit. Selon un mode de réalisation de la présente invention, un dispositif permettant de conserver une précision maximale sur les informations de profondeur lors de leur 30 placement dans le tampon de trame est décrit. Selon un mode de réalisation de la présente invention, un dispositif de répartition de charge par répartition d'objets permettant de respecter l'ordre du dessin lors des opérations de transparence est décrit. 286431 8 BREVE DESCRIPTION DES DESSINS La figure 1 est une représentation de la façon dont le tampon de trame est utilisé classiquement par un processeur graphique pour conserver les informations de luminosité et de couleur. La figure 2 est une représentation d'un mode de réalisation de la façon d'utiliser le tampon de trame dans la présente invention pour conserver à la fois les informations de luminosité et de couleur et les informations de profondeur et de transparence. La figure 3 présente l'organigramme d'un mode de réalisation du dispositif de calcul de couleur et de luminosité utilisé par le processeur graphique de la présente invention. La figure 4 présente l'organigramme d'un mode de réalisation d'un dispositif permettant de déterminer si l'abscisse de la position courante est pair ou impair en utilisant une texture répétée. La figure 5 présente l'organigramme d'un mode de réalisation d'un dispositif permettant de déterminer si l'abscisse de la position courante est pair ou impair en utilisant une fonction périodique de l'abscisse. L'organigramme de la figure 6 présente un mode de réalisation de la présente invention permettant de minimiser la perte de précision lors de la mémorisation de la profondeur dans le tampon de trame. La figure 7 présente un mode de réalisation d'une répartition de la charge de calcul permettant de respecter l'ordre du dessin lors des opérations de transparence. DESCRIPTION DETAILLEE DES DESSINS Le mode de réalisation préféré de la présente invention et ses avantages sont mieux compris lorsqu'on décrit en détail les figures 1 à 7. Les numéros utilisés dans le texte correspondent à ceux des figures. La figure 1 est une représentation de la façon dont le - 8- tampon de trame est utilisé classiquement par un processeur graphique pour conserver les informations de luminosité et de couleur. Cette mémoire (1) est constituée d'un ensemble de case accessible par l'abscisse et l'ordonnée de chaque position de la grille du dispositif d'affichage. Chaque case conserve ces informations généralement sous la forme de trois intensité pour chaque couleur primaire du spectre visible (rouge,vert,bleu). La figure 2 est une représentation d'un mode de réalisation de la façon d'utiliser le tampon de trame (2) dans la présente invention. Selon ce mode de réalisation, les cases mémoires prévues pour conserver les positions d'abscisse pair (4) sont remplacées par les informations de profondeur et de transparence de la position de l'abscisse juste inférieure (3). La figure 2 montre un dispositif d'affichage possédant une grille de 6 lignes par 6 colonnes, une représentation de profondeur et de transparence qui utilise autant de cases que les représentations de luminosité et de couleur et une répartition paire/impaire à des fins d'explications. Une taille quelconque de grille peut être utilisée, un nombre quelconque de cases peuvent être utilisées pour représenter la profondeur et la transparence d'une case et un entrelacement quelconque de la transparence et profondeur et de luminosité et couleur peut être utilisé, sans s'écarter de la présente invention. De même la présente invention peut être mise en oeuvre en utilisant moins de cases pour représenter la transparence et la profondeur que des cases pour représenter la couleur et la luminosité. La figure 3 présente l'organigramme d'un mode de réalisation du dispositif de calcul de couleur et de luminosité utilisé par le processeur graphique de la présente invention. Dans les processeurs graphiques, l'utilisateur a la possibilité de remplacer le dispositif - 9- classique de remplissage du tampon de trame par un programme informatique de son choix. Ceci est prévu pour pouvoir mettre en oeuvre des dispositifs de calculs d'éclairement plus réalistes et adapté au contexte de visualisation de l'objet affiché. Le mode de réalisation de la présente invention détaillé dans l'organigramme 5 commence par lire dans la mémoire du processeur graphique toutes les informations disponibles habituellement pour le calcul d'éclairement position, luminosité, couleur, profondeur, transparence (6). Lors de l'étape 7, il est déterminé si la position de l'abscisse X est pair. Si c'est le cas, on passe à l'étape 9 et on remplit la case du tampon de trame avec la profondeur et la transparence. Si ce n'est pas, on passe à l'étape 8 et on remplit classiquement le tampon de trame avec la couleur et la luminosité. La figure 3 présente un organigramme utilisant un entrelacement pair/impair et mettant autant d'information de transparence et profondeur que de couleur et luminosité à des fins explicative. La présente invention peut être réalisée avec un entrelacement quelconque et un nombre quelconque de cases utilisées pour conserver la profondeur et la transparence. La figure 4 présente l'organigramme (10) d'un mode de réalisation d'un dispositif permettant de déterminer si l'abscisse de la position courante est pair ou impair, comme il est nécessaire dans l'étape 7 de la figure 3. Les possibilités de configuration des processeurs graphiques pour définir les algorithmes d'éclairement sont souvent limités aux fonctions qui sont habituellement utilisées dans les algorithmes classiques d'éclairement, et il est souvent impossible d'effectuer un calcul mathématique qui ne serait pas utilisé dans les algorithmes d'éclairement classiques. Le mode de réalisation de la figure 4 propose d'utiliser les mécanismes d'application de texture 286431 8 habituellement utilisés dans les processeurs graphiques. Préalablement au dessin de tout objet, on définit dans la mémoire du processeur graphique une texture contenant deux positions, la première ayant la couleur noir, la deuxième ayant la couleur blanche. On configure le processeur graphique pour que la texture soit en mode répété. Lors de l'étape 11, on récupère la couleur de cette texture pour la position courante. Si la couleur est noir, on retourne oui comme résultat de l'étape 7. Si la couleur n'est pas noir, on retourne non comme résultat de l'étape 7. L'organigramme (13) de la figure 5 propose un autre mode de réalisation de la présente invention pour pouvoir déterminer la parité de la position courante dans le tampon de trame. Ceci consiste à utiliser une fonction périodique fonction de l'abscisse X (14). On peut par exemple utiliser la fonction classique cosinus de X multiplié par PI. Cette fonction est souvent utilisée dans les algorithmes d'éclairement et ainsi utilisable dans cette invention. Lors de l'étape 15, le résultat de la fonction cosinus est comparé avec la valeur O. Si il est plus grand, il est répondu oui comme résultat de l'étape 7. Si il est plus petit, il est répondu non comme résultat de l'étape 7. l'utilisation de la fonction cosinus dans la figure 5, et un entrelacement pair/impair n'est proposé qu'à titre explicatif. La présente invention peut être réalisée avec toute fonction périodique permettant de discriminer les positions de l'entrelacement et tout entrelacement. L'organigramme (16) de la figure 6 présente un mode de réalisation de la présente invention permettant de minimiser la perte de précision lors de la mémorisation de la profondeur dans le tampon de trame (9). Ceci est pour gérer le fait que les mémoires de trame répartissent les informations de couleur et de luminosité selon les trois composantes de couleur primaire (rouge,vert,bleu). Si on se contente de transférer la profondeur dans une seule des 286431 8 composantes, on aura seulement un tiers de la précision de stockage possible dans la mémoire de trame. L'organigramme suppose que le tampon de trame conserve les composantes de couleur primaire comme des valeurs comprises entre 0 et 1. Selon ce mode de réalisation (16), il est d'abord récupéré la valeur Z de la profondeur de l'objet qui devrait être affiché en la position courante (17). Cette valeur est ensuite normalisée pour être comprise entre 0 et 1 (18). Les étapes suivantes sont ensuite effectués selon trois chemins indépendants pour générer les trois composantes. Pour la composante rouge, la profondeur est d'abord multipliée par une valeur D (19), puis la partie entière est sélectionnée (22), puis cette valeur est divisée par D (24), puis la partie fractionnaire est sélectionnée (23) pour générer la composante rouge (25). Pour la composante vert (26), l'étape 19 est remplacée par une multiplication par D*D (20). Pour la composante bleu, l'étape 19 est remplacée par une multiplication par D*D*D (21). Cet algorithme est indépendant de la connaissance de la précision de la représentation des composantes rouge, vert, bleu. Le choix de la valeur D nécessite la connaissance de la précision de représentation et doit être égal au nombre d'états possibles de cette représentation. La figure 6 présente une répartition sur trois composantes primaires et en effectuant les opérations selon un certain ordre à des fins explicatives uniquement. La présente invention peut être réalisée pour exploiter des systèmes utilisant un nombre quelconque de composantes de couleurs ou d'autres représentations séparées et avec un autre ordre des opérations du moment que le même résultat est obtenu. La figure 7 présente une vue du dessus de la répartition spatiale des tâches affectées aux processeurs graphiques 35 selon un mode de réalisation de la présente invention. 286431 8 La figure 7 présente un dispositif de répartition des tâches de calcul pour un système possédant plusieurs processeurs graphiques hybride entre une répartition par zone d'images et une répartition d'objets. Il est connu que la répartition par distribution d'objets présente une meilleure performance que la répartition par distribution d'images. Cependant, la répartition par distribution d'objets présente le problème de ne pas pouvoir toujours garantir le respect de l'ordre de dessin des objets transparents de la scène. Pour résoudre ce problème selon le mode de réalisation de la figure 7, l'algorithme de découpage des zones à assigner aux processeurs graphiques détermine non pas des zones dans l'écran mais des zones dans l'espace. Ces zones ont leurs plans délimitant parallèles aux axes d'un repère dont l'origine est positionnée à la position de l'observateur, et l'axe Z fuit de l'observateur, orthogonalement à l'écran, convention utilisée habituellement dans les dispositifs de synthèse d'image par ordinateur. L'algorithme fonctionne en ayant la connaissance de l'ensemble des objets qui doivent être dessinés, ainsi que leur position. Il détermine ensuite des tranches (29) parallèles au plan (X,Y) contenant la bonne quantité d'objets à dessiner de façon à ce que la charge soit bien répartie. Le problème que cet algorithme résout survient lorsqu'il s'aperçoit qu'un objet transparent (32), pourrait se trouver à cheval entre deux zones. Pour éviter cela, la tranche en question est découpée en deux zones selon l'axe des X ou des Y (30,31), et la tranche est prolongée dans l'axe des Z de façon à avoir la bonne quantité d'objets. La figure 7 présente un exemple de découpage pour répartir la charge sur trois processeurs graphiques, avec une certaine répartition et avec une certaine configuration d'objets à dessiner à des fins explicative. La présente - 13- invention peut être réalisée pour répartir la charge sur un nombre quelconque de processeurs graphiques, peut gérer n'importe quelle répartition et n'importe quelle configuration d'objet. La présente invention peut donner lieu à un grand nombre d'applications industrielles comme la visualisation d'images de synthèses produites en temps réel pour lesquelles les performances d'un seul processeur graphique sont insuffisantes. 286431 8 REVENDICATIONS 1) Dispositif d'organisation des données dans la mémoire de trame d'un processeur graphique (2) dans un système avec un nombre multiple de processeurs graphiques caractérisé par le fait qu'il peut utiliser des cases prévues pour mémoriser la luminosité et la couleur (3) pour mémoriser la transparence et la profondeur (4) du dernier objet dessiné. 2) Dispositif selon la revendication 1, caractérisé par le remplacement du dispositif habituel d'éclairement par un dispositif (5) pouvant mettre alternativement la luminosité et la couleur (8) ou la profondeur et la transparence (9) dans le tampon de trame selon une fonction de sélection (7). 3) Dispositif selon la revendication 2 caractérisé par l'utilisation d'une texture répétée (11) pour effectuer cette sélection (7). 4) Dispositif selon la revendication 2 caractérisé par l'utilisation d'une fonction périodique de l'abscisse X (14) pour effectuer cette sélection (7). 5) Dispositif selon la revendication 1 caractérisé par une répartition de l'information de profondeur sur les composantes primaires utilisées dans le tampon de profondeur avec une perte minimale de précision. 6) Dispositif selon la revendication 1 caractérisé par une répartition de charge (29,30,31) répartissant à la fois des objets et des zones d'affichages sur les processeurs graphiques afin de garantir l'ordre de dessin des objets transparent.