Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND DEVICE FOR VIEWING A GRAPHICAL SCENE
Document Type and Number:
WIPO Patent Application WO/2007/148020
Kind Code:
A2
Abstract:
This method of viewing a scene which can be implemented in a computer comprises: - a step (E10) of loading, into an execution memory of this computer, any scene modelled by CAD software; - a step (E20) of merging a navigation engine that is subjective to the first person in the scene; - a step of creating a point of genesis in the scene; and - a step of navigation that is subjective to the first person in the scene from a camera placed initially on the point of genesis.

Inventors:
DILIGENT DANIEL (FR)
Application Number:
PCT/FR2007/051480
Publication Date:
December 27, 2007
Filing Date:
June 20, 2007
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
COMMISSARIAT ENERGIE ATOMIQUE (FR)
DILIGENT DANIEL (FR)
International Classes:
G06T15/70; B25J9/16; G06T17/00
Other References:
JIJUN WANG ET AL: "Interactive simulation of the NIST USAR arenas" 2003 IEEE INTERNATIONAL CONFERENCE ON SYSTEMS, MAN AND CYBERNETICS. SMC'03. CONFERENCE PROCEEDINGS. WASHINGTON, DC, OCT. 5 - 8, 2003, IEEE INTERNATIONAL CONFERENCE ON SYSTEMS, MAN, AND CYBERNETICS, NEW YORK, NY : IEEE, US, vol. VOL. 5 OF 5, 5 octobre 2003 (2003-10-05), pages 1327-1332, XP010669246 ISBN: 0-7803-7952-7
SHIRATUDDIN M. F., TABET W.: "Virtual Office Walkthrough Using a 3D Game Engine" INTERNATIONAL JOURNAL OF DESIGN COMPUTING, vol. 4, no. 2002, 31 décembre 2002 (2002-12-31), pages 1-25, XP002426633
SUTER, JAAP: "Building a 3D Portal Engine"[Online] 19 mars 1999 (1999-03-19), pages 1-6, XP002426634 Extrait de l'Internet: URL:http://www.flipcode.com/articles/portals_issue12.shtml> [extrait le 2007-03-22]
VIRTOOLS SA: "Virtools(TM) Dev" INTERNET CITATION, [Online] 16 mars 2006 (2006-03-16), pages 1-2, XP002458824 Extrait de l'Internet: URL:http://web.archive.org/web/20060316085 629/www.virtools.com/solutions/ products/pdfs/VirtoolsDev_3.pdf> [extrait le 2007-11-16]
LUCKAS V ET AL: "CASUS; an object-oriented three-dimensional animation system for event-oriented simulators" COMPUTER ANIMATION '97 GENEVA, SWITZERLAND 5-6 JUNE 1997, LOS ALAMITOS, CA, USA,IEEE COPUT. SOC. P, US, 5 juin 1997 (1997-06-05), pages 144-150, XP010227332 ISBN: 978-0-8186-7984-1
TOKUNAGA H ET AL: "A robot simulator for manufacturing tasks on a component-based software development and execution framework" ASSEMBLY AND TASK PLANNING: FROM NANO TO MACRO ASSEMBLY AND MANUFACTUR ING, 2005. (ISATP 2005). THE 6TH IEEE INTERNATIONAL SYMPOSIUM ON MONTREAL, QUEBEC, CANADA JULY 19-21, 2005, PISCATAWAY, NJ, USA,IEEE, 19 juillet 2005 (2005-07-19), pages 162-167, XP010838054 ISBN: 978-0-7803-9080-5
Attorney, Agent or Firm:
THEVENET, Jean-Bruno et al. (158 rue de l'Université, Paris Cedex 07, FR)
Download PDF:
Claims:

REVENDICATIONS

1. Procédé de visualisation d'une scène (100) pouvant être mis en œuvre dans un ordinateur (200), ce procédé comportant :

- une étape (ElO) de chargement, dans une mémoire d'exécution (203) de cet ordinateur (200), du contenu d'un fichier informatique (Fl) décrivant une scène quelconque (100) modélisée par un logiciel de CAO (111) ;

- une étape (E20) de fusion, au cours de laquelle on charge, dans ladite mémoire d'exécution (203), le contenu d'un fichier informatique (Ml) comportant des instructions aptes à mettre en œuvre un moteur de navigation subjective à la première personne dans ladite scène (100) ;

- une étape (Sl_43, Sl_46) de création d'un point (106) de naissance dans ladite scène (100) ; et - une étape (Sl_60) de navigation subjective à la première personne dans ladite scène (100) à partir d'une caméra (105) placée initialement (Sl_50) sur ledit point de naissance (106).

2. Procédé de visualisation selon la revendication 1, caractérisé en ce qu'il comporte :

- une étape d'identification du type d'au moins un objet graphique (101, 102, 103, 104) compris dans ladite scène (100) ; et

- une étape au cours de laquelle on attribue à cet objet (101, 102, 103, 104) un comportement générique choisi en fonction de ce type.

3. Procédé de visualisation selon la revendication 2, caractérisé en ce qu'il comporte une étape (Sl_32) au cours de laquelle on associe, à un objet graphique (101), un comportement qui permet d'interdire les collisions entre cet objet (101) et ladite caméra (105).

4. Procédé de visualisation selon la revendication 3, caractérisé en ce que l'on effectue ladite association (Sl_32), uniquement si la sphère englobant ledit objet graphique (101) a un rayon (d) supérieur à une dimension (RMIN) prédéterminée.

5. Procédé de visualisation selon l'une quelconque des revendications 2 à 4, caractérisé en ce que l'on associe (Sl_34), à un objet graphique (102) identifié (E40) de type « animé », un script (S2) apte à animer ledit objet dans la scène en réponse à une commande d'un utilisateur.

6. Procédé de visualisation selon l'une quelconque des revendications 2 à 5, caractérisé en ce que l'on attribue (Sl_36), à un objet graphique (103) identifié (Sl_35) de type « robot », la possibilité d'appartenir à une chaîne cinématique comportant au moins deux objets graphiques de ce type.

7. Procédé de visualisation selon l'une quelconque des revendications 2 à 6, caractérisé en ce que l'on attribue (Sl_37), à un objet graphique (103) identifié (Sl_35) de type « robot », une interface de pilotage articulaire selon des degrés de liberté définis pour ledit objet dans ledit logiciel de CAO (111).

8 Procédé de visualisation selon l'une quelconque des revendications 2 à 7, caractérisé en ce que l'on associe (E39), à un objet graphique (104) identifié (Sl_38) de type « grappin », un script (S3) qui contraint ledit objet en orientation verticale.

9. Procédé de visualisation selon l'une quelconque des revendications 1 à 8, caractérisé en ce que ladite caméra (105) comporte un premier mode d'utilisation, dit « mode solide », dans lequel ladite caméra (105) ne peut occuper, dans ladite scène (100), que des positions qui ne sont partagées par aucun autre objet graphique pour lequel on a interdit (Sl_32) les collisions avec ladite caméra (105).

10. Procédé de visualisation selon l'une quelconque des revendications 1 à 9, caractérisé en ce que ladite caméra mobile (105) comporte un deuxième mode d'utilisation, dit « mode fantôme», dans lequel ladite caméra (105) peut occuper n'importe quelle position dans ladite scène.

11. Procédé de visualisation selon l'une quelconque des revendications 1 à 10, caractérisé en ce que ladite caméra mobile (105) est représentée dans ladite scène (100) par un curseur contextuel en fonction de l'objet graphique (101, 102, 103, 104) pointé par ladite caméra mobile (105).

12. Procédé de visualisation selon l'une quelconque des revendications 1 à 11, caractérisé en ce que l'on affiche, à la demande de l'utilisateur, au cours de ladite étape (Sl_60) de navigation subjective, un bandeau d'information représentatif de l'objet graphique (101, 102, 103, 104) pointé par ladite caméra mobile (105).

13. Procédé de visualisation selon la revendication 12, caractérisé en ce que l'on affiche, à la demande de l'utilisateur, au cours de ladite étape (Sl_60) de navigation subjective, un bandeau d'information représentatif de la distance entre ladite caméra mobile (105) et l'objet graphique (101, 102, 103, 104) pointé par ladite caméra mobile (105).

14. Dispositif (200) de visualisation d'une scène (100) comportant :

- une mémoire d'exécution (203) ;

- des moyens pour charger, dans ladite mémoire d'exécution (203), le contenu d'un fichier informatique (Fl) décrivant une scène quelconque (100) modélisée par un logiciel de CAO (111) ;

- des moyens dits de « fusion » aptes à charger, dans ladite mémoire d'exécution (203), le contenu d'un fichier informatique (Ml) dit « fichier moteur », ce fichier comportant des instructions (Sl_60) aptes à mettre en œuvre un moteur de navigation subjective à la première personne dans ladite scène (100) ;

- des moyens de création d'un point (106) de naissance dans ladite scène (100) ; et

- des moyens de navigation subjective à la première personne dans ladite scène (100) à partir d'une caméra placée initialement sur ledit point de naissance (106).

15. Programme d'ordinateur comportant des instructions pour l'exécution des étapes du procédé de visualisation selon l'une quelconque des revendications 1 à 13 lorsque ledit programme est exécuté par un ordinateur.

16. Support d'enregistrement lisible par un ordinateur sur lequel est enregistré un programme d'ordinateur comprenant des instructions pour l'exécution des étapes du procédé de visualisation selon l'une quelconque des revendications 1 à 13.

Description:

Procédé et dispositif de visualisation d'une scène graphique

Arrière-plan de l'invention Le domaine de l'invention est celui des outils de visualisation de scènes composées d'objets graphiques, par exemple tridimensionnels.

L'invention trouve une application privilégiée, mais non limitative, dans des applications de visualisation de bâtiments ou installations complexes, sur un ou plusieurs niveaux. L'invention peut par exemple être utilisée pour représenter fidèlement une installation nucléaire en vue de son démantèlement.

Elle permet en particulier, à des équipes d'intervention, d'identifier des chemins pour atteindre des zones sensibles, par exemple fortement radioactives, ou mal éclairées. Dans de telles applications, il est important de pouvoir localiser les différents passages dans le bâtiment (couloirs, escaliers, portes,...) mais aussi et avec une très grande précision les équipements sur lesquels les équipes d'intervention doivent intervenir.

De façon connue, les logiciels de conception et d'étude les mieux adaptés, tant pour le génie civil que pour les systèmes mécaniques sont le logiciel de CAO (Conception Assistée par Ordinateur).

L'utilisation de ces logiciels nécessite une formation poussée. Ils ne peuvent donc pas, en pratique, être utilisés simplement par des personnes non spécialistes de la CAO. Ces logiciels utilisés le plus souvent pour concevoir et réaliser des produits industriels ou d'architecture offrent l'avantage de prendre en compte automatiquement un grand nombre de contraintes (résistance des matériaux, capacité d'assemblage, fabrication, etc.).

En contrepartie ces logiciels manipulent des données informatiques volumineuses, et doivent être installés sur des stations de travail puissantes, a fortiori lorsque l'on souhaite déplacer les objets dans des scènes graphiques complexes, les fonctions utilisées pour le calcul des positions de chaque objet avant affichage étant extrêmement gourmand en puissance de calcul.

Ils ne peuvent donc pas être installés sur des ordinateurs portables légers, compatibles avec les exigences des équipes d'intervention précitées en situation d'urgence.

On connaît, par ailleurs, dans le domaine beaucoup moins contraignant de l'infographie, des jeux d'ordinateur dans lesquels un personnage virtuel peut se déplacer dans une scène graphique.

Dans de tels jeux, le moteur graphique 3D, qui gère le déplacement du personnage virtuel, et les éléments graphiques tridimensionnels représentant la scène, sont intégrés en dur dans le même programme informatique. Ces moteurs graphiques sont taillés sur mesure et optimisés pour naviguer parmi des objets graphiques de formes simplifiées, le plus souvent constituées par un ensemble de formes de bases, comme des triangles.

Obiet et résumé de l'invention

L'invention concerne un procédé de visualisation d'une scène. Il peut être mis en œuvre dans un ordinateur et comporte :

- une étape de chargement, dans une mémoire d'exécution de cet ordinateur, du contenu d'un fichier informatique décrivant une scène quelconque modélisée par un logiciel de CAO ;

- une étape de fusion, au cours de laquelle on charge, dans la mémoire d'exécution précitée, le contenu d'un fichier informatique comportant des instructions aptes à mettre en œuvre un moteur de navigation subjective à la première personne dans cette scène ; - une étape de création d'un point de naissance dans la scène; et

- une étape de navigation subjective à la première personne dans la scène à partir d'une caméra placée initialement sur ce point de naissance.

Ainsi, d'une façon générale, l'invention propose d'utiliser une méthode de navigation subjective à la première personne usuelle dans le domaine des jeux d'ordinateur, pour se déplacer ou naviguer dans une scène graphique quelconque obtenue ou modélisée dans un logiciel de

CAO.

Dans le domaine des jeux vidéo, connaît deux modes d'affichage d'une scène.

Dans le premier mode « de vision subjective à la première personne », l'affichage de la scène correspond à la vision du personnage joué. Cette vision serait celle d'un individu dans l'environnement réel.

La vision subjective à la première personne s'oppose à la « vision subjective à la troisième personne » (ou « vision cinéma »), dans laquelle on voit la scène en spectateur comme l'action d'une scène d'un film au cinéma, tout en contrôlant les déplacements du personnage dans l'environnement virtuel.

Pour plus d'informations sur la vision subjective, l'homme du métier pourra se reporter au site Web disponible à l'adresse http://fr.wikipedia.org/wiki/Vision_subjective.

De façon très avantageuse, le procédé peut être mis en œuvre sur un ordinateur léger, par exemple sur un ordinateur portable. Le procédé de visualisation selon l'invention permet donc de se déplacer, de façon très intuitive, comme dans un jeu, dans une scène graphique quelconque et prenant en compte des contraintes industrielles réelles. Il peut être utilisé par un utilisateur, non familier à la CAO, sans aucune formation spécifique. Par exemple, dans l'application précitée de démantèlement d'une installation nucléaire, tous les détails des bâtiments et des équipements nécessaires aux équipes d'intervention peuvent être représentés dans la scène.

Dans ces conditions, on comprend que l'invention constitue, au- delà d'un simple outil de visualisation, un véritable outil d'aide à la décision, qui n'est pas subordonné à la maîtrise de la CAO par son utilisateur final.

Dans un mode particulier de réalisation, le procédé de visualisation selon l'invention comporte une étape d'identification du type d'au moins un objet graphique compris dans la scène et une étape au cours de laquelle on attribue à cet objet, un comportement générique en fonction du type de cet objet.

Cette caractéristique permet avantageusement d'associer des comportements aux objets graphiques de la scène. Ces comportements peuvent, dans une application de préparation d'une opération de démantèlement d'une installation

nucléaire, être liés à la navigation proprement dite, par exemple pour la gestion des collisions, l'ouverture de portes dans le bâtiment, mais aussi des comportements propres à la robotique (pilotage articulaire selon degrés de liberté et accrochage de mécanismes complexes). Dans un mode particulier de réalisation de l'invention, les types prédéterminés d'objet sont les types « Obstacle », « Animé », « Grappin », et « Robot ».

Les objets obstacles au sens de l'invention sont des objets avec lesquels la caméra est susceptible d'entrer en collision. Dans un mode préféré de réalisation de l'invention, on attribue à chaque objet obstacle un comportement qui permet d'interdire les collisions entre cet objet et la caméra.

Conformément à un mode préféré de réalisation, les objets obstacles sont des objets dont la sphère englobante est d'un diamètre supérieur ou égal à un paramètre prédéfini et modifiable par l'utilisateur. Ce paramétrage permet avantageusement de limiter le nombre d'obstacles et offre un gain de calcul considérable lors des calculs des collisions de la caméra, ces calculs devant être effectués lors de chaque déplacement.

Les objets animés sont identifiés par le fait qu'une animation de t/pe « interpolation d'images clés » leur est affectée.

Cette animation est définie dans le logiciel CAO.

Dans un mode particulier de réalisation, on affecte à chaque objet animé un script générique qui permet d'animer l'objet dans la scène en réponse à une commande utilisateur, émise par exemple par les boutons de contrôle de la souris. Un tel mécanisme permet par exemple la visualisation de l'ouverture et de la fermeture d'une porte.

Les objets grappins sont identifiés par la présence d'un paramètre utilisateur défini dans le logiciel de CAO.

Dans un mode particulier de réalisation, on affecte aux objets grappins, un script qui les contraint en orientation verticale lors des mouvements de l'objet ou de l'ensemble de la chaîne cinématique dont ils font partie.

Dans un mode particulier de réalisation, les objets robots sont des chaînes cinématiques d'au moins deux objets qui ont des degrés de liberté définis dans le logiciel de CAO, la transcription de ces degrés de liberté étant transcrite en tableaux de données associés aux objets.

Dans ce mode de réalisation, tout objet associé à un tel tableau est identifié comme objet robot.

Dans un mode particulier de réalisation, on attribue à chaque objet robot, une interface de pilotage articulaire selon les degrés de liberté définis pour cet objet dans le logiciel de CAO.

Dans un mode particulier de réalisation de l'invention, on se place, au cours de l'étape de navigation subjective, du point de vue d'une caméra mobile liée au point de naissance, cette caméra comportant un premier mode d'utilisation, dit « mode solide », dans lequel elle ne peut occuper, dans la scène, que des positions qui ne sont partagées par aucun objet graphique de la scène pour lequel on a interdit les collisions avec la caméra.

Ainsi, dans le mode solide, la caméra mobile se déplace dans le bâtiment comme le ferait un humain dans le monde réel, puisqu'elle doit, par exemple pour passer d'une pièce à une autre, emprunter un chemin ouvert (couloir, porte ouverte).

Dans un autre mode de réalisation compatible avec le premier, l'invention prévoit également un mode d'utilisation de la caméra mobile dit "mode fantôme" dans lequel la caméra peut occuper n'importe quelle position dans la scène.

Ce mode de réalisation permet d'aller très rapidement d'une pièce à une autre, en passant par exemple à travers les cloisons.

Dans un mode préféré de réalisation de l'invention, la caméra mobile est représentée dans la scène par un curseur contextuel en fonction de l'objet graphique pointé par la caméra mobile.

Dans un mode de réalisation préféré, on affiche, au cours de l'étape de navigation subjective, un bandeau d'information représentatif d'une distance entre la caméra mobile et l'objet graphique pointé par cette caméra. Dans un mode de réalisation préféré, on affiche, au cours de l'étape de navigation subjective, un bandeau d'information représentatif d'une localisation de la caméra mobile dans la scène (pièce « X », « couloir Y », « escalier Z », ...).

Dans un mode particulier de réalisation, les différentes étapes du procédé de visualisation sont déterminées par des instructions de programmes d'ordinateurs.

En conséquence, l'invention vise aussi un programme d'ordinateur sur un support d'informations, ce programme étant susceptible d'être mis en œuvre dans un dispositif de visualisation ou plus généralement dans un ordinateur, ce programme comportant des instructions adaptées à la mise en œuvre des étapes d'un procédé de visualisation tel que décrit ci-dessus.

Ce programme peut utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable.

L'invention vise aussi un support d'informations lisible par un ordinateur, et comportant des instructions d'un programme d'ordinateur tel que mentionné ci-dessus. Le support d'informations peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement magnétique, par exemple une disquette (floppy dise) ou un disque dur.

D'autre part, le support d'informations peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Le programme selon l'invention peut être en particulier téléchargé sur un réseau de type Internet.

Alternativement, le support d'informations peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé en question. L'invention vise également un dispositif de visualisation d'une scène comportant :

- une mémoire d'exécution;

- des moyens pour charger, dans cette mémoire d'exécution, le contenu d'un fichier informatique décrivant une scène quelconque modélisée par un logiciel de CAO ;

- des moyens de fusion aptes à charger, dans la mémoire d'exécution, le contenu d'un fichier informatique comportant des instructions aptes à mettre en œuvre un moteur de navigation subjective à la première personne dans la scène ; - des moyens de création d'un point de naissance dans la scène ; et

- des moyens de navigation subjective à la première personne dans la scène à partir d'une caméra placée initialement sur ce point de naissance.

Les caractéristiques et avantages du dispositif de visualisation selon l'invention sont identiques à ceux du procédé mentionnés ci-dessus et ne seront pas rappelés ici.

Brève description des dessins

D'autres caractéristiques et avantages de la présente invention ressortiront de la description faite ci-dessous, en référence aux annexes et dessins qui en illustrent un exemple de réalisation dépourvu de tout caractère limitatif et dans lesquels :

- l'annexe 1 est un script en pseudo code d'un moteur de navigation conforme à l'invention dans un mode préféré de réalisation ;

- l'annexe 2 est un script en pseudo code d'un contrôleur d'animation conforme à l'invention dans un mode préféré de réalisation ;

- l'annexe 3 est un script en pseudo code décrivant un comportement pouvant être associé à un objet grappin dans un mode de réalisation de l'invention ;

- l'annexe 4 est un script en pseudo code permettant de définir un curseur contextuel utilisé dans un mode de réalisation de l'invention ;

- l'annexe 5 est un script en pseudo code permettant de définir un bandeau d'information utilisé dans un mode de réalisation de l'invention ;

- la figure IA représente un environnement de développement CAO ;

- la figure IB représente un environnement de développement d'un moteur graphique conforme à l'invention;

- la figure 2 représente une scène graphique pouvant être visualisée par un procédé et un dispositif de visualisation selon l'invention ;

- la figure 3 représente un dispositif de visualisation selon l'invention dans un mode particulier de réalisation ; et

- la figure 4 représente, sous forme d'organigramme, les principales étapes d'un procédé de visualisation selon l'invention dans un mode particulier de réalisation.

Description détaillée d'un mode de réalisation

Sur la figure IA on a représenté une station de travail 500 adaptée à mettre en œuvre un logiciel de CAO 111. Dans le contexte de l'invention le logiciel de CAO 111 est utilisé pour créer un fichier Fl décrivant une scène graphique 100.

Ce fichier Ml est mémorisé dans une unité de stockage 501 de la station de travail 500.

Dans le mode de réalisation décrit ici, ce logiciel de CAO est le logiciel 3D Studiomax commercialisé par la société AutoDesk (http://www.autodesk.fr).

Dans ce mode de réalisation, le logiciel de CAO 111 génère des fichiers de type « .nmo ». Ces fichiers contiennent :

- une description géométrique (maillage, texture matériaux,...) des objets de la scène graphique 100 ;

- éventuellement l'animation de ces objets ; et

- la description des degrés de liberté des chaînes cinématiques.

Sur la figure IB on a représenté une station de travail 502 qui comporte l'environnement de développement VirtoolsDev de la société Virtools f http://www.virtools.com) et référencé 112.

Cet environnement de développement 112 permet d'associer aux objets graphiques d'un fichier d'extension « .nmo » des scripts de comportement spécifiques.

Lorsque l'on réalise cette « association », on dit de façon équivalente que l'on enrichit le fichier Fl (extension « .nmo ») généré par le logiciel de CAO 111.

Les fichiers enrichis par l'environnement de développement 112 ont l'extension « .cmo » ou « .vmo », selon que ces fichiers sont cryptés ou non. Pour la suite de la description, on référence Fl, le fichier informatique décrivant la scène 100 modélisée dans le logiciel de CAO 111

(format « .nmo ») éventuellement enrichi par les scripts de comportement (extensions « .nmo » ou « .cmo ») à l'aide de l'environnement VirtoolsDev 112.

Dans l'exemple décrit ici, la scène 100 comporte quatre objets graphiques référencés respectivement 101 à 104 représentés à la figure 2.

Dans l'exemple décrit ici, nous supposerons que quatre types prédéterminés d'objets sont définis dans le logiciel de CAO 111 et que : l'objet graphique 101 est de type « statique » ; - l'objet graphique 102 est de type « animé » ; l'objet graphique 103 est de type « robot » ; et l'objet graphique 104 est de type « grappin».

Nous allons maintenant décrire comment l'invention permet de mettre en œuvre une navigation subjective à la première personne dans la scène 100.

A cet effet on utilise un moteur de navigation générique dont le script Sl a été défini dans l'environnement de développement 112, ce script étant contenu dans un fichier informatique d'extension « .vmo », référencé Ml, et mémorisé dans une unité de stockage 503 de la station de travail 502.

Le script Sl est donné en pseudo-code à l'annexe 1. Il comporte :

- une instruction Sl_l pour créer une caméra 105 ;

- des instructions Sl_2, Sl_31 et Sl_32 pour définir un groupe d'objets obstacles qui regroupe les objets graphiques de la scène 100 dont la sphère englobante a un rayon supérieur à la valeur R M i N ;

- des instructions Sl_33 et Sl_34 pour associer un script S2 aux objets animés ;

- des instructions Sl_35 à Sl_37 pour identifier les objets robots, c'est-à- dire les objets pour lesquels on a défini un degré de liberté dans le logiciel de CAO 111 et pour placer ces objets dans un groupe d'objets pouvant être intégrés dans une chaîne cinématique complexe, et dans un groupe d'objets candidats supportant les mécanismes de pilotage articulaire ;

- des instructions Sl_38 et Sl_39 pour associer un script S3 aux objets grappins ;

- des instructions Sl_41 à Sl_44 pour identifier un point de naissance déjà défini dans la scène ou Sl_46, Sl_47 pour créer et positionner un point de naissance au centre de la scène ;

- une instruction Sl_50 pour placer la caméra 105 au point de naissance ; et

- une instruction Sl_60 pour démarrer la navigation subjective à la première personne à partir de la caméra 105.

Dans le mode de réalisation décrit ici, le fichier Ml comporte aussi un script S2 dont le pseudo-code est donné à l'annexe 2. Ce script S2 est associé par le script Sl aux objets animés

(étape Sl_34). Il comporte :

- des instructions S2_12, S2_13 pour décélérer l'animation de l'objet lorsque l'utilisateur appuie sur le bouton gauche de la souris ; et

- des instructions S2_14, S2_15 pour accélérer l'animation de l'objet lorsque l'utilisateur appuie sur le bouton droit de la souris.

Dans le mode de réalisation décrit ici, le fichier Ml comporte aussi un script S3 dont le pseudo-code est donné à l'annexe 3.

Ce script S2 est associé par le script Sl aux objets grappins (étape Sl_39). Il comporte ; - des instructions S3_10 à S3_12 pour identifier le père de l'objet, le cas échéant au plus haut niveau de l'arborescence; et

- une instruction S3_21 pour orienter l'objet grappin selon la direction verticale.

Dans le mode de réalisation décrit ici, le fichier Ml comporte aussi un script S4 dont le pseudo-code est donné à l'annexe 4. Ce script S4 définit un curseur contextuel. Il comporte :

- une instruction S4_21 pour détecter un changement d'objet pointé par la souris ;

- une instruction S4_23 pour donner une première texture au curseur de la souris si l'objet pointé est animé ; et

- une instruction S4_25 pour donner une deuxième texture au curseur de la souris si l'objet pointé est statique.

Dans le mode de réalisation décrit ici, le fichier Ml comporte aussi un script S5 dont le pseudo-code est donné à l'annexe 5.

Ce script S5 définit un bandeau d'informations permettant d'indiquer la distance entre la caméra mobile 105 et l'objet graphique pointé par cette caméra. Il comporte :

- des instructions S5_10 à S5_22 pour entrer ou sortir du mode d'affichage selon l'appui sur la touche « I » du clavier ;

- une instruction S5_31 pour identifier l'objet graphique placé sous la caméra 105 ; et

- une instruction S5_32 pour afficher la distance entre la caméra 105 et cet objet. La figure 3 représente un dispositif de visualisation 200 conforme à l'invention.

Ce dispositif 200 est constitué par un ordinateur portable. Il pourrait aussi être constitué par un ordinateur de bureau.

Il comporte un programme d'ordinateur (ou logiciel) 201 apte à mettre en œuvre un procédé de visualisation conforme à l'invention et dont les principales étapes sont données à l'organigramme de la figure 4.

De façon très avantageuse, il n'est pas nécessaire pour mettre en œuvre le procédé de visualisation selon l'invention d'installer l'environnement de développement 112 dans l'ordinateur 200, seuls le moteur générique Ml, le programme de visualisation 201 et le fichier de scène 100 étant requis.

Conformément à l'invention, le procédé de visualisation mis en par le logiciel 201 comporte une première étape ElO de chargement, dans une mémoire d'exécution 203 de l'ordinateur 200, du contenu d'un fichier informatique Fl décrivant la scène 100 modélisée par un logiciel de CAO

111.

Cette première étape ElO de chargement est suivie par une étape E20 de fusion, au cours de laquelle on charge, dans la mémoire d'exécution (203), le contenu du fichier informatique Ml. Comme déjà décrit ce fichier Ml comporte en particulier des instructions aptes à mettre en œuvre un moteur de navigation subjective à la première personne dans la scène 100.

Consécutivement à la fusion, le script Sl du fichier Ml est mis en œuvre. Ainsi, au cours d'une boucle constituée par les instructions

Sl_30 à Sl_39 on examine chaque objet graphique 3D compris dans la

scène 100, on détermine leur type et on leur attribue un comportement spécifique.

Plus précisément, on teste d'abord le rayon de la sphère englobante de l'objet (instruction Sl_31). Au-delà d'un rayon R M i N on inclut (instruction Sl_32) cet objet dans le groupe des obstacles pour les mouvements du point de vue.

Ensuite on vérifie (instruction Sl_33) si l'objet comporte une animation et si c'est le cas on lui adjoint le script S2 (instruction Sl_34).

Ensuite on vérifie (instruction Sl_35) si l'objet est un robot et si c'est le cas on inclut (instructions Sl_36 et Sl_37) cet objet dans le groupe des objets candidats pour un assemblage robotique et pour un pilotage articulaire.

Ensuite on vérifie (instruction Sl_38) si l'objet est un grappin et si c'est le cas on lui adjoint (instruction Sl_39) le script S3 de comportement gravitaire.

Cette boucle est suivie par une étape (instructions Sl_41 à Sl_47) au cours de laquelle on créé un point de naissance 106 dans la scène 100.

Ce point peut être identifié (instruction Sl_42) dans la scène 100 ou créé (instruction Sl_46) et placé (instruction Sl_46) au centre de la scène 100.

Enfin la caméra mobile 105 est positionnée sur le point de naissance 106 (instruction Sl_50) et la navigation subjective peut s'effectuer (instruction Sl_60). Dans le mode de réalisation décrit ici, la caméra peut être utilisée en mode solide ou en mode fantôme.

Dans le mode particulier de réalisation décrit, l'apparence du curseur de la caméra mobile 105 est une apparence contextuelle régie par le script S4 déjà décrit.

Comme déjà décrit en référence à l'annexe 5, le script S5 permet l'affichage et le masquage (par appuis successifs sur la touche « I » du clavier) d'un bandeau d'informations qui indique la distance entre la caméra 105 et l'objet graphique en dessous de cette caméra.

ANNEXE 1

SCRIPT Sl

Sl. _1 Créer objet caméra

Sl. 2 Créer groupe « Obstacles »

Sl. JO Pour chaque objet 3D dans Scène { si. .31 Si SphereEnglobante (objet) > RMIN {

Sl. _32 AjouterGroupe(« Obstacles », objet) ; }

Sl. _33 Si (objet.animation) != NULL {

Sl. _34 AjouterScript(S2, objet) ; } si. _35 Si (objet. type) == « Robot » {

Sl. _36 AjouterModule(« Assemblage Robotique », objet)

Sl. _37 AjouterlVlodule(« Pilotage Articulaire », objet) ;}

Sl. _38 Si (objet. type) == « Grappin »{

Sl. _39 AjouterScript(S3, objet) ; } }

Sl. _40 Nouveau Objet Fantôme Point_Naissance = NULL ;

Sl. .41 Pour chaque objet Fantôme dans Scène {

Sl. 42 Si (objet. nom) = Point_Naissance {

Sl. _43 Point_Naissance = objet ;

Sl. _44 Fin boucle ; } }

Sl. _45 Si Point_Naissance == NULL {

Sl. _46 Créer (Point_Naissance) ;

Sl. _47 Point_Naissanœ.position = centre ; }

Sl_ _50 Placer(camera, Point_Naissance) ;

Sl 60 Navigation subjective à la première personne (caméra) ;

ANNEXE 2 :

SCRIPT S2

S2_10 Vitesse_Animation = Moteur.vitesse_animation

S2_ll Tant que (Souris. Bouton_actif && Objet sélectionné) {

S2_12 Si (Bouton == Gauche) {

S2_13 Animation_Pourcent -= Vitesse_Animation ; }

S2__14 Si (Bouton == Droit) {

S2_15 Animation_Pourcent += Vitesse_Animation ; } }-

ANNEXE 3 :

SCRIPT S3

S3_ _10 Tant que (parent != NULL) {

S3_ JLl parent = ObtentionParent(objet) ;

S3. _12 racine = parent ; }

S3_ _20 Pour chaque image {

S3. _21 objet.orientation_verticale=parent.orientation_verticale ;

S3 22 Dessiner scène }

ANNEXE 4 :

SCRIPT S4

S4_ .10 Pour chaque image {

S4_ _21 Si changement objet pointé {

S4_ _22 Si (objet.animation) {

S4_ . 23 curseur.texture= TEXTURE_ANIME ;

S4_ _24 } sinon {

S4_ .25 curseur.texture= TEXTURE_NAVIG ;

S4_ . 26 }

S4_ . 27 }

S4_ _30 Dessiner scène

S4 31 }

ANNEXE 5 :

SCRIPT S5

S5_10 Afficher = Faux

S5_ll Boucle {

S5_20 Si Clavier = « I » {

S5_21 Si (Afficher == FAUX) { Afficher = VRAI; }

S5_22 sinon { Afficher = FAUX;} }

S5_30 Si (Afficher == VRAI) {

S5_31 LancerRayon(objet, -Y) ;

S5_32 Afficher(« Info », intersection_objet. position);

S5_33 } sinon { Masquer(« Info »); }

S5 40 >