Programmation De techniques d I3D. Frédéric DAVESNE (IGR UEVE) frederic.davesne@ibisc.univ-evry.fr

Documents pareils
µrv : Realité Virtuelle

INFO-F-105 Language de programmation I Séance VI

Réalité Virtuelle et Interaction Homme/Machine Part. I

30.avr.10 Présentation miniprojet. 9.mars.10 Cours 3 4.mai.10 Cours C mars.10 Cours 4 11.mai.10 Cours C++ 2

Programmation C. Apprendre à développer des programmes simples dans le langage C

OS Réseaux et Programmation Système - C5

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Introduction à l héritage en C++

Programmation système I Les entrées/sorties

1.Introduction - Modèle en couches - OSI TCP/IP

STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi module

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

Programmation système en C/C++

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Architecture distribuée

Introduction à C++ et à wxwidgets

Programmation système de commandes en C

Introduction au langage C

Une introduction à Java

Projet de Veille Technologique

INFO-F-404 : Techniques avancées de systèmes d exploitation

Programmation en C/C++

Cahier des charges. driver WIFI pour chipset Ralink RT2571W. sur hardware ARM7

Architecture des ordinateurs

Cours de C++ François Laroussinie. 2 novembre Dept. d Informatique, ENS de Cachan

Le prototype de la fonction main()

ISTIA INNOVATION. 62, Ave ND du Lac F Angers

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

IRL : Simulation distribuée pour les systèmes embarqués

Plan. École Supérieure d Économie Électronique. Plan. Chap 9: Composants et systèmes de sécurité. Rhouma Rhouma. 21 Juillet 2014

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Dimensionnement d une roue autonome pour une implantation sur un fauteuil roulant

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

Derrière toi Une machine virtuelle!

Présentation d HyperV

UNIVERSITE D EVRY VAL D ESSONNE. Mémoire pour l obtention du titre de Docteur de l Université d Evry Val d Essonne Spécialité: Robotique

M2-Images. Rendu Temps Réel - OpenGL 4 et compute shaders. J.C. Iehl. December 18, 2013

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN

Serveurs de noms Protocoles HTTP et FTP

Programmation C++ (débutant)/instructions for, while et do...while

Cours d Algorithmique et de Langage C v 3.0

Claude Delannoy. 3 e édition C++

3IS - Système d'exploitation linux - Programmation système

Module : Virtualisation à l aide du rôle Hyper-V


LOGICIEL DC4D MONITOR

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Développement d un logiciel de messagerie instantanée avec Dotnet (version simplifiée)

Tout sur les Réseaux et Internet

Informatique III: Programmation en C++

1.6- Génération de nombres aléatoires

MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée Virtual Server de Microsoft

Version beta. Station Météo 12/11/2012. Réalisation d un Station Météo avec Webserver composée de capteurs Grove et d un module Wifi Flyport.

Programmation stochastique

ETUDE DE CAS en UML : GESTION DES COMMANDES DE PIECES FABRIQUEES PAR LA SOCIETE C

Le Network File System de Sun (NFS)

Programme Compte bancaire (code)

Cours 1: Java et les objets

Généralités sur le Langage Java et éléments syntaxiques.

Tunnels et VPN. 22/01/2009 Formation Permanente Paris6 86

Perspectives pour l entreprise. Desktop Cloud. JC Devos IBM IT Architect jdevos@fr.ibm.com IBM Corporation

Réseaux M2 CCI SIRR. Introduction / Généralités

Qui ont toujours à mon côté pour me soutenir et me guider au long de ce projet.

Exécutif temps réel Pierre-Yves Duval (cppm)

//////////////////////////////////////////////////////////////////// Administration systèmes et réseaux

Extended communication server 4.1 : VoIP SIP service- Administration

Le e s tocka k ge g DAS,NAS,SAN

Programmation Réseau SSH et TLS (aka SSL)

Introduction au pricing d option en finance

Pour configurer le Hitachi Tecom AH4021 afin d'ouvrir les ports pour "chatserv.exe", vous devez suivre la proc

Computer Networking: A Top Down Approach Featuring the Internet, 2 nd edition. Jim Kurose, Keith Ross Addison-Wesley, July ENPC.

Conception des systèmes répartis

-1 - Postes de travail graphiques

COMPARAISONDESLANGAGESC, C++, JAVA ET

Documentation : Réseau

Ces deux machines virtuelles seront installées sous VMWARE WORKSTATION.

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Génie Logiciel I. Cours VI - Typage statique / dynamique, fonctions virtuelles et classes abstraites, flots d entrées / sorties, et string

TPs Architecture des ordinateurs DUT Informatique - M4104c SUJETS. R. Raffin Aix-Marseille Université romain.raffin-at-univ-amu.fr

Thermotrack Webserve

Présentation du modèle OSI(Open Systems Interconnection)

1- Principe général : 2- Architecture réseau pour ToIP : 3 Bilan. Qu est-ce que la VoIP/ToIP? IPBX/Protocoles utilisés

Projet de programmation (IK3) : TP n 1 Correction

TD/TP PAC - Programmation n 3

1/ Présentation de SQL Server :

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5

Compression de Données - Algorithme de Huffman Document de Conception

Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai.

as Architecture des Systèmes d Information

Modules du DUT Informatique proposés pour des DCCE en 2014/2015

CENTRALE DE SURVEILLANCE EMBARQUEE MULTIMEDIA

Rapport projet MMI. Luis Domingues, I3 Naomi Favre, I3 Tiago De Deus, I3. Luis Domingues, Tiago De Deus, Naomi Favre SP Interfaces Multimodales

Présentation et portée du cours : CCNA Exploration v4.0

Network musical jammin

La technologie Java Card TM

Package Java.util Classe générique

DNS Server RPC Interface buffer overflow. Céline COLLUMEAU Nicolas BODIN

Transcription:

Programmation De techniques d I3D Frédéric DAVESNE (IGR UEVE) frederic.davesne@ibisc.univ-evry.fr

Architecture générale d un système d I3D classique [Otmane, 2010] - 3 couches logicielles interconnectées - Possiblement plusieurs PCs interconnectés 2

Formalisme générique d une méthode d I3D IR EV F(IR,EV) AR AV IR: Informations reçues du monde Réel EV: Etat du monde Virtuel AR: Action sur le monde Réel AV: Action sur le monde Virtuel

Séparation en 3 couches différentes -Couche dédiée à la récupération des données formant le vecteur IR - pour chacune des techniques d I3D utilisées - Mise à jour à chaque pas de temps -Couche dédiée à l implémentation des techniques d I3D utilisées pour l application - variables associées aux différents objets virtuels - variables générales associées à l environnement virtuel: vecteur EV -Couche dédiée à l application - variables associées à l application -Communication entre les couches? 4

Plateforme de RV/RA EVR@ http://evra.ibisc.univ-evry.fr 3 PCs serveurs - PC1 - Tracking ART - PC2 - SPIDAR - PC3 - Graphique, Applications Communication PC1 Protocole UDP, VRPN PC35 PC2 Protocole TCP

Virtual Reality Peripheral Network VRPN -Librairie Open Source C++, site http://www.cs.unc.edu/research/vrpn/index.html -Gère un ensemble de périphériques dont - Kinect - Wiimote - ARTTracking -Les périphériques sont regroupés en 3 types de périphériques: -Tracker - Analog - Button Le type Tracker contient une position 3D et une orientation (quaternion). Le type Analog est utilisé pour les périphériques tels que joystick ou souris Le type Button est associé à une réponse binaire : bouton de souris, de joystick, etc. 6

Virtual Reality Peripheral Network VRPN Exemple -Souris - Associée à deux canaux de type Analog (positions en X et Y) et 3 canaux de type Button -Flystick (ARTTrack) -Associé à un canal de type Tracker (position 3D + orientation 4D) et 7 canaux de type Button -Kinect -Associé à 24 canaux de type Tracker (position 3D + orientation 4D de 24 parties du corps) 7

Virtual Reality Peripheral Network VRPN -Système Client/Serveur -Protocole réseau UDP -Adapté lorsque l application de RV est distribuée sur plusieurs PC dédiés chacun à un périphérique 8

Virtual Reality Peripheral Network -Coté serveur VRPN Exemple de codage de la gestion d un périphérique de type Tracker void mytracker::mainloop() { vrpn_gettimeofday(&_timestamp, NULL); vrpn_tracker::timestamp = _timestamp; // Les données sont récupérées du périphérique connecté au PC serveur VRPN static float angle = 0; angle += 0.001f; // le vecteur pos contient la position 3d du tracker // Ici on met juste des valeurs arbitraires pos[0] = sinf( angle ); pos[1] = 0.0f; pos[2] = 0.0f; 9

Virtual Reality Peripheral Network -Coté serveur VRPN Exemple de codage de la gestion d un périphérique de tracking // Le tableau d_quat array contient les valeurs de l orientation du tracker, mises dans un quaternion // On met ici des valeurs arbitraires d_quat[0] = 0.0f; d_quat[1] = 0.0f; d_quat[2] = 0.0f; d_quat[3] = 1.0f; char msgbuf[1000]; d_sensor = 0; // codage des valeurs du capteur dans le buffer du serveur int len = vrpn_tracker::encode_to(msgbuf); server_mainloop(); 10 }

Virtual Reality Peripheral Network VRPN -Coté client (récupération des données d une souris) #include "vrpn_analog.h" #include <iostream> using namespace std; void VRPN_CALLBACK handle_analog( void* userdata, const vrpn_analogcb a ) { int nbchannels = a.num_channel; for( int i=0; i < a.num_channel; i++ ) { cout << a.channel[i] << " "; } cout << endl; } 11

Virtual Reality Peripheral Network VRPN -Coté client (récupération des données d une souris) int main(int argc, char* argv[]) { vrpn_analog_remote* vrpnanalog = new vrpn_analog_remote("mouse0@localhost"); vrpnanalog->register_change_handler( 0, handle_analog ); while(1) { vrpnanalog->mainloop(); } return 0; } 12

Codage des objets en I3D 3 caractéristiques différentes coexistent Graphique/Physique (fait par un modeler type 3DS Max, Maya, Blender) Intersection possible Masse Cinématique EV lié à l environnement virtuel Etat de l objet Libre, sélectionnable, sélectionné Position, orientation Texture, couleur Hiérarchie dans le graphe de scène

Sélection des objets en I3D Plusieurs approches possibles Selon la métaphore d I3D utilisée Selon le critère lié à l état sélectionnable Détection de l intersection de l avatar avec l objet graphique Colliders associés à l objet graphique OU Proximité de l avatar avec la position de l objet Définition d un seuil <-> état sélectionnable