Page suivante Page précédente Table des matières

7. Importations et Exportations

Cette section contient la documentation de tous les modules d'importation et d'exportation de Ayam.

7.1 Gestion des plugins d'importation et d'exportation

À l'exception de l'exportation RIB, tous les modules d'import/export de Ayam sont des plugins qui doivent être chargés dans l'application avant toute utilisation éventuelle. Le chargement d'un plugin d'import/export peut se faire de trois manières différentes :

  1. explicitement via l'entrée du menu principal "File/Load Plugin",
  2. automatiquement au démarrage de l'application via un script (en ajoutant par exemple "plugins/loaddxfio.tcl" au paramètre de préférence "Scripts"),
  3. implicitement via les entrées/sorties normales de la scène.

    Le chargement implicite signifie que l'on peut simplement utiliser les entrées du menu principal "File/Open" et "File/Save as" (ou les raccourcis clavier correspondants) et spécifier un nom de fichier avec l'extension appropriée (par exemple : ".dxf").[∗] Ayam chargera alors le plugin correspondant ("dxfio") et ouvrira également la boîte de dialogue des options d'importation (ou d'exportation) avec l'option "NomFichier" déjà définie pour le nom de fichier choisi auparavant. Bien entendu, le chargement implicite des plugins nécessite que les préférences "Plugins" soient correctement définies.

7.2 Aperçu des plugins d'importation et d'exportation

Le tableau suivant liste les fonctionnalités Ayam supportées par les différents plugins d'importation.

FeatureRIBOBJ3DMF(Apple)DXF3DM(Rhino)X3D
QuadricsYesNoYesNoYesYes
Trimmed NURBSYesYesYesNoYesYes
ParametricsNoNoNoNoNoYes
CurvesNoYesYesYesYesYes
TransformationsYesNoYesNoNoYes
HierarchyYesNoYesNoNoYes
InstancesYesNoNoNoNoNo
CSGYesNoNoNoNoNo

Caractéristiques de Ayam supportées par divers plugins d'importation

Toutes les fonctionnalités de Ayam ne sont pas prises en charge dans les différentes options d'exportation. Le tableau suivant donne un aperçu des fonctionnalités prises en charge par format de fichier d'exportation.

FeatureRIBOBJ3DMF(Apple)DXF3DM(Rhino)X3D
QuadricsYesNoaSomedNobSomedSomed
Trimmed NURBSYesYesYesNobYescYes
ParametricsNoaNoaNoaNobSomeeSomee
CurvesNoYesYesYesYesYes
TransformationsYesNoYesNoNoYes
HierarchyYesNoYesNoNoYes
InstancesYesNoNoNoNoYes
CSGYesNoNoNoNoNo

Les fonctionnalités de Ayam soutenues par divers formats d'exportation

a : sera converti en NURBS
b : sera converti en PolyMeshes
c : Courbes de trim 3D exportées sous forme de PolyLines
d : certaines quadriques sont converties en NURBS (voir la documentation du plugin)
e : certains paramètriques sont converties en NURBS (voir la documentation du plugin)
Notez que le succès de l'exportation d'une scène 3D vers une autre application dépend non seulement de Ayam mais aussi de l'application d'importation. Par exemple, de nombreuses applications prétendent lire des fichiers au format OBJ de Wavefront mais n'importent que des données polygonales ou, pire encore, que des triangles à partir de ces fichiers. Par défaut, Ayam essaie de préserver autant d'informations que possible dans le format d'exportation respectif, ce qui conduit par exemple à l'utilisation de NURBS dans les fichiers OBJ de Wavefront. Par conséquent, pour réussir le transfert d'une scène Ayam vers une autre application, dans certains cas, il peut être nécessaire de convertir manuellement les objets NURBS de la scène Ayam en géométrie polygonale. Un script est fourni pour faciliter cette opération ("topoly.tcl", Voir aussi la section Tout transformer en polygones).

Ayam n'est pas parfait non plus, car dans la plupart des options d'importation, les données relatives au matériau et aux animations sont complètement ignorées.

Le tableau suivant donne un aperçu des versions des formats de fichiers pris en charge par les différents plugins d'importation et d'exportation. L'importation de fichiers d'une version différente doit être considérée comme non supportée.

FormatRIBOBJ3DMF(Apple)DXF3DM(Rhino)X3D
Version3.03.01.0143.03.1

Aperçu des versions de formats de fichiers pris en charge

Les sections suivantes documentent en détail les différents plugins d'importation et d'exportation.

7.3 Importation de RenderMan Interface Bytestream (RIB)

En utilisant le plugin "rrib" (pour Read RIB) les RIB version 3.0 peuvent être importés dans Ayam. Ce plugin est basé sur la bibliothèque Affine Thomas E. Burge. Commencez à importer un RIB en utilisant l'entrée de menu "File/Import/RenderMan RIB" (si cette entrée de menu n'est pas disponible, le plugin rrib doit être chargé en utilisant l'entrée de menu "File/Load Plugin" avant).

Prise en charge des primitives RIB

Le plugin RRIB prend en charge l'importation des primitives géométriques suivantes :

De plus, le plugin prend en charge la lecture des CSG, des instances d'objets, des archives, des sources de lumière (y compris les lumières étendues), des transformations linéaires quelconques (sauf les transformations de cisaillement), des RiOptions et des RiAttributs quelconques, des ombres (sauf les ombres de transformation et sans arguments de tableau), des variables primitives quelconques (par exemple, variable ou sommet)[∗] et les objets de procédure et les archives à lecture différée [∗].
Les coordonnées des textures seront importées sous forme de balises TC (Voir aussi la section Balise TC (Texture Coordinates)).

Le caractère manuel de la scène (mise en scène via RiOrientation) est suivi et converti au défaut de droit de Ayam. [∗]

Le plugin RRIB ne prend pas en charge la lecture des courbes, des surfaces implicites (modèles blobby) et des appels à l'interface RenderMan qui ne sont pas très utiles pour une importation RIB comme par exemple RiMakeTexture.
Les primitives géométriques non prises en charge et les autres appels à l'interface RenderMan sont ignorés sans notification.

Notez également que pour les patchs NURBS et les mailles de patchs bicubes, les points de type "P" seront promus à "Pw". Les points de type "Pz" ne sont pas pris en charge par le plugin. Le découpage des patchs NURBS par le serrage de leurs plages de noeuds n'est pas non plus pris en charge (cependant, des balises UMM/VMM seront créées, qui contiennent les nouvelles valeurs minimales et maximales de noeuds).[∗] Voir aussi la section Balises UMM/VMM (U/V Min Max).

En outre, les objets de type polygone (général) et maille polygonale seront toujours promus au rang de mailles polygonales générales.

Les instances d'objets sont résolues en objets normaux lors de l'importation. Les instances peuvent être facilement recréées en utilisant l'installation automatique (voir la section Instanciations automatiques).

S'il y a plusieurs objets dans une instance d'objet RenderMan, un objet de niveau de clôture sera créé. [∗]

Les objets procéduraux ne seront pas évalués, mais des objets RiProc seront créés, qui portent tous les arguments et créent la même séquence de demandes RIB à l'exportation que celle qui a été lue à l'importation.

Notez que dans le cas d'erreurs syntaxiques graves du fichier RIB, des messages d'erreur plus informatifs sont imprimés sur le canal stderr de Ayam (qui n'est pas redirigé vers la console Ayam).

Options d'importation RIB

L'importation de RIB peut être contrôlée via différentes options :

7.4 Exportation RIB (RenderMan Interface Bytestream)

L'exportation de RenderMan Interface Bytestream (RIB) est le module d'exportation le plus important de Ayam et justifie en fait son existence. Toutes les caractéristiques de la structure des objets et des scènes de Ayam sont prises en charge (hiérarchie, CSG, instances, matériaux, lumières, etc.). De plus, Ayam prend en charge le rendu direct à partir de fenêtres de visualisation, le rendu en plusieurs passes pour les cartes d'ombre et les prévisualisations permanentes (où un moteur de rendu RenderMan est directement couplé à une fenêtre de visualisation Ayam).

La documentation sur l'exportation des RIB est répartie sur la documentation de Ayam, cette section donne quelques informations générales et sinon ne fait que pointer vers les véritables sections de la documentation.

L'exportation de RIB est toujours disponible, elle ne nécessite pas de plugin pour être chargée. L'entrée correspondante du menu principal est "File/Export/RenderMan RIB" et le raccourci clavier correspondant est <Ctrl+E>. Pour contrôler l'exportation et la restitution des RIB, il existe de nombreuses options qui sont documentées dans la section Préférences d'exportation RIB.

Il existe également des moyens spéciaux d'exporter les RIB disponibles dans le menu principal : "Special/RIB-Export" ; ceci est documenté dans la section Menu spécial.

Ayam peut non seulement exporter des scènes en RIB, mais aussi appeler différents moteurs de rendu RenderMan pour restituer directement les fichiers RIB exportés à l'écran ou dans un fichier image. La documentation sur la façon d'exporter/restituer directement à partir d'une fenêtre de visualisation se trouve dans la section View Menu.

Il est également possible d'invoquer l'exportation de RIB en utilisant l'interface de script, voir la section RIB export pour plus d'informations.

L'exportation de RIB respecte toujours les balises "NoExport" et l'attribut "HideChildren".

7.5 Importation Mops

Dans les anciennes versions de Ayam, les scènes Mops pouvaient être importées en utilisant l'entrée du menu principal : "File/Import Mops". Depuis Ayam 1.13 l'importation Mops est un plugin nommé "mopsi". Après le chargement du plugin, les scènes Mops peuvent être importées en utilisant l'entrée du menu principal "File/Import/Mops".

Ayam est capable d'importer la plupart des éléments d'une scène Mops, à l'exception des RiAttributs attachés à des objets géométriques quelconques, car les attributs et les ombres sont gérés par des objets matériaux dans Ayam. Cependant, si un objet Mops possède une ombre de surface ou de déplacement, un objet matériau avec les ombres de l'objet Mops et ses RiAttributs sera automatiquement créé et lié à l'objet géométrique lors de l'importation. Seuls les objets Mops avec des ombres de surface ou de déplacement sont pris en compte, car sinon un objet matériau devrait être créé pour chaque objet Mops importé. Les objets matériaux sont nommés "mat0", "mat1" et ainsi de suite. Assurez-vous que la scène en cours dans Ayam ne contient pas d'objets matériaux portant ces noms, sinon l'importation de Mops ne pourra pas créer d'objets matériaux pour la scène à importer.

Les options d'importation "ResetDM" et "ResetST" contrôlent, si le mode d'affichage GLU et les paramètres de tolérance (voir les sections Propriété NCurveAttr, et Propriété NPatchAttr pour plus d'informations sur le mode d'affichage et la tolérance) des primitives NURBS doivent être réinitialisées en utilisant les valeurs de préférence globales (la valeur par défaut en Ayam) au lieu d'utiliser les valeurs du fichier de scène Mops.

7.6 Importation AutoCAD DXF

Le plugin "dxfio" permet d'importer des fichiers AutoCAD DXF (drawing interchange format) dans Ayam à l'aide de la bibliothèque Dime (de Systems in Motion, Kongsberg SIM AS, Norvège). Ce plugin ne prend en charge que les fichiers jusqu'à la version 14 du format de fichier.

Commencez à importer un fichier DXF en utilisant l'entrée de menu principal "File/Import/AutoCAD DXF" (si cette entrée de menu n'est pas disponible, le plugin dxfio doit d'abord être chargé en utilisant l'entrée de menu "File/Load Plugin").

Notez que l'ensemble du fichier DXF est lu en mémoire avant la création de toute géométrie

Prise en charges des entités DXF

Le plugin d'importation DXF prend en charge la lecture des entités DXF suivantes : 3DFACE, ARC, CIRCLE, ELLIPSE, LINE, SOLID, TRACE, BLOCK, INSERT, POLYLINE, LWPOLYLINE, and SPLINE. Les entités qui ne figurent pas sur cette liste seront ignorées sans notification.

Les entités 3DFACE sont importées en tant qu'objets PolyMesh si seuls les trois premiers points sont uniques (l'entité décrit un triangle) ou si la face est plane sinon en tant qu'objets BPatch.

Les entités ARC, CIRCLE, et ELLIPSE seront lus comme des objets NCircle avec les paramètres correspondants "TMin", "TMax" (pour les arcs et les ellipses) et les valeurs de transformation d'échelle (pour les ellipses) fixées.

Les entités POLYLINE sont entièrement prises en charge :

Les entités LINE, LWPOLYLINE et SPLINE seront importées en tant qu'objets NCurve.

Les entités SOLID et TRACE sont importées en tant qu'objets BPatch.

Les entités BLOCK et INSERT seront converties en objets maîtres (référencés) et instances (références).

Les bombements et les extrusions ne sont pas pris en charge.

Le tableau suivant énumère de manière exhaustive les entités DXF prises en charge et leurs homologues Ayam qui seront créées à l'importation.

DXF EntityAyam Object
3DFACEPolyMesh / BPatch
ARCNCircle
CIRCLENCircle
ELLIPSENCircle
LINENCurve
SOLIDBPatch
TRACEBPatch
POLYLINENCurve / PolyMesh / NPatch
LWPOLYLINENCurve
SPLINENCurve
INSERTInstance

Table de conversion des importations DXF

Options des importations DXF

L'importation de DXF peut être contrôlée par différentes options :

7.7 Exportation AutoCAD DXF

Le plugin "dxfio" permet d'exporter des scènes Ayam vers des fichiers AutoCAD DXF (drawing interchange format) à l'aide de la bibliothèque Dime (de Systems in Motion, Kongsberg SIM AS, Norvège).

Commencez à exporter vers un fichier DXF en utilisant l'entrée du menu principal "File/Export/AutoCAD DXF" (si cette entrée de menu n'est pas disponible, le plugin dxfio doit être chargé en utilisant d'abord l'entrée de menu "File/Load Plugin").

Notez que l'ensemble de la scène Ayam est converti en un modèle DXF correspondant en mémoire avant d'être écrit dans le fichier DXF.

Ayam ne crée que des entités de type POLYLINE et SPLINE et il lui manque beaucoup d'informations qui pourraient être enregistrées dans d'autres formats (par exemple, les normales et les coordonnées de texture). C'est pourquoi le format d'exportation DXF doit être évité si possible.

Prise en charge des objets et propriétés Ayam

La fonctionnalité d'exportation du plugin dxfio couvre actuellement l'exportation de toutes les boîtes, quadrics, NURBS, PolyMeshes, instances, clones, objets de script (de type "Create" ou "Modify"), et objets pouvant être convertis en courbes ou surfaces NURBS ou en PolyMeshes. Cependant, toutes les boîtes et quadrillages seront toujours convertis en surfaces NURBS et les surfaces NURBS seront tesselées en PolyMeshes pour l'exportation.

La hiérarchie des scènes et les opérations du CSG sont totalement ignorées, tous les objets seront écrits comme s'ils étaient combinés par l'opérateur union.

Toutes les transformations seront appliquées aux points de contrôle des objets exportés.

Les objets PolyMesh seront exportés vers des entités POLYLINE (sous-type PolyFaceMesh). Si un objet PolyMesh contient des faces avec des trous ou avec plus de quatre points, il sera tesselé pour l'exportation. Les normales existantes ne seront finalement pas exportées.

Les courbes NURBS seront exportées en tant qu'entités SPLINE.

Les objets d'instance sont résolus pour l'exportation.

Les sources de lumière, ainsi que les appareils photo, les vues et les matériaux ne sont pas exportés.

La prise en charge des plages de noeuds des courbes ou surfaces NURBS par des balises UMM/VMM n'est pas possible. Les coordonnées de texture ne seront pas exportées.

Options d'exportation DXF

L'exportation DXF peut être contrôlée par le biais de différentes options :

7.8 Importation Wavefront OBJ

Depuis Ayam 1.8.3, une fonction d'importation de Wavefront OBJ (version 3.0) est disponible et depuis Ayam 1.13, il s'agit d'un plugin ("objio") qui doit être chargé avant l'importation. L'entrée de menu principale correspondante est " File/Import/Wavefront OBJ " (si cette entrée de menu n'est pas disponible, le plugin objio doit être chargé en utilisant l'entrée de menu " File/Load Plugin " d'abord).

Prise en charge des déclarations de Wavefront OBJ

L'importation de Wavefront OBJ prend en charge la lecture des lignes et des faces polygonales avec des normales de sommet et des coordonnées de texture (ces dernières sont lues comme des balises variables primitives) ; les déclarations : v, vt, vn, l, f.

En outre, les courbes et surfaces de forme libre (NURBS) avec des courbes de trim et des coordonnées de texture (à nouveau lues comme des variables primitives) sont prises en charge ; les déclarations : vp, cstype, deg, curv, curv2, surf, parm, trim, hole, end.

Les courbes de forme libre et les surfaces de type bmatrix, cardinal et taylor ne sont actuellement pas prises en charge. De même, l'importation de courbes et de points spéciaux (par exemple, une courbe sur une surface) n'est actuellement pas prise en charge. De plus, la prise en charge de courbes et de surfaces de forme libre par le serrage de leurs plages de noeuds n'est pas prise en charge (cependant, des étiquettes UMM/VMM appropriées seront créées, qui contiennent les nouvelles valeurs minimales et maximales de noeuds).[∗] Voir aussi la section Balises UMM/VMM (U/V Min Max).

Aucune information sur les matériaux et les regroupements ne sera importée. Les déclarations non prises en compte seront ignorées sans notification.

L'importation de Wavefront OBJ s'attend à ce que le fichier soit syntaxiquement correct. Le plugin n'est pas très bon pour détecter et signaler les erreurs. Si l'importation échoue, vous pouvez d'abord utiliser un outil tiers pour vérifier si le fichier Wavefront OBJ est valide.

De plus, notez que le plugin objio ne prend en charge que la syntaxe de la version 3.0 de Wavefront, les fichiers qui utilisent une syntaxe plus ancienne ne seront pas importés correctement.

Options d'importation Wavefront OBJ

Les options suivantes contrôlent le processus d'importation de Wavefront OBJ :

7.9 Exportation Wavefront OBJ

Depuis Ayam 1.7, il est possible d'exporter des scènes ou des objets au format Wavefront OBJ (version 3.0). Depuis Ayam 1.13, l'exportation au format Wavefront OBJ est un plugin ("objio") qui doit être chargé avant l'exportation. L'entrée de menu principale correspondante est " File/Export/Wavefront OBJ " (si cette entrée de menu n'est pas disponible, le plugin objio doit d'abord être chargé en utilisant l'entrée de menu " File/Load Plugin ").

Prise en charge des objets et propriétés Ayam

L'exportation de Wavefront prend actuellement en charge les objets suivants :

Le format Wavefront OBJ ne prenant pas en charge d'attributs de transformation distincts, tous les attributs de transformation seront utilisés pour transformer les valeurs des coordonnées (les points de contrôle) des objets exportés.

La hiérarchie de la scène Ayam sera réduite à un seul niveau, les transformations seront correctement déléguées aux enfants-objets.

Les opérations de la CSG sont totalement ignorées, tous les objets seront écrits comme s'ils étaient combinés par l'opérateur union.

L'exportation de Wavefront OBJ, actuellement, ignore toute information sur les matériaux. Seules les informations géométriques sont écrites dans le fichier OBJ. Cependant, les coordonnées de texture des étiquettes de variables primitives seront exportées.[∗]

Les balises UMM/VMM sont utilisées pour découper les vecteurs de noeuds des objets NURBS exportés.[∗] Voir aussi la section Balises UMM/VMM (U/V Min Max).

Les sources de lumière, ainsi que les appareils photo et les vues ne seront pas exportés.

Les noms d'objets seront exportés sous forme d'énoncés o.

Options d'exportation Wavefront OBJ

Les paramètres suivants contrôlent l'exportation de Wavefront OBJ :

7.10 Importation 3DMF (Apple)

En utilisant le plugin "mfio", les scènes peuvent être importées du format 3DMF (QuickDraw 3D Metafile) d'Apple à l'aide d'un analyseur 3DMF gratuit créé par Duet Development Corp. et distribué par Apple. Commencez à importer un fichier 3DMF en utilisant l'entrée de menu " File/Import/Apple 3DMF " (si cette entrée de menu n'est pas disponible, le plugin mfio doit d'abord être chargé en utilisant l'entrée de menu " File/Load Plugin ").

Le plugin mfio ne prend en charge que la version 1.0 de 3DMF !

Prise en charge des attributs et primitives 3DMF

Le plugin mfio prend en charge l'importation des primitives géométriques suivantes :

Le tableau suivant dresse la liste complète des primitives 3DMF prises en charge et de leurs équivalents Ayam qui seront créés à l'importation.

3DMF PrimitiveAyam Object
PolylineNCurve
TrianglePolyMesh
TriGridPolyMesh
PolygonPolyMesh
BoxBox
EllipsoidSphere
CylinderCylinder
ConeCone
DiskDisk
TorusTorus
NURBCurveNCurve
NURBCurve2DNCurve
NURBPatchNPatch
ContainerLevel

Table de conversion d'importation 3DMF (Apple)

Les transformations suivantes sont prises en charge dans l'importation 3DMF :

De plus, le plugin d'importation lit la structure de la scène à partir des objets Container. Les objets de référence seront résolus en objets normaux lors de l'importation. Les instances peuvent être facilement recréées en utilisant l'installation automatique (voir la section Instanciations automatiques).

La prise en charge de l'importation des éclairages, des attributs des caméras ainsi que des attributs des matériaux autres que la couleur et l'opacité des matériaux n'est pas disponible actuellement.

Options d'importation 3DMF

Les paramètres suivants, en outre, contrôlent l'importation de 3DMF :

7.11 Exportation 3DMF (Apple)

En utilisant le plugin "mfio", les scènes peuvent être exportées au format 3DMF (QuickDraw 3D Metafile) d'Apple à l'aide d'un analyseur 3DMF gratuit créé par Duet Development Corp. et distribué par Apple. Lancez l'exportation vers un fichier 3DMF en utilisant l'entrée de menu " File/Export/Apple 3DMF " (si cette entrée de menu n'est pas disponible, le plugin mfio doit d'abord être chargé en utilisant l'entrée de menu " File/Load Plugin ").

Le plugin mfio ne prend en charge que la version 1.0 de 3DMF !

Prise en charge des objets et propriétés Ayam

L'exportation mfio prend en charge les objets géométriques suivants :

Les objets de types non répertoriés ici seront convertis en NURBS (si possible) ou en objets PolyMesh automatiquement pour l'exportation.

Toutes les transformations sont prises en charge et s'écrivent respectivement comme transformations de translation, de rotation et d'échelle.

Tous les objets de l'Instance seront résolus pour l'exportation. Les objets de niveau (quel que soit leur type) seront écrits comme des objets "Container".

Si un objet a un matériau, la couleur et l'opacité du matériau seront écrites en DiffuseColor et TransparencyColor, si la composante rouge respective de la couleur a une valeur différente de -1.

La prise en charge de l'exportation des lumières, des attributs des caméras ainsi que des attributs des matériaux autres que la couleur et l'opacité des matériaux n'est pas disponible actuellement.

Prise en charge des courbes de Trim

La spécification du format de fichier 3DMF pour la version 1.0 est malheureusement très laconique en ce qui concerne les courbes de trim. Il n'y a pas de moyen clairement défini de les spécifier en liaison avec leur surface NURBS respective. En outre, la méthode présentée ici est la seule qui fonctionne avec l'analyseur 3DMF fourni gratuitement. Les patchs NURBS découpés seront écrits par Ayam de cette manière :

Container (
        NURBPatch ( ...
        )
        [transformations & attributes of NURBS patch]
        TrimCurves ( )
        NURBCurve2D ( ...
        )
        Container (
                NURBCurve2D ( ...
                )
                NURBCurve2D ( ...
                )
        )
)
  1. Il y aura toujours un Container pour un patch NURBS.
  2. Si le patch est découpé, après le NURBPatch ou les transformations et attributs potentiellement présents du patch, un élément TrimCurves suivra (qui ne contient pas les courbes de trim mais est vide). Les courbes de trim suivent maintenant les courbes NURBS 2D (objets NURBCurve2D pour les trim simples) ou objets Container (pour les boucles de trim) avec plusieurs courbes NURBS 2D jusqu'à la fin du container qui les entoure.
  3. Les attributs de transformation des courbes trim seront appliqués aux points de contrôle des courbes NURBS pour l'exportation (il n'y aura pas de transformations ou d'attributs pour les éléments des courbes trim).

L'importation de Ayam 3DMF s'attend à ce que les courbes trim soient délivrées de cette manière et peut alors effectivement les relire avec précision.

Options d'exportation 3DMF

Les paramètres suivants, en outre, contrôlent l'exportation du 3DMF :

7.12 Importation 3DM (Rhino)

Depuis la version 1.8.2, Ayam contient un plugin nommé "onio" qui peut importer des scènes du format de fichier Rhino 3DM en utilisant la boîte à outils OpenNURBS (d'où le nom du plugin onio – OpenNURBS IO) de Robert McNeel & Associates.

Lancez l'importation à partir d'un fichier Rhino 3DM en utilisant l'entrée de menu " File/Import/Rhino 3DM " (si cette entrée de menu n'est pas disponible, le plugin onio doit d'abord être chargé en utilisant l'entrée de menu " File/Load Plugin ").

Le plugin onio ne prend en charge que l'importation des fichiers 3DM de la version 3.0 et antérieures.

Prise en charge des objets 3DM

La fonctionnalité d'importation du plugin onio couvre actuellement l'importation de tous les objets NURBS et BRep et des objets qui peuvent être convertis en NURBS avec des routines de la boîte à outils OpenNURBS (ces objets sont : PolylineCurve, PolyCurve, LineCurve, ArcCurve, CurveOnSurface, RevSurface, SumSurface et PlaneSurface). Les références seront résolues. Les noms seront importés, mais convertis en une représentation ASCII. Comme la version 1.8.3 de Ayam importera également des objets Mesh dans les objets PolyMesh, les coordonnées de texture seront lues et des balises PV appropriées seront créées pour eux.

Le tableau suivant dresse la liste complète des primitives Rhino 3DM prises en charge et de leurs équivalents Ayam qui seront créés à l'importation.

Rhino 3DM PrimitiveAyam Object
PolyLineCurveNCurve
PolyCurveNCurve
LineCurveNCurve
ArcCurveNCurve
CurveOnSurfaceNCurve
MeshPolyMesh
NurbsCurveNCurve
NurbsSurfaceNPatch
RevSurfaceNPatch
SumSurfaceNPatch
PlaneSurfaceNPatch

Table de conversions lors de l'importation 3DM (Rhino)

Options de l'importation 3DM

Le processus d'importation 3DM est contrôlé par les options suivantes :

7.13 Exportation 3DM (Rhino)

Depuis la version 1.8.2, Ayam contient un plugin nommé "onio" qui exporte des scènes au format de fichier Rhino 3DM en utilisant la boîte à outils OpenNURBS (d'où le nom du plugin onio – OpenNURBS IO) de Robert McNeel & Associates.

Commencez à exporter vers un fichier Rhino 3DM en utilisant l'entrée de menu " File/Export/Rhino 3DM " (si cette entrée de menu n'est pas disponible, le plugin onio doit d'abord être chargé en utilisant l'entrée de menu " File/Load Plugin ").

Le plugin onio exporte les fichiers 3DM de la version 3.0.

Prise en charge des objets et propriétés Ayam

La fonctionnalité d'exportation du plugin onio couvre actuellement l'exportation de toutes les boîtes, quadrics, NURBS, polymeshes, instances, clones, objets de script (de type "Create" ou "Modify") et objets qui peuvent être convertis en courbes ou surfaces NURBS.

Bien que l'exportation de surfaces bouchons planaires de divers objets d'outillage soit entièrement prise en charge, l'exportation de patchs NURBS généraux taillés n'est pas bien prise en charge. Cela est dû à l'absence d'une fonctionnalité (qui permet de passer de courbes de trim 2D à des courbes 3D pour des surfaces NURBS quelconques) dans la boîte à outils OpenNURBS. Une représentation 3D polygonale grossière des courbes trim 2D sera créée automatiquement, de sorte que les patchs NURBS généraux découpés puissent être exportés, mais avec une qualité moindre et une taille de fichier plus importante si nécessaire.[∗]

Les balises UMM/VMM sont utilisées pour découper les vecteurs de noeuds des objets NURBS exportés.[∗] Voir aussi la section Balises UMM/VMM (U/V Min Max).

Comme le format de fichier 3DM de Rhino ne prend pas en charge la hiérarchie et les attributs de transformation par objet, la hiérarchie de la scène de Ayam sera écrasée et tous les attributs de transformation seront appliqués aux points de contrôle des objets pour l'exportation. Les opérations CSG sont totalement ignorées, tous les objets seront écrits comme s'ils étaient combinés par l'opérateur union. En outre, tous les objets d'instance seront résolus en objets normaux.

Tous les objets seront écrits sur la première couche, la couche par défaut (sauf si l'option "TopLevelLayers" est utilisée). Les noms des objets seront également exportés. Les noms des objets de niveau seront précédés des noms de leurs objets enfants. La hiérarchie des objets :

+-Arm(Level)
 | MySphere(Sphere)
 \ MyCylinder(Cylinder)
par exemple, mène à deux objets dans le fichier Rhino nommés "Arm/MySphere" et "Arm/MyCylinder".

Options d'exportation 3DM

Le processus d'exportation 3DM est contrôlé par les options suivantes :

7.14 Importation X3D (Web3D)

Depuis la version 1.13, Ayam fournit un plugin nommé "x3dio" qui peut importer des scènes à partir du format de fichier X3D basé sur XML et publié par le Consortium Web3D. L'analyseur XML utilisé dans ce plugin est basé sur Expat et SCEW.

Les versions binaires et compressées de X3D, ainsi que les fichiers VRML sont non pris en charge. Seuls les fichiers XML purs sont lus par le plugin x3dio.

Commencez l'importation à partir d'un fichier Web3D X3D en utilisant l'entrée de menu " File/Import/Web3D X3D " (si cette entrée de menu n'est pas disponible, le plugin x3dio doit d'abord être chargé en utilisant l'entrée de menu " File/Load Plugin ").

Prise en charge des éléments X3D

La fonctionnalité d'importation du plugin x3dio couvre actuellement l'importation des éléments X3D suivants (regroupés par composants) :

Les éléments X3D non pris en charge seront ignorés sans notification. Le prototypage et les scènes dynamiques ainsi que les scripts ne sont pas pris en charge.

Le tableau suivant dresse la liste complète des primitives Web3D X3D prises en charge et de leurs équivalents Ayam qui seront créés à l'importation.

X3D PrimitiveAyam ObjectX3D PrimitiveAyam Object
Geometry3D:CAD:
BoxBoxQuadSetPolyMesh
SphereSphereIndexedQuadSetPolyMesh
CylinderCylinderCADLayerLevel
ConeConeCADAssemblyLevel
ElevationGridPaMeshCADPartLevel
ExtrusionPolyMeshCADFaceLevel
IndexedFaceSetPolyMeshLight:
IndexedTriangleSetPolyMeshDirectionalLightLight
IndexedTriangleStripSetPolyMeshSpotLightLight
IndexedTriangleFanSetPolyMeshPointLightLight
TriangleSetPolyMesh
TriangleStripSetPolyMesh
TriangleFanSetPolyMesh
IndexedLineSetNCurve
LineSetNCurve
Geometry2D:
Arc2DNCircle
ArcClosed2DNCurve
Circle2DNCircle
Polyline2DNCurve
Disk2DDisk / Hyperboloid
NURBS:
NurbsCurveNCurve
NurbsCurve2DNCurve
NurbsPatchSurfaceNPatch
NurbsTrimmedSurfaceNPatch
NurbsSweptSurfaceSweep
NurbsSwungSurfaceSwing

Table de conversion lors de l'importation X3D (Web3D)

Prise en charge des attibuts X3D

Les attributs "solid", "ccw", et "convex" sont systématiquement ignorés.

Les attributs "DEF" et "USE" sont pris en charge pour tous les éléments, cependant, les relations d'instance maîtresse correspondantes sont entièrement résolues à l'importation. Les instances d'objets peuvent être facilement recréées en utilisant l'installation automatique (veuillez vous référer à la section Instanciations automatiques).

Actuellement, les normales ne seront pas générées automatiquement pour les éléments X3D et l'attribut "creaseAngle" sera donc totalement ignoré. Notez cependant que si les normales sont spécifiées explicitement, par exemple pour un élément "IndexedFaceSet", elles seront importées correctement.

De plus, si des normales, des couleurs ou des coordonnées de texture sont fournies à un élément qui importe sous forme de PolyMesh (IndexedFaceSet et autres), des balises PV (variable primitive) appropriées seront créées.[∗]

De plus, si un index est fourni pour les normales, les couleurs ou les coordonnées de texture, les données concernées (par exemple les coordonnées du sommet) seront développées correctement (car RenderMan ne prend pas en charge plusieurs indices différents sur les données relatives au sommet). Notez qu'actuellement, la simple présence d'un index entraînera cette expansion. L'éventuel indice de coordonnées normales, de couleur ou de texture n'est pas vérifié, pour savoir s'il est identique à l'indice de coordonnées du sommet (et donc aucune expansion ne serait nécessaire au départ).

Les attributs "DEF" seront convertis en noms d'objets dans certains cas.

Options d'importation X3D

Les options suivantes permettent de contrôler davantage le processus d'importation X3D :

7.15 Exportation X3D (Web3D)

Depuis la version 1.13, Ayam fournit un plugin nommé "x3dio" qui exporte des scènes au format de fichier X3D basé sur XML et publié par le Consortium Web3D. L'analyseur XML utilisé dans ce plugin est basé sur Expat et SCEW.

Lancez l'exportation vers un fichier X3D en utilisant l'entrée de menu " Fichier/export/Web3D (X3D) " (si cette entrée de menu n'est pas disponible, le plugin x3dio doit d'abord être chargé en utilisant l'entrée de menu "File/Load Plugin").

Prise en charge des objets et propriétés Ayam

La fonctionnalité d'exportation du plugin x3dio couvre actuellement l'exportation de toutes les boîtes, quadrics, NURBS, PolyMeshes, instances, clones, objets de script (de type "Create" ou "Modify") et objets qui peuvent être convertis en courbes ou surfaces NURBS ou en PolyMeshes (par exemple les objets SDMesh).

Certains objets de l'outil NURBS peuvent être exportés sous forme de noeuds NURBS paramétriques, par exemple les objets Sweep peuvent être exportés sous forme de noeuds NurbsSweptSurface.

La hiérarchie des scènes (objets Level) sera convertie en une hiérarchie de noeuds de transformation correspondante.

Les opérations de la CSG sont totalement ignorées, tous les objets seront écrits comme s'ils étaient combinés par l'opérateur union.

La prise en charge des plages de noeuds des NURBS par des balises UMM/VMM n'est pas possible.

Les surfaces NURBS prennent en charge les balises XML pour définir les attributs "uTessellation" et/ou "vTessellation".

Les objets PolyMesh seront exportés vers les noeuds IndexedFaceSet. Les faces PolyMesh avec des trous sont automatiquement tesselées. Les faces PolyMesh avec plus de trois points sont tesselées si l'option d'exportation "TessPoMesh" est utilisée. Toutes les faces tesselées seront exportées vers un deuxième élément IndexedFaceSet.

Les sources lumineuses sont exportées si elles sont ponctuelles, distantes ou spot.

Les caméras et les vues sont exportées sous forme de noeuds de point de vue. Notez cependant que X3D suppose toujours une transformation de la vue en perspective. Cela signifie que les vues de type "Front", "Side", ou "Top" ne seront pas exportées correctement.

Les objets "materials" sont pris en charge de manière très minimaliste, c'est-à-dire que seule la couleur du matériau sera exportée en tant qu'attribut "diffuseColor". Cependant, les balises XML peuvent être utilisées pour ajouter des attributs supplémentaires ou même des nuances aux matériaux exportés, Voir aussi la section XML Tag.

Les noms d'objets seront convertis en attributs DEF.

Les instances peuvent être résolues ou exportées sous forme de paires USE/DEF.

Prise en charge d'image filaires (Wire-frame)

L'exportation X3D permet d'exporter des images filaires au lieu de surfaces pour les objets NPatch et PoMesh.

Pour passer un objet à l'exportation filaire, il suffit d'ajouter une balise "AsWire" à l'objet.

Options d'exportation X3D

Les paramètres suivants, en outre, contrôlent l'exportation X3D (Web3D) :


Page suivante Page précédente Table des matières