Projet

Remise du projet

17 Janvier - 23:59 Chaque groupe m'envoie l'url de la page web décrivant l'interface + le code source de l'appli.

18 Janvier - 14:00 Soutenance/démonstartion

projet2010

Objectif général

Conception d'interfaces 3D multitouch

News

Voici quelques modifs qui permettent un bon éclairage. Chez moi ça marche, mais je ne garantie pas que c'est la bonne solution. Pour plus d'infos, se référer à la page de doc correspondante.

Tâche

Aller chercher des objets dans la scène 3D et les positionnner sur l'établi pour reconstruire l'assemblage donné en exemple. Ceci implique de définir des techniques d'interaction pour

  • Naviguuer (travel + wayfinding)
  • Selectionner
  • Manipuler
  • Contrôler le système


Critères d'évaluation

  • Pertinence des interfaces proposées
  • Facilité d'utilisation
  • Rapidité
  • Créativité / innovation


Règles

  • Input: 2 points de contact uniquement
  • Un seul bloc transporté à la fois
  • Pas de parseur automatique de VRML


Quelques conseils

  • Eviter la téléportation.
  • Attention, la scène (et la taille) sera différente le jour de l'évaluation.
  • Le feedback visuel, c'est bien (d'autres types de feedback aussi).


Déroulement

4 séances de TD de 3 heures sont dédiées au projet. Du travail en dehors de ces séances sera sans doute nécessaire. Par groupe d'au plus 4 étudiants.

Données

Récupérez l'archive ici. Tout est dedans.

Remise du projet

  • Présentation du projet par chaque groupe dans la semaine du 3 janvier (créneau à determiner).
  • Mise en place d'une page web décrivant rapidement les techniques choisies
  • Remise du code (et page web) lors de cette séance de présentation.



TD3 et TD4 - OpenSG

L'objectif de ce TD est de se familiariser avec OpenSG. Notez les liens sur la droite de cette page. Explorez ces pages web pour découvrir OpenSG.

OpenSG sous linux

Récupérez les examples dans /usr/share/doc/libopensg-doc/tutorials/, compilez, testez. Modifiez les exemples en changeant les parametres.

Exercices

1- Créez un système Soleil - Terre - Lune en mouvement

2- Ecrire une appli qui charge le modèle de Bordeaux, et dans laquelle vous pouvez planter des arbres

3- Ajouter une fonctionalité permettant de supprimer et de déplacer un bâtiment

4- Ajouter un mode de déplacement automatique de la caméra jusqu'au bâtiment sélectionné

TD2 - Génération et structuration de scènes 3D

L'objectif de ce TD est de générer automatiquement des scènes urbaines, comme dans les images ci-desous. Pour cela, on commencera par se familiariser avec les noeuds VRML correspondants.

Premiers pas

1 - créez un polygone simple (Noeud IndexedFaceSet)
2 - créez un ensemble de polygones qui définissent un bâtiment basique comme dans l'exemple ci-dessous
3 - appliquez des textures (textures disponibles ici)


Bordeaux Bati

On va maintenant remplacer les 3 textures précédentes par une texture unique. Récupérez mixedTexture.jpg et appliquez là sur le bâtiment.

Génération automatique

L'idée est maintenant de passer à une phase de génération automatique. Récupérez l'archive, compilez, naviguez, et étudiez le code.

Aide d'utilisation de VisualStudio2010

Ouvrir VS10 et Créer un nouveau projet. Choisir un projet vide. Donner un nom. Choisir un emplacement local (par exemple temp.)
Copier le fichier urb2wrl.cpp dans le repertoire du projet. Copier aussi le repertoire "urb" et le répertoire "textures" (+ répertoire "Models" et "bx.wrl")
Puis ajouter le .cpp au projet: Projet - ajouter un élément existant
Compilez; le modèle 3D est généré.

Le modèle 3D est composé d'un grand nombre de noeuds. Afin d'optimiser ce modèle, je vous propose de modifier le code pour:

1: utiliser qu'une seule texture par bâtiment

2: utiliser qu'un seul noeud pour tous les polygones de même apparence

rq: on ne s'occupera que des batimets de type A

TD1 - Introduction

Introduction aux graphes de scènes

Introduction au langage VRML

Contact

Martin Hachet

Liens

TUIO

OpenSG

VRML

Calendrier

Jeudi 16h-19h, salle 201

  • 23 Sept.
  • 30 Sept.
  • 7 Oct.
  • 14 Oct.
  • 21 Oct.
  • 28 Oct.
  • 4 Nov.
  • 11 Nov.
  • 18 Nov.
  • 25 Nov.
  • 2 Dec.
  • 9 Dec.
  • 16 Dec.