Logiciels libres et enseignement

Favoriser l’usage de logiciels libres et de formats ouverts

Accueil > Multimedia > Graphisme > Moonlight 3D Atelier

Moonlight 3D Atelier

dimanche 11 avril 2004, par André Pascual

- Auteur : Stéphane Rehel et Alexandre Belhoste (version originale), la communauté des développeurs (nouvelle version)

  • Licence : GPL
  • Langue : Anglais (bien que produit français)
  • Environnement requis : Mesa GL
  • Site web : http://ml3d.sourceforge.net/
  • Version testée : 0.9.2 beta (version freeware, non libre)

Le site officiel de Moonlight ne répondant plus, l’équipe de Linuxgraphic a developpé une section spécifique de son site, en catégorie 3D, où sont publiés didacticiels et images relatifs à Moonlight. Par la suite, lorsqu’il sera fait référence à la documentation en ligne, il s’agira de documentation à compulser sur Linuxgraphic : http://www.linuxgraphic.org/section...

Une équipe de développeurs s’est constituée pour reprendre le développement de Moonlight 3D à partir des sources de la dernière version libre disponible (0.5.5). Un argument de plus, avec Blender, pour dire qu’un projet libre ne meurt jamais. Plus d’informations en suivant ce lien.

Usages pédagogiques

Une utilisation des plus fascinantes de l’outil informatique est certainement l’imagerie de synthèse en trois dimensions. Celle-ci envahit la publicité télévisuelle et le cinéma d’aujourd’hui. Linux est présent sur ce créneau avec des produits professionnels comme Maya et Houdini. Mais s’il n’appartient pas à tout le monde de posséder et d’employer de tels programmes, il est à la portée de tous de s’initier à l’imagerie de synthèse volumique grâce à des produits plus abordables tant du point de vue prise en main que pécuniaire. C’est le cas de Moonlight, qui est gratuit et performant pour la réalisation d’images fixes. Il permet assez facilement l’apprentissage des concepts de base de modélisation et de rendu. L’expérience ainsi acquise pourra être investie avec profit dans des outils plus complexes.

1 Que signifient... ?

Il est impératif de connaître la signification de certains termes avant d’aller à la découverte d’un nouveau monde comme celui-ci.

Ainsi, par modéliser, on entend construire un modèle à trois dimensions d’un objet réel, ou supposé réel.

Un objet est intégré à une scène, c’est à dire qu’il est mis en situation dans un environnement, soumis à des éclairages, une ambiance, un point de vue et qu’il est affecté de paramètres d’aspect.

L’aspect est fonction du matériau censé composer l’objet, ce qui influe sur sa couleur, sa rugosité, son éclat, son opacité, son aspect réfléchissant ou transparent. De plus, au delà de cette apparence lisse, il peut présenter une surface complexe, ce qui s’obtient par plaquage d’une texture.

Une texture est constituée d’un motif bitmap 2D qui va recouvrir l’objet.

L’apparence de la scène sera visible lorsqu’on en aura effectué un rendu, c’est à dire qu’on aura réalisé une image plane, une photographie, à partir des modèles volumiques filaires. Cette définition a donné l’appellation : rendu photoréaliste.

Il existe plusieurs qualités de rendu, conférant un aspect plus ou moins réaliste aux objets :

  • Flat pour une prévisualisation rapide qui donne un aspect facétisé aux objets.
  • Ombrage de Gouraud utilisé en DAO/CAO, qui sait créer l’illusion du volume par des ombrages dégradés.
  • Phong, de meilleure qualité que le précédent, parce qu’il gère les reflets lumineux (spéculaires)
  • Scanline qui permet un aspect quasi réaliste
  • Ray tracing, ou lancer de rayon, à propos duquel on peut légitimenent parler d’aspect photoréaliste, lequel est fonction des différents algorithmes de rendu (BRDF) qu’il permet de mettre en oeuvre.

Modélisation et rendu sont deux opérations distinctes de la composition d’une image de synthèse, et se réalisent à l’intérieur du modeleur, d’une part, et du module de rendu (ou moteur de rendu), d’autre part.

D’autres termes seraient évidemment à définir ; ils pourront l’être par la suite.

2 Qu’est-ce que Moonlight ?

Moonlight s’appelle en réalité Moonlight Atelier 3D. Le nom n’est pas usurpé ; en effet, contrairement à bien des modeleurs qui s’appuient sur des moteurs de rendu externes tels que Pov, BMRT ou Art*Lantis, pour arriver au résultat final, Moonlight intègre sous une même interface modeleur et rendu. Il s’agit donc d’un atelier complet de création 3D, à base de surface NURBS (Non Uniform Rational B-Spline).

Les outils de modélisation sont peu nombreux :

Cercle, carré, courbe de Bézier, courbe NURBS et polyligne de Bézier : cela suffit à tracer toute esquisse 2D

Plan, sphère, cone, cylindre et tore tant en NURBS qu’en Parametriques constituent les primitives de base, auxquelles s’ajoutent une panoplie de 18 polyèdres d’un intérêt limité.

Mais la puissance de Moonlight réside ailleurs : en effet, il est difficile de construire un objet volumique complexe à partir des seules primitives combinées par opérations booléennes (addition, soustraction, intersection) dont d’ailleurs Moonlight ne dispose pas. La démarche la plus rationnelle est de créer la troisième dimension à partir d’une esquisse 2D que l’on translatera suivant une direction paraxiale ou suivant une trajectoire quelconque, ou que l’on fera pivoter autour d’un axe, ou que l’on reliera à une autre esquisse non coplanaire par l’intermédiaire d’une surface lissée. Là est la puissance de Moonlight.

Ce sont les fonctions (relations) : extrusion, revolution, tube, birail, loft, sweep et la surpuissante : skin surface.

De la sorte, il est tout à fait possible de modéliser des formes organiques telles que celles de la fleur ou du Tuxy ci-dessous :

A ces caractéristiques s’ajoute la qualité du module de rendu, qui est de la catégorie Ray tracing.

Certes, les shaders (matériaux prédéfinis) n’existent pas et ils conviendra donc de les paramètrer. On pourra consulter pour ce faire le didacticiel spécifique disponible sur Linuxgraphic.org.

Le rendu s’effectue à l’aide de 12 algorithmes , un algorithme différent pouvant être attribué à chacun des objet de la scène. Ainsi, on choisira celui qui conviendra le mieux pour un aspect métallique, poussièreux, lunaire, ciré... à donner aux objets.

Ce qui vient d’être dit est une rareté en soi : peu de modules de rendu sont capables de considérer les objets indépendamment les uns des autres. Mais ce qui est encore plus rare, c’est la capacité d’un objet à restituer une partie de sa propre lumière pour éclairer son environnement. Il s’agit de l’illumination globale, ou radiosité. Moonlight propose cette fonction, avec des temps de calcul tout à fait raisonnables. L’image suivante montre l’effet de la radiosité sur une scène :

3 Comment démarrer ?

On lance Moonlight en entrant moonlight dans un terminal, ou moonlight-medium ou encore moonlight-small, selon la place que l’on désire lui voir occuper à l’écran, sachant que la fenêtre ouverte ne pourra pas être redimensionnée. La commande moonlight seule ouvrira une fenêtre occupant la totalité de l’écran.

A noter que sous Kde, un clic droit sur l’écran ouvre un menu contextuel proposant l’option « Exécuter une commande » ; il suffit d’y entrer le nom du programme à lancer. Inutile d’ouvrir un terminal consommateur de ressource pour ce faire.

Après ouverture d’une scène, Moonlight se présente ainsi :

Par défaut, quatre fenêtres de mêmes dimensions sont ouvertes. Cependant, chacune d’elle est modifiable tant en contenu qu’en taille. En fait, l’interface est souple et modulable ; il semblerait que le modeleur professionnel Softimage ait largement inspiré les auteurs de Moonlight, et le choix est excellent. On remarquera sur la droite de l’écran la boîte de dialogue Hierarchy. A l’intérieur de celle-ci, on va structurer la construction des objets. C’est un aspect souvent négligé en modélisation, mais l’apprentissage des bons réflexes passe par une hierarchisation rigoureuse. Il sera beaucoup plus naturel par la suite de naviguer à travers le feature manager de SolidWorks, ou l’arbre de construction de SolidConcept lorsque la maîtrise de ce concept sera acquise.

En cela Moonlight est un bon outil pédagogique.

Une documentation relative à l’interface a été publiée dans Linux Magazine N°24 de janvier 2001.

Elle est disponible en ligne.

4 La modélisation

Ce n’est un mystère pour personne : une bonne modélisation dépend d’un bon tracé préliminaire. Moonlight, bien que n’autorisant pas l’entrée de dimensions ou de coordonnées permet de tracer assez précisement des esquisses, avec beaucoup de souplesse.

Les différentes courbes, Bézier ou NURBS, à utiliser seront forcément lissées de par leur nature et permettront la génération de surfaces lissées elles aussi, puisque celles-ci s’appuient dessus comme sur un gabarit. La forme modélisée ne sera peut être pas conforme à la réalité, mais elle ne comportera pas de « trous », de défauts de jonction comme souvent les surfaces polygonales.

On a dit plus haut qu’il y avait plusieurs façons de générer des surfaces, des plus basiques extrudées ou pivotées, aux plus sophistiquées qui sont au nombre de quatre. Plutôt que de les décrire, les images suivantes en montrent deux types : Skin et Sweep.

Skin surface : une des plus puissantes !

Sweep : balayage par un profil suivant une trajectoire directrice.

Les didacticiels relatifs à la réalisation de ces surfaces sont disponibles en ligne. Il s’agit de deux rares didacticiels officiels de Moonlight, ici traduits en français.

Didacticiel 1 : Introduction aux relations

Didacticiel 2 : Approfondir les relations

5 Le rendu

Le rendu nécessite en premier lieu d’éclairer la scène.

Moonlight dispose pour ce faire de lumière directionnelle, de point lumineux et de spot, tous configurables en direction, intensité, couleur et ombrage. Ce dernier point est encore une caractéristique assez rare dans les modules de rendu de bas de gamme : en effet, Moonlight gère les ombres douces (soft shadow), à savoir que les ombres portées ont un contour « flouté » comme dans la réalité. Les ombres à profil net sont dites ombres dures, et sont irréalistes.

Remarquez le contour des ombres projetées

En plus de la radiosité déjà citée, on dira encore que Moonlight gère la transparence, la réflexion, la réfraction (assez rare), les effets de brume (fog) et les ambiances qui s’ajoutent aux couleurs des lumières, selon 12 algorithmes, ou méthodes, comme il a déjà été dit. Moonlight les appelle BRDF, acronyme de Bidirectional Reflectance Distribution Function.

Paramétrage de matériau : choix du BRDF

Le temps de calcul de la radiosité est fonction du nombre de lampes et du nombre d’objets restituant de l’énergie ; celui du rendu est fonction de la dimension de l’image de sortie, du degrè de lissage, des reflexions et transparences. Globalement, une image en 800*600 peut nécessiter 5 minutes comme plus d’une heure. Le Ray tracing est gourmand en temps de calcul. Mais la qualité est à ce prix.

Ici encore, plutôt qu’un discours, un exemple d’image rendue :

On remarquera la réflexion (pied du verre à droite) et la réfraction (déformation de la corbeille à travers le verre)

6 Entrée-Sortie

Un logiciel doit pouvoir communiquer, c’est à dire produire des données interprétables par d’autres programmes, et récupérer des données produites par d’autres.

En rendu, quatre formats paramétrables différemment sont possibles comme le montre l’image suivante :

Options de l’image du Rendu

En format 3D, Moonlight récupère avec plus ou moins de bonheur : DXF, ASC (3DS), OFF et PLY, le format OFF étant le mieux accepté.

En sortie, Moonlight produit outre son format natif mlk : RIB, VRML 1 et 2, DXF, OFF, ML RAW, POV et RAYSHADE.

7 La documentation

En peu de place, il est impossible de décrire les fonctionnalités de Moonlight. Une documentation se doit de l’accompagner pour une prise en main aisée. Certaines documentations ont été mentionnées dans le corps du texte. En résumé on trouvera sur Linuxgraphic, les documentations suivantes :

Traquons le bogue , un pis aller pour passer outre un bogue relatif au surfaces polygonales réalisées avec Composite polygon

Découvrir l’interface de Moonlight.

Modéliser un moniteur plat, quelque peu futuriste.

Hierarchiser la construction d’une scène.

Utilisation des NURBS, création d’un noeud.

Relations, premier niveau : découverte.

Relations, deuxième niveau : approfondissement.

Placage de textures

Créer une surface ondulée, un caillou dans l’eau

Modéliser une théière, comme cela se fait partout.

Modéliser un Tuxy, mon manchot à moi...

Modéliser des ailes d’insecte ou des vitraux

Paramétrer les matériaux, c’est à dire configurer l’aspect final des objets

Cette section de Linuxgraphic est constamment enrichie : il est donc conseillé de la consulter régulièrement.

Bonne modélisation

Pour tout contact, ne pas hésiter à envoyer un courrier à André Pascual

Recherche avancée