DecouverteRapideOMK

Un article de OpenMASKWiki.

Jump to: navigation, search

Sommaire

Découvrir OpenMASK

Nous proposons une façon rapide de découvrir OpenMASK par des exemples d'applications simples et progressives. Nous conseillons en préalable de consulter une introduction aux concepts d'OpenMASK dans cette page.
Cette première approche de construction d'applications OpenMASK, basée sur la réutilisation, ne nécessite aucune programmation. Il suffit d'abord de comprendre les fichiers de configuration qui seront exploités par notre application de référence. Ensuite vous pourrez modifier et ré-utiliser ces fichiers à votre convenance. L'application de référence est une procédure principale C++ qui convient à la majorité des applications envisageables.

La découverte se fait en deux phases dans un environnement windows 7 :

  • le téléchargement de deux packages (code + fichiers de configuration) depuis la forge OpenMASK et leur installation sur une machine contrôlée par Windows 7. Des tests de bonne installation sont proposés.
  • l'exécution d'une série d'applications exemples démontrant les différentes caractéristiques et possibilités d'OpenMASK.

Installation

Vous allez sur la [forge OpenMASK4].
Dans la partie Fichiers, vous avez deux packages à télécharger :

  • packOMK-windows7-32bits : package d'exécution d'OpenMASK sous Windows 7. Il inclut Ogre 1.7 et MPI.
  • ConfigFile-Tutorial : ensemble de fichiers de configuration qui montre par des exemples la syntaxe de nos fichiers de configuration et l'organisation des OSO pour une application simple visualisant un monde virtuel.

packOMK-windows7-32bits

Actuellement :

  • .zip à décompresser
  • lire le Readme pour positionner les bonnes variables d'environnement (avec Rapid Environment Editor par exemple)
  • installer MPI à partir de l'installateur fourni
  • installer le distribuable de Visual Studio 2010 en 32 bits

ConfigFile-Tutorial

C'est un simple fichier .zip qu'il suffit de décompresser là où vous le souhaitez.

Pack OMK

Ce pack a été compilé sur windows 7 64 bits mais pour une exécution en 32 bits.

Variables d'environnement

L'installation a donc positionné les variables d'environnements suivantes. Elles sont obligatoires pour les exécutions sous MPI.

DSI_HOME		%OMKP32HOME%\DSI
HBT_HOME		%OMKP32HOME%\HBT
ICONV_HOME		%OMKP32HOME%\iconv-1.9.2.win32
LIBXML2_HOME	        %OMKP32HOME%\libxml2-2.7.7.win32
MPICH2_HOME		C:\MPICH2_32     (suggestion)
OBT_HOME		%OMKP32HOME%\OBT
OGRE_HOME		%OMKP32HOME%\OgreSDK_vc10_v1-7-2
OMK_FCOLLADA_HOME	%OMKP32HOME%\OMKFCollada
OMK_HOME		%OMKP32HOME%\OpenMASK
OMK_OGRECOLLADA_HOME    %OMKP32HOME%\OMKOgreCollada
OMKP32HOME		C:\OMK-Pack32    (suggestion)
OMKWM4_HOME		%OMKP32HOME%\WildMagic4
PATH			%DSI_HOME%\lib;%HBT_HOME%\lib;%ICONV_HOME%\bin;%LIBXML2_HOME%\lib;%LIBXML2_HOME%\bin;%MPICH2_HOME%\bin;
-                       %OBT_HOME%\lib;%OGRE_HOME%\bin\debug;%OGRE_HOME%\bin\release;%OMK_FCOLLADA_HOME%\lib;%OMK_OGRECOLLADA_HOME%\lib;
-                       %OMK_HOME%\bin;%OMK_HOME%\lib;%OMKWM4_HOME%\lib

Tests d'installation

Une fois le pack installé, vous disposez alors dans %OMK_HOME% du dossier x-Tests Multi pour vérifier votre installation :
Dans le sous dossier 2visus vous avez trois tests :

  • 1visu_mono_sansmpi : test sans MPI notamment pour vérifier le bon fonctionnement de ogre (lancer l'exécutable 1visu_mono_sansmpi.bat)
  • 1visu_mono : test avec les deux processus sur la machine d'installation (mettre à jour le nom de cette machine dans le fichier .omk, ou le remplacer par localhost)
  • 2visus : test avec deux machines disposant de la même installation (mettre à jour les noms des deux machines ou utiliser encore localhost si vous n'avez qu'une machine)

L'application de test visualise et anime une trottinette :

  • p fait avancer en incrémentant la vitesse de 1
  • o fait reculer en décrémentant la vitesse de 1
  • ESC quitte l'exécution

Le premier test doit fonctionner directement.
Les tests suivants nécessitent l'installation de MPI.

Tutoriel "Configuration OMK"

Les deux répertoires de ce tutoriel vous présentent des applications OpenMASK, d'abord dans un contexte mono-processus, puis dans un contexte multi-processus avec MPI. Vous retrouverez également ces deux répertoires dans le répertoire "Sample"/2Tutoriels/Decouverte" de de la forge OpenMASK.
L'apprentissage consiste à lire et comprendre le fichier de configuration associé à chaque exécutable.
Chaque lancement d'exécutable est de la forme  :

OMKReferenceApplication2_d -o fichier-config-xx.omk

OMKReferenceApplication2, dans sa version debug ou sa version release, est un exécutable qui peut convenir à la plupart des applications OpenMASK, à la condition d'écrire le fichier de configuration convenant à vos besoins.
Les commentaires explicatifs des caractéristiques d'OpenMASK sont insérés dans les fichiers de configuration. Il est important de suivre la progression proposée car tous les commentaires ne sont pas systématiquement reportés dans le fichier de l'étape suivante.

A_une_visu_mono_sansmpi_scene_mini

Ce répertoire, a but pédagogique, présente différentes applications simples, mono processus donc sans nécessiter MPI.

A1_best_mini

Premier exemple "cas d'école" d'un monde virtuel vide. Seul un repère, considéré comme un instrument, est affiché par le service de visualisation.
Ce fichier montre :

  • L'OSO contrôleur OpenMASK
    • Le système de trace à l'exécution. Il peut être activé ou non. On peut choisir le niveau de trace via des identifieurs.
    • Le mécanisme de plugin pour accéder à du code supplémentaire : nouvelles classes d'OSO, de visual-objects, d'extensions
  • La création d'un OSO avec sa fréquence et ses paramètres initialisés par l'utilisateur :
    • Un visualiseur Ogre 3D (OSO de service) avec, géré uniquement par cet OSO et indépendamment du monde virtuel
      • une caméra fixe
      • et un instrument : un repère à l'origine du monde

L'application s'arrête par Ctrl C dans la fenêtre de commande

A2_best_mini

Autre exemple "cas d'école" d'un monde virtuel figé avec un seul objet. Le service de visualisation affiche en plus un repère, considéré comme un instrument. Ce fichier montre :

  • Un OSO, objet du monde virtuel, qui est visualisé par l'OSO de service de rendu
  • La connexion entre le graphe de scène du service de rendu et un paramètre de l'OSO du monde virtuel

L'application s'arrête par Ctrl C dans la fenêtre de commande

A3_mini

Exemple de scène minimale avec un objet animé Ce fichier montre :

  • Un objet du monde virtuel asservi à une position fournie par un autre OSO de l'application
  • Ce deuxième OSO n'a pas de représentation visuelle
  • Un troisième objet du monde virtuel qui lui est visualisé par une bande de sol

L'application s'arrête par Ctrl C dans la fenêtre de commande

A4_mini+

Exemple de scène minimale animée et contrôlable Ce fichier montre :

  • La scène utilisée en A3
  • le mécanisme d'extension d'OSO
    • Une extension du code de la classe trajectory pour contrôler la variation de vitesse en plus ou en moins grâce aux touches P ou O
    • Des extensions spécialisées pour l'OSO visualiseur
      • arrêt de l'application par la touche ESCAPE
      • contrôle de la camera par clavier et souris
      • affichage des infos ogre en overlay de la fenêtre par la touche c

L'application s'arrête par ESC dans la fenêtre Ogre
La vitesse augmente avec la touche p et diminue avec o
La caméra se contrôle avec la souris
Les infos "debug ogre" s'affichent par la touche c

B_visu_mono_mpi_scene_mini

Ce repertoire presente des applications multi processus

Usage de MPI

Au preallable du lancement de votre application, vous devez lancer MPI

smpd -stop
smpd -d 0

B1_mini+

Une application OpenMASK distribuée qui démontre :

  • en plus de A4_ sans mpi
  • la repartition des OSO sur plusieurs processus
  • le visualiseur sera sur le processus 2 et les autres OSO sur le processus 1

L'application s'arrête par ESC dans la fenetre Ogre
La vitesse augmente avec la touche p et diminuie avec o
La caméra se controle avec la souris
Les infos "debug ogre" s'affichent par la touche c

B2_mini+

Une application distribuée avec deux visualiseurs indépendants qui démontre :

  • en plus de B1_ mpi
  • utilisation de deux visus independantes sur deux processus différents
  • choix de la fenetre de controle clavier-souris selon les cas
  • pas d'instrument dans le deuxième visualiseur :
  • on peut donc choisir des aspects visuels différents dans chacun des différents visualiseurs

L'application s'arrête par ESC dans la fenetre de visualiseur 2
La vitesse augmente avec la touche p et diminuie avec o depuis le visualiseur 1
Chaque caméra se controle avec la souris de facon independante
Les infos "debug ogre" s'affichent par la touche c depuis le visualiseur 2

Navigation