Projet image 2014 : Modélisation 3D intuitive

De Ensiwiki
Aller à : navigation, rechercher
Project schedule.png
Titre du projet Modélisation 3D intuitive
Cadre Projets de spécialité
Page principale Projets de spécialité image

Encadrants Marie-Paule Cani, Antoine Begault
Logo de l'application
Exemple d'objet créé par notre application

Étudiants

Sujet

Introduction

Avec l'avènement des imprimantes 3D, de plus en plus de personnes souhaitent créer leurs propres objets en trois dimensions. Les outils actuels de modélisation sont relativement complexes à utiliser et plutôt réservé au monde professionnel.

Objectifs

L'objectif principal du projet est donc de créer un logiciel intuitif de modélisation. L'utilisateur final doit pouvoir comprendre rapidement le fonctionnement du logiciel. C'est pourquoi ce dernier doit être à la fois intuitif, minimaliste et qualitatif. Pour répondre à ces besoins, le produit final se doit d'être innovant en terme d'interactions avec l'utilisateur.

Les utilisateur visés sont des personnes souhaitant créer des objets virtuels (en 3D) afin de pouvoir les imprimer, principalement des figurines ou des objets décoratifs. Les objets créés seront des objets volumiques, pleins, lisses.

L'application met à disposition un espace de création dans lequel l'utilisateur peut laisser libre cours à son imagination. Le processus de création ne doit pas entraver sa créativité.

L'application doit permettre de partager son travail avec d'autres utilisateurs et vers d'autres applications (logiciel d'impression 3D). Il peut ainsi modifier un travail précédemment créé, par lui ou un autre utilisateur.

Démonstration

Une vidéo de présentation est disponible.

Méthodes utilisées

Fusion de deux objets (tiré de [2])

Les surfaces implicites sont adaptées à la création de formes lisses (pour plus d'informations voir le cours de Graphique 3D de 2A et la thèse [2]).

Elles présentent les avantages :

  • de fusion lisse entre deux objets
  • de simplicité de manipulation (l'utilisateur manipule des morceaux de matière)

Néanmoins les inconvénients de cette méthode sont conséquents :

  • impossibilité de créer des formes anguleuses
  • impossibilité d'ajouter des détails précis (les détails sont comme absorbés par la forme globale)

Les fonctionnalités décrites plus bas nous ont permit de réduire les désavantages des surfaces implicites.

Nous avons utilisé une librairie fournie par l'équipe IMAGINE[1] d'Inria[2]. Cette librairie a été utilisée pour la structure de donnée définissant le champ de potentiel de la surface implicite et pour l'algorithme de marching cube nécessaire au rendu.

Fonctionnalités développées

Intuitivité

Pour garantir l'intuitivité de notre application, nous avons réalisé une interface simple, avec peu de boutons et donc peu d'outils. Les interactions sont uniquement réalisées via la souris (mais des raccourcis clavier sont disponibles pour des utilisateurs avancés). Une fenêtre d'aide est aussi disponible pour rappeler les commandes principales.

Interface

Interface
  1. Visualisation
  2. Outil de sélection
  3. Outil de création
  4. Annuler / Rétablir
  5. Corbeille
  6. Sélecteur de Matériaux
  7. Appliquer des Détails
  8. Afficher l'aide

Outil de tracé

Pour créer une forme l'utilisateur peut :

  • cliquer : une sphère de matière est créée
  • clique et déplacer : un tube de matière suivant sont tracé est créé

Outil de sélection

L'utilisateur peut sélectionner une forme pour ensuite la déplacer ou modifier sa taille.

Placement des objets

Les entrées utilisateurs sont en 2 dimensions (les positions de la souris dans l'écran), il est nécessaire de bien projeter ces entrées en 3 dimensions. Ainsi, il faut que l'objet apparaisse bien où l'utilisateur le souhaite.

  • si l'utilisateur clique sur un objet déjà existant, le nouvel objet est placé à la surface de ce dernier
  • si l'utilisateur commence un tracé sur un objet et le termine sur un autre, les deux objets sont reliés par le tube
  • sinon (si l'utilisateur clique dans le vide), l'objet est crée dans le plan du barycentre de la scène

Matériaux

Un matériau dur s’enfonçant dans un matériau mou

Cette fonctionnalité simule deux types de matériaux (matériau dur et matériau mou) et leurs interactions. L'effet produit est celui d'une bille en verre qui s'enfonce dans de la pâte à modeler.

L'implémentation de cette effet est réalisé grâce à un nœud de mélange qui décrit l'interaction entre les deux matériaux (décrit dans [1]).

Cette fonctionnalité contourne le problème des surfaces implicites en donnant la possibilité d'objet qui ne se mélangent pas.

Hiérarchie

Les liens hiérarchiques entre chaque bras et le corps sont représentés en pointillés vert

L'utilisation principale du logiciel étant de modéliser des personnages, introduire une hiérarchie dans le squelette du personnage se révèle utile. Grâce à cette fonctionnalité, lorsque l'utilisateur créé un bras sur le corps d'un personnage, si le corps est redimensionné ultérieurement, le bras reste toujours collé à la surface du corps.

Le lien hiérarchique permet aussi une sélection rapide de toute la hiérarchie par double-clic.

Détails

Un inconvénient des surfaces implicites est leur manque de contrôle local (on ne peut pas ajouter de détails précis sans qu'il soit absorbés par la forme globale). Pour contrer ce problème nous avons défini un champ de potentiel de détail. Sur la forme globale de l'objet, un détail sera ajouté si la valeur du champ de potentiel sur la surface est assez importante. De plus, la taille du détail dépends de la valeur du champ de potentiel, ce qui permet une transition douce entre les zones avec et sans détails. Aussi, comme un champ de potentiel est défini pour chaque type de détail, la transition sur une surface est douce entre les deux types de détails.

Note : le détail ajouté est un simple maillage ajouté à la surface (et n'est donc pas défini implicitement).

Le contrôle utilisateur se fait par un pinceau qui dépose les détails à la surface de la forme.

Validation

Pour valider l'intuitivité de notre application, nous avons soumis plusieurs personnes à des tests utilisateurs. Après une prise en main du logiciel, nous leur avons demandés de réaliser un personnage simple.


Retours

Ce test utilisateurs nous ont permis de dégager plusieurs conclusions :

  • pour créer une sphère, l'utilisateur dessine en premier lieu le contour, alors que l'idée de logiciel est de faire un simple clic. Néanmoins ce concept est rapidement intégré après explication
  • après création d'un objet, certains utilisateurs veulent déplacer/modifier l'objet créé (et veulent donc que l'objet soit automatiquement sélectionné) alors que d'autres préfèrent créer plusieurs formes à la suite.
  • l'usage des raccourcis est naturel (par exemple Ctrl+Z pour annuler la dernière modification)

Réalisations

Le logiciel permet aussi de réaliser des objets plus complexes, tout en conservant la simplicité du processus de création.

Bilan et perspectives

Sur ce projet, nous avons pu réaliser les quatre objectifs que nous nous étions fixés au départ pour apporter de nouvelles contributions à ce domaine : utilisation de matériaux, création de hiérarchies, application de détails et forte intuitivité.

Afin de parvenir à cet objectif, nous avons délibérément laissé de côté certains aspects logiciels qui se seraient révélé utiles : possibilité de dupliquer une forme, sauvegarde et reprise de son travail, manipulation direct de segments. De plus, certains aspects doivent être réétudiés pour améliorer encore l'intuitivité des interactions (choix de la taille du pinceau par exemple).

Enfin, certains aspects techniques doivent être approfondies : amélioration de la gestion des matériaux (noeud de mélange et gestion de plus de matériaux) et exportation du maillage comprenant la forme globale et les détails.

Documentation annexe

Références

[1] Alexis Angelidis, Pauline Jepp, and M-P Cani. Controlled blending in contact situations. In Shape Modeling International, 2002. Proceedings, pages 137–144. IEEE, 2002

[2] Cédric Zanni. Modélisation implicite par squelette et Applications. Thèse, Université Joseph-Fourier - Grenoble I, December 2013.