Forum Flightgear France

Une communauté prend son envol

Vous n'êtes pas identifié(e).

Annonce

Futur nouvel inscrit, tu dois au préalable lire l'intégralité des 10 articles des règles, s'il te plaît. Tout nouveau compte qui ne respecte pas les règles sera supprimé par l'administration.

#1 19/09/2007 19:19:17

Gérard Robin
Un grand membre aujourd'hui disparu.
Lieu : Vaucluse LFMO ou LFNH ou LFXI
Inscription : 28/12/2006
Messages : 236
Site Web

Intégration multi-formats dans FG, spécificités avec OpenSceneGraphe

L' intégration multi-formats dans FG, les spécificités avec OpenSceneGraphe.


FlightGear qui existe  depuis de nombreuses années possédait déjà une organisation interne et des fonctionalités qui offraient une flexibilité remarquable.
Ces fonctions, auxquelles d'autres ont été ajoutées, ont été améliorées, et avec le temps, nous donnent le FlightGear que vous connaissez tous.

Sa structure qui n'est pas monolithique, mais ouverte, permet de le raccorder à des librairies externes, spécialisées  dans le domaine graphique (mais on pourrait imaginer d'autre spécialités) ce fut d'abord Plib qui a longtemps été en pointe, puis maintenant OpenSceneGraphe, lequel est dans sa période de pleine croissance.

OpenSceneGraphe au lieu de Plib , pour l'instant ne modifie en  rien, les fonction fondamentales qui existent dans FlightGear.
Pour faire un model complet, ces fonctions  sont là et elle peuvent être activées pour l'essentiel au moyen de fichiers XML,
=> l'animation d'un train d'atterrissage, l'insertion d'un autre model/objet (tel qu'un instrument), la sélection ou non d'un model/objet selon telle ou telle circonstance etc....

Un objet 3D  de base n'est pas nécessairement  du format .ac (AC3D) il peut être d'un autre format  .3ds   .dxf  .md2  et bien d'autres formats, et comme nous somme dans le domaine graphique cela est géré par la fameuse librairie graphique externe, donc Plib ou OpenSceneGraphe selon la version de FlighGear.

Pour ce que concerne OpenSceneGraphe , les créateurs de cette "chose" ont imaginés un format spécifique, propriétaire,  pour les objets 3D (un de plus , beuh.....), sans entrer dans le détail , sachez seulement que le fichier .osg peu porter en même temps le model ,  par exemple  l'avion,  la définition des effets que l'on  souhaite obtenir  =>effet "Raytracing" , ombres portées, projection de particules, déformations, ...........et j'en oubli, et des programmes auxiliaires   (un vrai garde manger).

Bien entendu ce format .osg n'est pas exploitable par la librairie PLib.

Seule la version FG avec OpenSceneGraphe sait lire ce format, et bien entendu les autres format connus , .dxf .3ds .md2  ..etc
Le format  .ac,  qui n'était pas reconnu sous OpenSceneGraphe à l'origine,  a dû être spécifiquement ajouté dans cette libraire, par nos expert développeurs de FlighGear (il suffit d'être abonné au devel mail OpenSceneGraphe, pour voir les échanges)

A ce jour, du point de vue strictement fonctionnel FlightGear n'a pas changé il sait lire les formats que la librairie externe sait lire et bien entendu les développeurs savent comment rédiger un fichier XML pour charger les models 3D.

si vous avez sous la main un model 3D au format .dxf ou .lwo    faite l'expérience, c'est très simple.



Le Fichier format OSG

Il peut contenir, comme nous l'avons dit précédemment, énormément de composants de nature diverses, et à la lecture des contenu des quelques exemples, qui accompagnes la distribution de la librairie OpenSceneGraph, nous notons:

====>Fichier "cessnafire.osg" Il y a un dessin 3D  d'avion  (cessna) lequel est accompagné par ses propres  effets spécifiques

Nous lisons dans l'ordre de contenu du script
=>Sa position dans l'espace , et les déformations éventuelles (Matrix)
=>La lumière et couleurs (Rendering et Material)
=>Le traitement des effets de surfaces (Shader)
=>Le model lui-même (Primitives)
=>La définition d'un objet complet et dépendant le feu = particules (Matrix et suivant)



Cet exemple est déjà riche d'enseignement , car il s'agit là d'un ensemble d'objets, placés dans un seul fichier, et,  si ce fichier peut être lu et intégré dans un ensemble plus vaste sous FlightGear , il n'y a pas d'entrée pour permettre une animation interactive par le moyen de commandes flightgear/property.xml.

=> exemple /1 si l'on veut ANIMER les ailerons du Cessna cela est IMPOSSIBLE, dans l' état  (cette impossibilité fut déjà mentionnée sur le forum Jabbert avec un interlocuteur sympa).

=> exemple /2, l'objet effet particules telle que placé , ne peut pas  être contrôlé (présence/absence) de façon externe,  donc sous FlightGear, une seule solution le sortir de là, en faire un fichier .osg à part.

Ce fichier sera donc lu et traité comme n'importe quel autre objet 3D, mais ATTENTION, il n'est pas possible de gérer de l'extérieure sont animation interne, le model reste en quelque sorte figé aux paramètres qu'il contient (on aimerait faire un effet de transition, allonger ou raccourcir, jouer sur les couleurs etc..)

Tous les objets 3D peuvent être eux même animés dans FlighGear (en fait c'est SimGear qui fait le travail)  quelque soit le format d'origine , qu' il s'agisse  d'objets au format inerte ou qu'il s'agisse d'objets eux même animés de façon propre , c'est le cas au moins de .md2 et bien entendu de .osg.

Pour OSG un exemple: le Catalina il y une couche d'animation, scale , rotate ,translate sous XML qui vient se sur-ajouter aux animations internes  qui elles sont définies dans le fichier .osg lui même donc une animation dans une animation , malheureusement il n' y a AUCUNE INTERACTION entre elles (donc les données de bases internes de l'objet OSG restent figées).



====>Fichier "cow.osg"   Cette jolie vache nous montre les possibilité d'un "mapping" de texture
le contenu du script est dans l'ordre
=>La lumière et couleurs (Rendering et Material)
=> le mapping de la texture (texture)
=>Le model lui-même (Primitives)

On découvre  un effet "chrome"
Malheureusement , pour l'instant tel que défini cet effet ne sort pas du modèle 3D. ( et seul le code interne FG pourrait reprendre la fonction et l'appliquer à nos models, même si cela est pour partie, fait ce n'est pas aussi beau)


====>Fichier "glsl_confetti.osg"   une projection de confettis
dans l'ordre
=>La lumière et couleurs (Rendering et Material)
=>un petit programme interne (program)
=>Le model lui-même (Primitives)

Cet exemple est tout particulièrement intéressant, il nous montre que l'on peu insérer dans le fichier osg un  code programme qui agit directement sur le model 3D.

Donc par cet exemple, avec un programme spéciale , peut-être, peut espérer (rêvons) une communication avec le monde extérieur en l'occurrence l'espace contrôlé par FlightGear.

Vous pourrez noter qu'il y a dans les autres exemples de fichiers "glsl_........osg"  du code programme également

Le fichier osgcool.osg est un autre exemple intéressant de l'usage de osgParticle::----------

Et bien d'autres exemples qui n'ont pas vraiment retenus mon attention.


J'espère que ce petit mémo vous mettra l'eau à la bouche et vous encouragera a regarder tout les exemples qui existent, et,
Que vous alimenterez vous même le sujet.

L'afichage des exemples se fait grâce au programme indépendant osgviewer que vous avez dans votre "path" system
Ex: osgviewer cow.osg

Il existe également un outils  pour construire des fichiers osg (osgedit) , mais incomplet, et pour mes besoins totalement inexploitable.


Pour information quelque liens:

Seulement des concepts généraux
www.calit2.net/~jschulze/classes/cse291/slides/slides-2006-10-19.ppt

Spécialisé pour les particules, une excellente doc que j'ai déjà largement exploitée
http://www.openscenegraph.org/projects/ … cleEffects

Un autre particules
http://www.cs.clemson.edu/~malloy/cours … icles.html

Mais en fait un site complet et intéressant pour la compréhension des scripts OSG
http://www.cs.clemson.edu/~malloy/cours … 007/tutor/


Pour la compréhension  des concepts globaux un "Slides" sur OpenSG (attention OpenSG n'est pas OpenSceneGraph , mais les concepts restent le mêmes).
ET ce "Slides" est en français.
www.labri.fr/perso/preuter/imageSynthesis/sceneGraphs/graphesDeScenes.ppt



NB: une information essentielles concernant les exemples , on peu lire dans le README ceci

If not otherwise specified all files in the OpenSceneGraph-Data are provided free
for non commericial usage. Comericial users may use the data for testing and development purposes,
but may not distribute these models with commericial products.

Donc sous GPL, si l'on reprend les exemples, tel que,  "on est planté" car les  petits programmes sont super intéressants (et cela m'a démangé)

Dernière modification par Gérard Robin (19/09/2007 20:21:11)

Hors ligne

#2 19/09/2007 20:26:12

guillaume
Membre
Lieu : Caen – LFRK
Inscription : 10/12/2006
Messages : 932

Re : Intégration multi-formats dans FG, spécificités avec OpenSceneGraphe

NB: une information essentielles concernant les exemples , on peu lire dans le README ceci

If not otherwise specified all files in the OpenSceneGraph-Data are provided free
for non commericial usage. Comericial users may use the data for testing and development purposes,
but may not distribute these models with commericial products.

Donc sous GPL, si l'on reprend les exemples, tel que,  "on est planté" car les  petits programmes sont super intéressants (et cela m'a démangé)

Ah on est enfin d'accord sur ce point, les licences non-commerciales ne sont pas libres et limitent l'échange des fichiers. Et pas eulement parce que la GPL est une licence copyleft qui interdit donc d'inclure du code non-libre (ce qui est plutôt une bonne chose d'ailleurs).

Par contre, je ne sais pas si le format osg lui-même est propriétaire, mais le code de OpenSceneGraph est libre, ce qui veut dire que n'importe qui (avec de bonnes connaissances en programmation) peut savoir comment lire et écrire un fichier osg. Donc c'est un format (au moins à peu près) ouvert, tout comme le AC3D l'est en raison de son écriture en ASCII.

Dernière modification par guillaume (19/09/2007 21:08:32)


Debian GNU/Linux Sid
AMD Athlon II X2 250 / RAM 14 Go / nVidia GeForce GTX750

Hors ligne

#3 19/09/2007 23:12:12

Gérard Robin
Un grand membre aujourd'hui disparu.
Lieu : Vaucluse LFMO ou LFNH ou LFXI
Inscription : 28/12/2006
Messages : 236
Site Web

Re : Intégration multi-formats dans FG, spécificités avec OpenSceneGraphe

Bien entendu GPL est incompatible avec non commerciale, cela avait déjà été discuté par Flying Toaster (Modèles gratuits mais pas GPL) , et d'ailleurs c'est pourquoi EBay commercialise FlightGear, en toute légalité.

Pour répondre à ta question, bien entendu toute création originale de script OSG compatible OpenSceneGraphe,  faite  par son auteur peut être placé sous la License de son choix, dont GPL.
Cela  avait déjà été précisé sur le Devel Mail.
Tu peu donc  intégrer tes propres script OSG sur tes avions dans le respect du Copyright GPL, sans ancun abus de ta part.

Dernière modification par Gérard Robin (19/09/2007 23:28:29)

Hors ligne

Pied de page des forums