Chapitre 1 : Introduction - Programmation 3D

Dimension: px
Commencer à balayer dès la page:

Download "Chapitre 1 : Introduction - Programmation 3D"

Transcription

1 Chapitre 1 : Introduction - Programmation 3D Modélisation 3D et Synthèse Fabrice Aubert fabrice.aubert@lifl.fr IEEA - Master Info F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

2 1 Objectifs de M3DS F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

3 Fondations d une application 3D Modélisation 3D : représentation et construction informatique des objets 3D (forme, position). Visualisation 3D : rendu projectif et par lancer de rayons, éclairage, texture. Interaction 3D : navigation/sélection/manipulation. Animation 3D : représentation et algorithme du mouvement. Programmation 3D : développement/réalisation. On commencera par de la programmation 3D (comment tracer?). F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

4 Orientation du cours Approche "bas-niveau" du développement 3D pour acquérir les fondements : Eléments algébriques : coordonnées, repères, produit scalaire,... (application informatique) Représentations et algorithmes fondamentaux : modèles 3D, élimination parties cachées,... Librairie de programmation 3D : OpenGL. Nous n utiliserons pas d outils "haut-niveau" : Pas d infographie : 3D Studio Max, Blender, Maya, Rhino 3D,... Pas de Conception Assistée par Ordinateur (CAO) : SolidWorks, SolidEdge, CATIA,... Pas d utilisation de frameworks de développement 3D : Unity3D, jmonkeyengine, Ogre3D, Open SceneGraph, Unreal Engine,... F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

5 Environnement TPs C++ 11 OpenGL (> 3.0) Qt Basé sur des squelettes à compléter F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

6 2 Introduction à OpenGL F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

7 OpenGL tracer des triangles... API de rendu 3D dédiée aux cartes graphiques. 2 librairies majeures sur desktop : OpenGL et Direct3D déclinaison sur mobile : OpenGL ES déclinaison pour le web : WebGL Spécifications définies par le consortium http :// Site officiel : http :// F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

8 Tutoriels OpenGL http :// http :// http ://ogldev.atspace.co.uk/ F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

9 Mise en place Initialisation d un contexte OpenGL par le serveur graphique (Windows, X11, etc). Opération très bas-niveau les frameworks GUI "usuels" (Qt, GTK+, wxwidgets,...) proposent de gérer une fenêtre/widget OpenGL. ou passer par une librairie dédiée (exemple : freeglut). les squelettes des tps utilisent le framework Qt (ouverture de la fenêtre OpenGL, etc, assuré par les squelettes). F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

10 Squelette des TP Mise en oeuvre usuelle (événementiel ; démarche similaire dans tous les frameworks) : GLApplication : : GLApplication ( ) { / / constructeur => initialisation des données de l application... void GLApplication : : i n i t i a l i z e ( ) { / / appelée 1 seule fois à l initialisation du contexte OpenGL / / => i n i t i a l i s a t i o n s concernant OpenGL glclearcolor ( 1, 1, 1, 1 ) ; / /... void GLApplication : : r e s i z e ( i n t width, i n t height ) { / / appelée à chaque dimensionnement du widget OpenGL / / ( i n c l u s l ouverture de la fenê t r e ) / / => r églages l i és à l a t a i l l e de l a fenê t r e glviewport (0,0, width, height ) ; / /... void GLApplication : : update ( ) { / / appelée t o utes l e s 20ms (60Hz ) / / => mettre à jour les données de l application / / avant l a f f i c h a g e de l a prochaine image ( animation ) / /... void GLApplication : : draw ( ) { / / appelée après chaque update / / => tracer toute l image g l C l e a r (GL_COLOR_BUFFER_BIT ) ; / /... F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

11 Premier exemple Se familiariser avec le vocabulaire technique de la prog3d Vertex Buffer Object (VBO) Vertex Array Object (VAO) Program Shader (Vertex Shader et Fragment Shader). Commandes de tracé. Suite du chapitre : très technique! (CTD = principes/étapes/commentaires nécessaires ; TP = mise en pratique du code)??? ====================== F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

12 Sommets des triangles On doit définir la position des 6 sommets des triangles (sommet = vertex en anglais). Les coordonnées (x,y,z) en OpenGL sont normalisées : NDC = Normalized Device Coordinates x (horizontal), y (vertical) et z (profondeur) sont comprises dans [ 1, 1] GLApplication. cpp : GLApplication. h : GLApplication : : GLApplication ( ) { class GLApplication { _positiondata ={ ,0.0, 0.3, / / vertex 0 / / f i r s t t r i a n g l e GLApplication ( ) ; 0.3, 0.7, 0.3, / / vertex ,0.9, 0.3, / / vertex 2 private : 0.4, 0.5,0.4, / / vertex 3 / / second t r i a n g l e std : : vector <float > _positiondata ; 0. 9, 0. 4, 0. 4, / / vertex , 0.9,0.4 / / vertex 5 ; F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

13 Copie sur le serveur OpenGL OpenGL manipule/trace des données qui sont dans sa propre mémoire (serveur OpenGL). Il faut donc copier les données de l application cliente dans la mémoire OpenGL. Utilisation des Vertex Buffer Objects (VBO). VBO = zone mémoire OpenGL identifiée par un entier. GLApplication. h : class GLApplication {... GLApplication ( ) ; void initvbo ( ) ;... private : std : : vector <float > _positiondata ; GLuint _ positionbuffer ; / / un i d e n t i f i a n t pour un VBO... Copie des données _positiondata dans le VBO _positionbuffer (cf signification des instructions dans transparent suivant) : GLApplication. cpp : void GLApplication : : initvbo ( ) { glgenbuffers (1,& _positionbuffer ) ; g l B in d B u f fe r (GL_ARRAY_BUFFER, _p o s i t i o n B u f f e r ) ; glbufferdata (GL_ARRAY_BUFFER, _positiondata. size () s i z e o f ( f l o a t ), _positiondata. data ( ),GL_STATIC_DRAW ) ; F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

14 VBO : Vertex Buffer Object GLApplication. cpp : void GLApplication : : initvbo ( ) { glgenbuffers (1,& _positionbuffer ) ; g l Bi n d B u f fe r (GL_ARRAY_BUFFER, _p o s i t i o n B u f f e r ) ; glbufferdata (GL_ARRAY_BUFFER, _positiondata. size () s i z e o f ( f l o a t ), _positiondata. data ( ),GL_STATIC_DRAW ) ; glgenbuffers : génère un nouvel identifiant (c est un entier) pour une zone mémoire OpenGL (un buffer). L identifiant _positionbuffer est encore appelé handle ou référence. glbindbuffer : indique quel est le VBO courant actif. Après ce bind, toutes les instructions qui concernent ARRAY_BUFFER concerneront le VBO _positionbuffer (indirection). glbufferdata : recopie les données clientes (contenues dans _positiondata) dans le buffer OpenGL référencé par ARRAY_BUFFER (ici l identifiant _positionbuffer). Syntaxe : void glbufferdata(glenum target, GLsizeiptr size, const GLvoid data, GLenum usage); Remarque : le contenu des VBO n a aucune interprétation particulière pour OpenGL! (ce sont des octets). F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

15 Commande de tracé void GLApplication : : draw ( ) { g l C l e a r (GL_COLOR_BUFFER_BIT ) ;... gldrawarrays (GL_TRIANGLES, 0, 6 ) ;... Tracer des triangles en prenant 6 sommets (0 = début = à partir du premier sommet). Cela ne suffit pas! Il faut préciser avant gldrawarrays où prendre les données des sommets et comment "afficher". F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

16 Pipeline OpenGL (principe) Etapes successives (= pipeline) lors du gldrawarrays : Idem pour les triangles suivants. F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

17 Shaders Ce sont des programmes qu il faut donner à OpenGL (sources, compilation, linkage). Langage : GLSL (GL Shading Language). Proche du C. Très orienté 3D (types prédéfinis, fonctions). Exemple de vertex shader simple (exécuté pour chaque sommet) : # version 130 in vec3 position ; / / attribut (x, y, z ) void main ( ) { gl_position=vec4 ( position, 1. 0 ) ; attribut = données d entrées pour chaque sommet. Il faudra indiquer à OpenGL comment alimenter cet attribut (i.e. où aller chercher ces données). gl_position = variable prédéfinie obligatoirement à affecter (objectif obligatoire du vertex shader = donner la position du sommet). vec4 = 4 coordonnées?? gl_position=vec4(x,y,z,w) : coordonnées homogènes (décrites plus tard). Pour l instant (on précisera au chapitre suivant) on prend w = 1.0 ; les coordonnées (x, y, z) de gl_position sont à donner en NDC (Normalized Device Coordinates). F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

18 Fragment shader Exemple de fragment shader simple (exécuté pour chaque pixel affiché) : # version 130 out vec4 fragcolor ; / / s o r t i e = données du p i x e l void main ( ) { fragcolor=vec4 ( 1, 0, 0, 1 ) ; / / rouge, vert, bleu, alpha obligatoire de donner au minimum une sortie (fragcolor ici) qui sera la couleur du pixel. remarque : toutes les données associées à un pixel sont regroupées sous le nom de fragment. F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

19 Shaders en OpenGL Il faut : Créer un identifiant pour un program shader : un program shader regroupera un vertex shader et un fragment shader. Créer les identifiants pour le fragment et le vertex shader. Affecter les codes sources à ces identifiants. Compiler le fragment et le vertex shader. Linker le program shader. F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

20 Shaders en OpenGL void GLApplication : : initprogramshader ( ) { s t r i n g vertexsource = " # version 130\n " " in vec3 position ; " / / " traditionnellement " : attribut " position " appelé " vertex " " void main ( ) { " " gl_position=vec4 ( position, 1. 0 ) ; " " " ; s t r i n g fragmentsource = " # version 130\n " " out vec4 fragcolor ; " " void main ( ) { " " fragcolor=vec4 ( 1, 0, 0, 1 ) ; " " " ; _program=glcreateprogram ( ) ; / / membre GLuint _program ; GLuint vertexshader=glcreateshader (GL_VERTEX_SHADER ) ; GLuint fragmentshader=glcreateshader (GL_FRAGMENT_SHADER) ; glattachshader ( _program, vertexshader ) ; glattachshader ( _program, fragmentshader ) ; const char source ; source=vertexsource. c _s t r ( ) ; glshadersource ( vertexshader,1,&source,null ) ; source=fragmentsource. c _str ( ) ; glshadersource ( fragmentshader,1,&source,null ) ; glcompileshader ( vertexshader ) ; glcompileshader ( fragmentshader ) ; glbindattriblocation ( _program,0, " position " ) ; gllinkprogram ( _program ) ; glbindattriblocation?? l attribut position du vertex shader sera identifié par le numéro 0 (sera utilisé pour alimenter les valeurs de cet attribut position). F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

21 Tracé OpenGL void GLApplication : : draw ( ) { / / appelée après chaque update / / => tracer toute l image g l C l e a r (GL_COLOR_BUFFER_BIT ) ; gluseprogram ( _program ) ;... gldrawarrays (GL_TRIANGLES, 0, 6 ) ; gluseprogram ( 0 ) ;... On a indiqué avec quel programme shader il faut tracer les triangles. gluseprogram(0)?? précaution pour d éventuels effets de bord ("normalement" inutile). Cela ne suffit toujours pas! Il faut préciser comment alimenter les attributs du vertex shader (i.e. sur cet exemple, indiquer où se trouvent les valeurs de l attribut position). F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

22 Vertex Array Objects (VAO) Le rôle d un VAO est d indiquer quelles seront les valeurs des attributs du vertex shader actif lors du tracé : il fait le lien entre les buffers et les attributs des shaders. VAO = indiquer pour chaque attribut du Vertex Shader quel VBO sera utilisé. Un même VAO peut être appliqué à différents shaders (et le même shader à différents VAO). Comme la très grande majorité des "Objects" OpenGL, il faut : générer un identifiant de VAO, puis faire un bind pour le rendre actif et travailler dessus : void GLApplication : : initvao ( ) { glgenvertexarrays (1,& _vao ) ; glbindvertexarray ( _vao ) ; g l Bi n d B u f fe r (GL_ARRAY_BUFFER, _p o s i t i o n B u f f e r ) ; g l V e r t e x A t t r i b P o i n t e r ( 0,3,GL_FLOAT, GL_FALSE, 0, 0 ) ; glenablevertexattribarray ( 0 ) ; glbindvertexarray ( 0 ) ; / / par pr é caution ( e f f e t de bord ) glvertexattribpointer : associe l attribut numéro 0 du shader qui sera actif lors du tracé (sur notre exemple il s agit la variable position : cf glbindattriblocation de l initialisation du shader) au buffer ARRAY_BUFFER. Les données d un buffer n ont aucune interprétation : il faut donc préciser combien de composantes il faut prendre et de quel type pour l attribut 0 (ici 3 float (x, y, z) pour chaque sommet). GL_FALSE, 0, 0 : paramètres vus plus tard en TP. glenablevertexattribarray(0) : indique que l attribut numéro 0 du shader actif lors du tracé doit être alimenté par un ARRAY_BUFFER (par défaut, ils sont aliméntés par des valeurs constantes). F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

23 Tracé OpenGL void GLApplication : : i n i t i a l i z e ( ) { / / appelée 1 seule fois à l initialisation du contexte / / => i n i t i a l i s a t i o n s OpenGL glclearcolor ( 1, 1, 1, 1 ) ; initprogramshader ( ) ; initvbo ( ) ; initvao ( ) ; void GLApplication : : draw ( ) { / / appelée après chaque update / / => tracer toute l image g l C l e a r (GL_COLOR_BUFFER_BIT ) ; gluseprogram ( _program ) ; glbindvertexarray ( _vao ) ; gldrawarrays (GL_TRIANGLES, 0, 6 ) ; gluseprogram ( 0 ) ; glbindvertexarray ( 0 ) ; F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

24 Résumé Les données sont gérées par l application (sur cet exemple, le tableau des coordonnées des triangles). Généralement les données (i.e. les modèles) sont plus complexes qu un simple tableau : prévoir une phase de copie/transformation dans un tableau pour pouvoir ensuite copier dans les buffers OpenGL. Démarche : Initialiser : Program Shader (inclut un Vertex Shader et un Fragment Shader) : compiler/linker les shaders (souvent fait une fois pour toute à l initialisation). VBO : copier les données de l application (positions, couleurs, etc des sommets) dans des buffers OpenGL (peut être dynamique avec une mise à jour de ces buffers). VAO : indiquer quel VBO alimentera chaque attribut des shaders (généralement fait une fois pour toute à l initialisation). Pour tracer : Activer un Shader (inclut un Vertex et un Fragment Shaders) Activer un VAO (associe pour chaque attribut du Vertex Shader un VBO) Faire un (ou plusieurs) gldraw (parcourt les VBO dans l ordre : 3 premiers sommets = premier triangle ; 3 sommets suivans = second triangle ; etc). F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

25 Résumé "Lourd"? la démarche devient rapidement systématique (quasi du copier-coller pour chaque VAO, VBO et aisé à abstraire ; 2/3 shaders pour une application simple). beaucoup de framework allègent la gestion des shaders (lecture du code source depuis des fichiers, puis compilation/link en une méthode), des VBO, et des VAO (avec, souvent, le risque de réduire leur richesse/liberté). comprendre l intérêt : lors d un gldrawarrays(gl_triangles,0, ) le cpu ne fait rien (tout est assuré par la carte graphique). souplesse de programmation des vertex/fragment shaders. https :// F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

26 3 Paramétrisation des shaders (uniform) F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

27 Objectif Changer la couleur dans le fragment shader? (pas très dynamique...) # version 130 out vec4 fragcolor ; / / s o r t i e = données du p i x e l void main ( ) { fragcolor=vec4 ( 0, 1, 0, 1 ) ; / / rouge, vert, bleu, alpha F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

28 Uniform Fragment shader : # version 130 uniform vec4 color ; out vec4 fragcolor ; void main ( ) { fragcolor=color ; on affecte la couleur depuis l application : void GLApplication : : draw ( ) { g l C l e a r (GL_COLOR_BUFFER_BIT ) ; gluseprogram ( _program ) ; GLint locationcolor=glgetuniformlocation ( _program, " color " ) ; gluniform4f ( l o c a t i o n C o l o r, 0, 1, 0, 1 ) ; / / t o u t e valeur c a l c u l ée ou non glbindvertexarray ( _vao ) ; gldrawarrays (GL_TRIANGLES, 0, 6 ) ; gluseprogram ( 0 ) ; glbindvertexarray ( 0 ) ; Un uniform reste constant pendant tout le gldrawarrays (mais peut, bien sûr, être modifié entre 2 gldrawarrays par l application...) F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

29 4 Communication vertex/fragment shaders (varying) F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

30 Objectif Il y a un attribut supplémentaire à chaque sommet (une couleur en plus de la position). En chaque pixel la couleur est interpolée (i.e. "moyenne pondérée"). F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

31 Vertex/Fragment Vertex : # version 130 in vec3 position ; / / attribut (x, y, z ) in vec4 color ; / / attribut ( r, v,b,a ) out vec4 fcolor ; / / varying : out pour vertex, in pour fragment void main ( ) { fcolor = color ; gl_position=vec4 ( position, 1. 0 ) ; Fragment : # version 130 in vec4 fcolor ; / / c a l c u l ée par i n t e r p o l a t i o n des valeurs a f f e c t ées / / dans l e v e r t e x shader ( varying ) out vec4 fragcolor ; void main ( ) { fragcolor=fcolor ; fcolor est affecté dans le vertex shader (exécuté pour chaque sommet du triangle tracé). fcolor est "récupéré" dans le fragment shader (exécuté pour chaque pixel du triangle tracé) : la valeur récupérée est calculée par interpolation par OpenGL. C est la "moyenne pondérée" (selon la position du pixel) des 3 fcolor calculés aux sommets du triangle. F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

32 Interpolation Bien comprendre le processus : la couleur fcolor est affectée uniquement aux sommets par le vertex shader (pour un triangle = 3 valeurs). lors de la rasterization (remplissage pixel par pixel), chaque fragment (triangle de 500 pixels = 500 exécutions du fragment shader) récupère une valeur fcolor calculée (par interpolation). ces variables calculées entre le vertex shader (avec out) et le fragment shader (avec in) sont souvent appelées varying (ancienne syntaxe). F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

33 Interpolation linéaire M = (1 λ)v 0 + λv 1 (avec λ [0,1]) Interpoler linéairement la valeur f entre V 0 et V 1 signifie qu on considère que f varie linéairement entre V 0 et V 1 (la variation est constante entre f(v 0 ) et f(v 1 )). f(m) = (1 λ)f(v 0 ) + λf(v 1 ) Remarque : calcul de λ connaissant V 0, V 1 et M? F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

34 Interpolation bilinéaire (triangle) Interpolation linéaire sur [V2 V 0 ] : M 1 = (1 λ 1 )V 2 + λ 1 V 0 f(m 1 ) = (1 λ 1 )f(v 2 ) + λ 1 f(v 0 ) Interpolation linéaire sur [V2 V 1 ] : M 2 = (1 λ 2 )V 2 + λ 2 V 1 f(m 2 ) = (1 λ 2 )f(v 2 ) + λ 2 f(v 1 ) Interpolation linéaire sur [M1,M 2 ] : M = (1 λ)m 1 + λm 2 f(m) = (1 λ)f(m 1 ) + λf(m 2 ) Remarques : «en dessous»de V0, il faut poursuivre le calcul sur M 1 avec les sommets V 0 et V 1. Toute valeur varying sera calculée ainsi avant l exécution d un fragment shader (dans le principe ; le calcul exact est à nuancer avec la correction de perspective qui sera vue plus tard). Appliquée à la couleur, cette interpolation est appelée interpolation de Gouraud (ou «lissage»de Gouraud = Gouraud Shading). F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

35 Couleurs des sommets dans VBO Il faut spécifier la couleur en chaque sommet (en plus des coordonnées) : GLApplication : : GLApplication ( ) { _positiondata ={ 0.8,0.0, 0.3, / / vertex 0 / / f i r s t triangle 0.3, 0.7, 0.3, / / v e r t e x 1 0.0,0.9, 0.3, / / v e r t e x 2 0.4, 0.5,0.4, / / v e r t e x 3 / / second t r i a n g l e 0. 9, 0. 4, 0. 4, / / v e r t e x 4 0.8, 0.9,0.4 / / v e r t e x 5 ; _colordata = { 1. 0, 0. 0, 0. 0, 1. 0, / / color 0 / / f i r s t triangle 0. 0, 1. 0, 0. 0, 1. 0, / / c o l o r , 0. 0, 1. 0, 1. 0, / / c o l o r , 0. 8, 0. 2, 1. 0, / / c o l o r 3 / / second t r i a n g l e 0. 8, 0. 1, 0. 0, 1. 0, 0. 1, 0. 7, 0. 8, 1. 0 ; void GLApplication : : initvbo ( ) { glgenbuffers (1,& _positionbuffer ) ; g l Bi n d B u f fe r (GL_ARRAY_BUFFER, _p o s i t i o n B u f f e r ) ; glbufferdata (GL_ARRAY_BUFFER, _positiondata. size () s i z e o f ( f l o a t ), _positiondata. data ( ),GL_STATIC_DRAW ) ; glgenbuffers (1,& _colorbuffer ) ; g l Bi n d B u f fe r (GL_ARRAY_BUFFER, _c o l o r B u f f e r ) ; glbufferdata (GL_ARRAY_BUFFER, _colordata. size () s i z e o f ( f l o a t ), _colordata. data ( ),GL_STATIC_DRAW ) ; F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

36 Modifications VAO Ne pas oublier de faire la correspondance numéro d attribut/nom de l attribut lors de l initialisation du program shader : void GLApplication : : initprogramshader ( ) { / /... read, compile, l i n k shader / /... glbindattriblocation ( _program,0, " position " ) ; glbindattriblocation ( _program,1, " couleur " ) ; gllinkprogram ( _program ) ; Faire la correspondance numéro d attribut/vbo dans le VAO : void GLApplication : : initvao ( ) { glgenvertexarrays (1,& _vao ) ; glbindvertexarray ( _vao ) ; / / p o s i t i o n = a t t r i b u t e 0 g l B in d B u f fe r (GL_ARRAY_BUFFER, _p o s i t i o n B u f f e r ) ; g l V e r t e x A t t r i b P o i n t e r ( 0, 3,GL_FLOAT, GL_FALSE, 0, 0 ) ; / / c o l o r = a t t r i b u t e 1 g l B in d B u f fe r (GL_ARRAY_BUFFER, _c o l o r B u f f e r ) ; g l V e r t e x A t t r i b P o i n t e r ( 1, 4,GL_FLOAT, GL_FALSE, 0, 0 ) ; glenablevertexattribarray ( 0 ) ; glenablevertexattribarray ( 1 ) ; glbindvertexarray ( 0 ) ; F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

37 Exercice On souhaite : Plusieurs solutions (2 gldraw avec uniform, 1 gldraw avec attributs). F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

38 Exercice On dispose de : _positiondata = {V0,V1,V2,V3,V4,V5,V6,V7 ; (pseudo code : comprendre un tableau de f l o a t {x0, y0, z0, x1, y1, z1,... etc ). On souhaite : Remarque : ordre des sommets et un sommet en commun. F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

39 Indexed Face Set On peut donner d une part les sommets, et d autre part comment ils sont reliés pour former les triangles (en donnant la succession des indices des sommets). GLApplication : : GLApplication ( ) {... _indexdata = { 2, 0, 5, 1, 4, 3, 7, 3, 6 ; / / i n d i c e s des sommets ( i n d i r e c t i o n dans l e s b u f f e r s )... void GLApplication : : initvbo ( ) { / /... c f initvbo pr écédent glgenbuffers (1,& _indexbuffer ) ; / / A t t e n t i o n à l a c i b l e du Bind et de l a copie!!! g l Bi n d B u f fe r (GL_ELEMENT_ARRAY_BUFFER, _indexbuffer ) ; glbufferdata (GL_ELEMENT_ARRAY_BUFFER, _indexdata. size () sizeof ( unsigned int ), _indexdata. data ( ),GL_STATIC_DRAW ) ; void GLApplication : : initvao ( ) { glgenvertexarrays (1,& _vao ) ; glbindvertexarray ( _vao ) ; / /... c f VAO pr écédent / / A t t e n t i o n à l a c i b l e g l Bi n d B u f fe r (GL_ELEMENT_ARRAY_BUFFER, _indexbuffer ) ; glbindvertexarray ( 0 ) ; void GLApplication : : draw ( ) { / /... c f draw pr écédent glbindvertexarray ( _vao ) ; / / 9 indices à prendre ( i.e. 9 r é f érences à des sommets = 3 t r i a n g l e s ) gldrawelements (GL_TRIANGLES,9,GL_UNSIGNED_INT, 0 ) ; / /... F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

40 Exercice On souhaite : gldrawarrays(gl_triangle_strip,...) On souhaite : F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

41 Exercice anneau on peut ("bien sûr") faire gldrawelements avec GL_TRIANGLE_STRIP. _positiondata ={V0,V1,V2,V3,V4,V5,V6,V7 ; _elementdata = { 0, 1, 2, 3, 4, 5, 6, 7, 0, 1 ;... gldrawelements (GL_TRIANGLE_STRIP,10,GL_UNSIGNED_INT, 0 ) ;... Est-ce qu il faut préférer la redondance des sommets à la fin (gldrawarrays(gl_triangle_strip,...) ou faire un index (gldrawelements(gl_triangle_strip,...))?? Le GL_TRIANGLE_STRIP peut demander un gros effort d organisation des triangles (ordre des sommets, découpage, etc) : pas si souvent utilisé que ça en pratique. F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

42 Exercice F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

43 Exercice (tracé avec glpolygonmode(gl_front_and_back,gl_fill)) _positiondata. c l e a r ( ) ; _positiondata. push_back (0.0); _positiondata. push_back (0.0); _positiondata. push_back (0.0); i n t nbslice =100; f l o a t steptheta = / nbslice ; f l o a t t h e t a =0.0; double x, y, z =0; for ( i n t i =0; i <nbslice ; i ++) { x=0.5 cos ( theta ) ; y=0.5 s i n ( t h e t a ) ; _positiondata. push_back (x ) ; _positiondata. push_back (y ) ; _positiondata. push_back (z ) ; t h e t a +=steptheta ; _positiondata. push_back (0.5); _positiondata. push_back (0.0); _positiondata. push_back (0.0); (tracé avec glpolygonmode(gl_front_and_back,gl_line)) F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

44 Sommet = tous ses attributs _positiondata ={ V0, V1, V2, V3 ; _colordata= { rouge, vert, rouge, bleu ; / / pseudo code _indexdata = { 0, 1, 2, 0, 2, 3 ;... gldrawelements (GL_TRIANGLES,6,GL_UNSIGNED_INT, 0 ) ; Remarque : non tracé en GL_TRIANGLE_STRIP pour comparer à l illustration suivante. _positiondata ={ V0, V1, V2, V3, V4, V5 ; _colordata= { rouge, vert, rouge, bleu, vert, bleu ; / / pseudo code _indexdata = { 0, 1, 2, 4, 5, 3 ;... gldrawelements (GL_TRIANGLES,6,GL_UNSIGNED_INT, 0 ) ; V4 = V0 et V5 = V2 : V0 et V2 doivent être dupliqués car ils n ont pas la même couleur (il n y a qu un seul ELEMENT_ARRAY_BUFFER : chaque indice concerne tous les attributs). 1 sommet = tous ses attributs F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

45 5 Texture F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

46 Résultat F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

47 Texture Texture = "données" (ici une image : chaque élément est un triplet (rouge,vert,bleu)) Chaque élément = texel (analogie avec pixel). Les texels sont localisés par des coordonnées (s, t) normalisées ( [0, 1]). F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

48 Coordonnées de textures _positiondata ={ 0.8,0.0, 0.3, / / vertex 0 / / f i r s t t r i a n g l e 0.3, 0.7, 0.3, / / vertex 1 0.0,0.9, 0.3, / / vertex 2 0.4, 0.5,0.4, / / vertex 3 / / second t r i a n g l e 0. 9, 0. 4, 0. 4, / / vertex 4 0.8, 0.9,0.4 / / vertex 5 ; _texcoorddata ={ 0. 2, 0. 3, / / texcoord f o r V0 0. 6, 0. 2, / / texcoord f o r V1 0. 1, 0. 9, / / texcoord f o r V2 0. 7, 0. 7, / / texcoord f o r V3 0. 9, 0. 1, / / texcoord f o r V4 0. 9, 0. 7 / / texcoord f o r V5 ; A chaque sommet on indique les coordonnées de texture (attribut). Pour ce résultat : les coordonnées de texture seront interpolées lors de la rasterization (varying). on affecte la couleur du pixel (fragment shader) avec la couleur du texel qui se trouve à ces coordonnées de texture. F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

49 Texture Object void GLApplication : : inittexture ( ) { / / load image ( image loader l i b r a r y r e q u i r ed... ) QImage img ; img. load ( ".. / media / lagoon. jpg " ) ; img=img. converttoformat (QImage : : Format_ARGB32 ). mirrored ( ) ; / / Qt Image (0,0) is left top => mirrored / / t e x t u r e Object ( t a r g e t GL_TEXTURE_2D) glgentextures (1,& _textureid ) ; glbindtexture (GL_TEXTURE_2D, _textureid ) ; glteximage2d (GL_TEXTURE_2D,0,GL_RGBA, img. width ( ), img. height ( ),0,GL_BGRA,GL_UNSIGNED_BYTE, img. b i t s ( ) ) ; gltexparameterf (GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR ) ; gltexparameterf (GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR ) ; gltexparameterf (GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_REPEAT ) ; gltexparameterf (GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_REPEAT ) ; F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

50 VBO/VAO Idem que les positions, couleurs,... void GLApplication : : i n i t B u f f e r ( ) {... glgenbuffers (1,& _texcoordbuffer ) ; g l Bi n d B u f fe r (GL_ARRAY_BUFFER, _texcoordbuffer ) ; glbufferdata (GL_ARRAY_BUFFER, _texcoorddata. size () sizeof ( f l o a t ), _texcoorddata. data ( ),GL_STATIC_DRAW ) ;... void GLApplication : : initvao ( ) { glgenvertexarrays (1,& _vao ) ; glbindvertexarray ( _vao ) ; / / p o s i t i o n = a t t r i b u t e 0 g l Bi n d B u f fe r (GL_ARRAY_BUFFER, _p o s i t i o n B u f f e r ) ; g l V e r t e x A t t r i b P o i n t e r ( 0,3,GL_FLOAT, GL_FALSE, 0, 0 ) ; / / texcoord = a t t r i b u t e 1 g l Bi n d B u f fe r (GL_ARRAY_BUFFER, _texcoordbuffer ) ; g l V e r t e x A t t r i b P o i n t e r ( 1,2,GL_FLOAT, GL_FALSE, 0, 0 ) ; glenablevertexattribarray ( 0 ) ; glenablevertexattribarray ( 1 ) ; glbindvertexarray ( 0 ) ; F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

51 Shaders Coordonnées de textures aux sommets = attributs (comme les autres données aux sommets) La texture elle-même (l ensemble des texels) = uniform de type sampler2d Vertex shader : # version 130 in vec3 position ; / / attribut (x, y, z ) in vec2 texcoord ; / / attribut (s, t ) out vec2 ftexcoord ; / / out pour vertex, in pour fragment void main ( ) { ftexcoord = texcoord ; gl_position=vec4 ( position, 1. 0 ) ; Fragment : # version 130 uniform sampler2d texunit ; in vec2 ftexcoord ; out vec4 fragcolor ; void main ( ) { fragcolor=texture2d ( texunit, ftexcoord ) ; F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

52 Unité de texture # version 130 uniform sampler2d texunit ; in vec2 ftexcoord ; out vec4 fragcolor ; void main ( ) { fragcolor=texture2d ( texunit, ftexcoord ) ; Attention : texunit ne sera pas affecté avec un identifiant de texture (i.e. _textureid dans l exemple) mais avec une unité de texture (i.e. nombre entre 0 et 7). Il faut donc préciser quelle identifiant de texture est affectée à l unité de texture souhaitée. void GLApplication : : draw ( ) { / / appelée après chaque update / / => tracer toute l image g l C l e a r (GL_COLOR_BUFFER_BIT ) ; gluseprogram ( _program ) ; glactivetexture (GL_TEXTURE0 ) ; glbindtexture (GL_TEXTURE_2D, _textureid ) ; i n t locationtexunit=glgetuniformlocation ( _program. id ( ), " texunit " ) ; gluniform1i ( locationtexunit, 0 ) ; glbindvertexarray ( _vao ) ; gldrawarrays (GL_TRIANGLES, 0, 6 ) ; gluseprogram ( 0 ) ; glbindvertexarray ( 0 ) ; F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

53 6 Normalized Device Coordinates et Window Coordinates F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

54 Volume de visualisation Les coordonnées (x, y, z) des sommets visibles sont dans [ 1, 1] : définit le volume de visualisation en Normalized Device Coordinates (NDC). Des sommets extérieurs à ce volume provoquent une opération de clipping par OpenGL (découpage des triangles). _positiondata ={ 1.3,0.0, 0.3, / / v e r t e x 0 / / f i r s t t r i a n g l e 0.3, 0.7, 0.3, / / v e r t e x 1 0.0,0.9, 0.3, / / v e r t e x 2 0.4, 0.5,0.4, / / v e r t e x 3 / / second t r i a n g l e 1. 5, 0. 4, 0. 4, / / v e r t e x 4 0.8, 1.3,0.4 / / v e r t e x 5 ; F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

55 Clipping _positiondata ={ 1.3,0.0, 0.3, / / vertex 0 / / f i r s t t r i a n g l e 0.3, 0.7, 0.3, / / vertex 1 0.0,0.9, 1.3, / / vertex 2 0.4, 0.5,0.4, / / vertex 3 / / second t r i a n g l e 1. 5, 0. 4, 0. 4, / / vertex 4 0.8, 1.3,0.4 / / vertex 5 ; F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

56 Viewport et Window Coordinates Lors de la rasterization (tracé pixel par pixel) sur la fenêtre graphique, OpenGL trace des pixels dont les coordonnées doivent être connues en coordonnées de la fenêtre graphique (par exemple reporter sur une fenêtre graphique de 256x512 pixels) : C est le rôle du glviewport(xv,yv,width,height). Par exemple, pour glviewport(10,20,256,512), reporte x NDC [ 1,1],y NDC [ 1,1] dans x window [10,266],y window [20,532]. Les coordonnées pixels (i.e. transformation par le viewport) sont appelées Window Coordinates. Remarque : le z NDC [ 1,1] subit également un report pour obtenir z window dans [0,1] (indépendant du viewport). z window est généralement appelé depth (profondeur) et nous verrons son utilisation dans le chapitre suivant. x window = (1 + x NDC ) width 2 + xv y window = (1 + y NDC ) height 2 + yv z window = (1 + z NDC )/2.0 Remarque : les window coordinates sont accessibles dans le fragment shader par la variable prédéfinie gl_fragcoord (gl_fragcoord.z contenant la profondeur). F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

57 7 Quelques remarques pour finir... F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

58 Copie buffer Si la valeur des attributs est dynamique (modifications de la position des sommets par exemple), on utilisera glsubbufferdata pour mettre à jour les buffers (glbufferdata détruit/réalloue à chaque appel). F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

59 Buffer entrelacé Buffer entrelacé : / / c l i e n t data _ a l l D a t a ={ 1,1,0, 1,0,0,1, 1, 1,0, 0,1,0,1, 1,1,0, 0,0,1,1, 1, 1,0, 1, 1, 0, 1 ; / / i n i t b u f f e r glgenbuffers (1,& _allbuffer ) ; g l B in d B u f fe r (GL_ARRAY_BUFFER, _a l l B u f f e r ) ; glbufferdata (GL_ARRAY_BUFFER, _alldata. size () s i z e o f ( f l o a t ), _alldata. data ( ),GL_STATIC_DRAW ) ; / / vao g l B in d B u f fe r (GL_ARRAY_BUFFER, _a l l B u f f e r ) ; glvertexattribpointer (0,3,GL_FLOAT,GL_FALSE, sizeof ( f l o a t ) 7,0); glvertexattribpointer (1,4,GL_FLOAT,GL_FALSE, sizeof ( float ) 7,(void )(3 sizeof ( float ) ) ) ; F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

60 Primitives de tracé GL_TRIANGLES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_LINES, GL_LINE_STRIP, GL_LINE_LOOP, GL_POINTS (+ versions _ADJACENCY, GL_PATCHES). F. Aubert (MS2) M3DS/ 1 - Introduction - Programmation 3D / 60

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

TPs Architecture des ordinateurs DUT Informatique - M4104c SUJETS. R. Raffin Aix-Marseille Université romain.raffin-at-univ-amu.fr TPs Architecture des ordinateurs DUT Informatique - M4104c SUJETS R. Raffin Aix-Marseille Université romain.raffin-at-univ-amu.fr 2015 Table des matières 1 TP 1 : prise en main 2 1.1 Introduction.......................................................

Plus en détail

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

M2-Images. Rendu Temps Réel - OpenGL 4 et compute shaders. J.C. Iehl. December 18, 2013 Rendu Temps Réel - OpenGL 4 et compute shaders December 18, 2013 résumé des épisodes précédents... création des objets opengl, organisation des données, configuration du pipeline, draw,... opengl 4.3 :

Plus en détail

Chapitre 3 : Repères et positionnement 3D

Chapitre 3 : Repères et positionnement 3D Chapitre 3 : Repères et positionnement 3D Modélisation 3D et Synthèse Fabrice Aubert fabrice.aubert@lifl.fr Master Informatique 2014-2015 F. Aubert (MS2) M3DS/ 3 - Repères et positionnement 3D 2014-2015

Plus en détail

GPGPU. Cours de MII 2

GPGPU. Cours de MII 2 GPGPU Cours de MII 2 1 GPGPU Objectif du cours : Comprendre les architectures GPU Comprendre la programmation parallèle sur GPU Maîtriser la programmation Cuda Contenu : 1 ou 2 cours magistraux 2 ou 3

Plus en détail

TP : Gestion d une image au format PGM

TP : Gestion d une image au format PGM TP : Gestion d une image au format PGM Objectif : L objectif du sujet est de créer une classe de manipulation d images au format PGM (Portable GreyMap), et de programmer des opérations relativement simples

Plus en détail

Synthèse d'images I. Venceslas BIRI IGM Université de Marne La

Synthèse d'images I. Venceslas BIRI IGM Université de Marne La Synthèse d'images I Venceslas BIRI IGM Université de Marne La La synthèse d'images II. Rendu & Affichage 1. Introduction Venceslas BIRI IGM Université de Marne La Introduction Objectif Réaliser une image

Plus en détail

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

Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN fbertin@neotilus.com Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184 Frédéric BERTIN fbertin@neotilus.com Présentaion : Mobile 3D Graphics API JSR 184 M3G :présentation Package optionnel de l api J2ME. Prend

Plus en détail

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les

Plus en détail

Modélisation de la vision humaine

Modélisation de la vision humaine Université Montpellier II UFR Sciences 2007 / 2008 FMIN 200 - TER Modélisation de la vision humaine MARIE Sylvain NANARD Marc Encadrants Auteurs CLERC Mickaël DELFOUR Jonathan JULIA Matthieu POTHIN Olivier

Plus en détail

Rendu temps réel de mer et de nuages

Rendu temps réel de mer et de nuages Rendu temps réel de mer et de nuages Linares Antonin, Boyer Julien 17 décembre 2008 1 Résumé Nous allons traiter dans ce document les différentes méthodes explorées afin de parvenir à un rendu en temps

Plus en détail

TP1. Outils Java Eléments de correction

TP1. Outils Java Eléments de correction c sep. 2008, v2.1 Java TP1. Outils Java Eléments de correction Sébastien Jean Le but de ce TP, sur une séance, est de se familiariser avec les outils de développement et de documentation Java fournis par

Plus en détail

1 Introduction et installation

1 Introduction et installation TP d introduction aux bases de données 1 TP d introduction aux bases de données Le but de ce TP est d apprendre à manipuler des bases de données. Dans le cadre du programme d informatique pour tous, on

Plus en détail

Introduction à la Programmation Parallèle: MPI

Introduction à la Programmation Parallèle: MPI Introduction à la Programmation Parallèle: MPI Frédéric Gava et Gaétan Hains L.A.C.L Laboratoire d Algorithmique, Complexité et Logique Cours du M2 SSI option PSSR Plan 1 Modèle de programmation 2 3 4

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

Programmation en Java IUT GEII (MC-II1) 1

Programmation en Java IUT GEII (MC-II1) 1 Programmation en Java IUT GEII (MC-II1) 1 Christophe BLANC - Paul CHECCHIN IUT Montluçon Université Blaise Pascal Novembre 2009 Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1)

Plus en détail

TD : Codage des images

TD : Codage des images TD : Codage des images Les navigateurs Web (Netscape, IE, Mozilla ) prennent en charge les contenus textuels (au format HTML) ainsi que les images fixes (GIF, JPG, PNG) ou animée (GIF animée). Comment

Plus en détail

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0

Plus en détail

Chapitre II : Infographie et bibliothèques graphiques

Chapitre II : Infographie et bibliothèques graphiques Chapitre II : Infographie et bibliothèques graphiques Le premier chapitre a posé les bases perceptives et techniques de la production et de l'affichage d'images, ou plus globalement d'objets graphiques.

Plus en détail

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation Base de données S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Présentation du module Contenu général Notion de bases de données Fondements / Conception Utilisation :

Plus en détail

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez

Plus en détail

Comment intégrer des images dans un texte

Comment intégrer des images dans un texte Quoi de plus utile que de pouvoir ajouter une image, un graphique à un commentaire afin d étoffer celui-ci. C est possible de le faire de plusieurs façon dans le forum Météocentre. Cependant il faut limiter

Plus en détail

Gnuplot. Chapitre 3. 3.1 Lancer Gnuplot. 3.2 Options des graphes

Gnuplot. Chapitre 3. 3.1 Lancer Gnuplot. 3.2 Options des graphes Chapitre 3 Gnuplot Le langage C ne permet pas directement de dessiner des courbes et de tracer des plots. Il faut pour cela stocker résultats dans des fichier, et, dans un deuxième temps utiliser un autre

Plus en détail

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 PLAN DU COURS Introduction au langage C Notions de compilation Variables, types, constantes, tableaux, opérateurs Entrées sorties de base Structures de

Plus en détail

RIE LE RENDU THEO. 2 e trim ÉTAPE DE FINITION BOÎTE DE DIALOGUE. remarques

RIE LE RENDU THEO. 2 e trim ÉTAPE DE FINITION BOÎTE DE DIALOGUE. remarques THEO RIE LE RENDU 2 e trim JANVIER 2008 remarques ÉTAPE DE FINITION Le rendu est la partie finale de notre création, à ce moment on décide que notre 3D est finie et l on en réalise une image 2D Cette image

Plus en détail

Gestion d identités PSL Exploitation IdP Authentic

Gestion d identités PSL Exploitation IdP Authentic Gestion d identités PSL Exploitation IdP Authentic Entr ouvert SCOP http ://www.entrouvert.com Table des matières 1 Arrêt et démarrage 2 2 Configuration 2 2.1 Intégration à la fédération............................

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

Une bibliothèque de templates pour CUDA

Une bibliothèque de templates pour CUDA Une bibliothèque de templates pour CUDA Sylvain Collange, Marc Daumas et David Defour Montpellier, 16 octobre 2008 Types de parallèlisme de données Données indépendantes n threads pour n jeux de données

Plus en détail

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE ARDUINO DOSSIER RESSOURCE POUR LA CLASSE Sommaire 1. Présentation 2. Exemple d apprentissage 3. Lexique de termes anglais 4. Reconnaître les composants 5. Rendre Arduino autonome 6. Les signaux d entrée

Plus en détail

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2 éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........

Plus en détail

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

IRL : Simulation distribuée pour les systèmes embarqués IRL : Simulation distribuée pour les systèmes embarqués Yassine El Khadiri, 2 ème année Ensimag, Grenoble INP Matthieu Moy, Verimag Denis Becker, Verimag 19 mai 2015 1 Table des matières 1 MPI et la sérialisation

Plus en détail

GL BE FLYER. Chef de projet de l équipe : SCIONICO Pierre

GL BE FLYER. Chef de projet de l équipe : SCIONICO Pierre GL BE FLYER Chef de projet de l équipe : SCIONICO Pierre Membres de l équipe : BRESSON Adrien THIERY Kévin SCIONICO Pierre ALBERTINI Rémi ROBERT Cédric Tuteur du projet : GESQUIERE Gilles IUT de l'université

Plus en détail

.. CSS. Damien Nouvel. Damien Nouvel (Inalco) CSS 1 / 15

.. CSS. Damien Nouvel. Damien Nouvel (Inalco) CSS 1 / 15 .. CSS Damien Nouvel Damien Nouvel (Inalco) CSS 1 / 15 Feuilles de styles Plan 1. Feuilles de styles 2. Sélecteurs 3. Attributs Damien Nouvel (Inalco) CSS 2 / 15 Feuilles de styles Déportation des styles

Plus en détail

LES GRANDES ETAPES DE CREATION D UN WEB DESIGN

LES GRANDES ETAPES DE CREATION D UN WEB DESIGN LES GRANDES ETAPES DE CREATION D UN WEB DESIGN PENSER LA STRUCTURE ET LE THEME DU SITE STRUCTURE ET THEME DU SITE Taille (le site sera-t-il extensible ou fixe?) Organisation Thème Couleurs Illustrations

Plus en détail

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental

Plus en détail

PROJET DE MODELISATION CASERNE SERGEANT BLANDAN

PROJET DE MODELISATION CASERNE SERGEANT BLANDAN Boris BRUGEVIN Sylvain GIORIA PROJET DE MODELISATION CASERNE SERGEANT BLANDAN Master 2 Programmation et Développement Université Lumière LYON 2 - GAMAGORA 2007-2008 II.. PRESENTATIION DU PROJET Ce projet

Plus en détail

Créer et partager des fichiers

Créer et partager des fichiers Créer et partager des fichiers Le rôle Services de fichiers... 246 Les autorisations de fichiers NTFS... 255 Recherche de comptes d utilisateurs et d ordinateurs dans Active Directory... 262 Délégation

Plus en détail

Cours 1: Java et les objets

Cours 1: Java et les objets Ressources Les interface homme-machine et le langage Java DUT première année Henri Garreta, Faculté des Sciences (Luminy) Cyril Pain-Barre & Sébastien Nedjar, IUT d Aix-Marseille (Aix) Cours 1: infodoc.iut.univ-aix.fr/~ihm/

Plus en détail

INTRODUCTION AU CMS MODX

INTRODUCTION AU CMS MODX INTRODUCTION AU CMS MODX Introduction 1. Créer 2. Organiser 3. Personnaliser UNE PETITE INTRODUCTION QUEST-CE QU UN CMS? CMS est l acronyme de Content Management System. C est outil qui vous permet de

Plus en détail

Utilisation de l éditeur.

Utilisation de l éditeur. Utilisation de l éditeur. Préambule...2 Configuration du navigateur...3 Débloquez les pop-up...5 Mise en évidence du texte...6 Mise en évidence du texte...6 Mise en page du texte...7 Utilisation de tableaux....7

Plus en détail

Pour les futurs développeurs Sommaire

Pour les futurs développeurs Sommaire Pour les futurs développeurs Sommaire I. Présentation du projet... 2 II. Détails sur les différentes parties... 3 1. Le modèle 3D... 3 2. Reconnaissance des gestes... 4 3. Reconnaissance d objets... 6

Plus en détail

Module.NET 3 Les Assemblys.NET

Module.NET 3 Les Assemblys.NET Module.NET Chapitre 3 Les Assemblys.NET 2011/2012 Page 1 sur 13 Contenu Cours... 3 3.1 - Définition d un assembly.net... 3 3.2 - Private assembly ou assembly privé.... 3 3.3 - Shared assembly ou assembly

Plus en détail

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

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1 Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1 B. Baert & F. Ludewig Bruno.Baert@ulg.ac.be - F.Ludewig@ulg.ac.be Qu est-ce que la programmation? Programmer Ecrire un

Plus en détail

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server Sébastien Boutard Thomas David Le plan de la présentation Petit retour sur les environnements de développement ArcGIS Server

Plus en détail

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A. ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A. - 1 - PREAMBULE Les conditions générales d utilisation détaillant l ensemble des dispositions applicables

Plus en détail

Développement d un moteur de jeu vidéo pour la console Nintendo Wii U et portage d un jeu

Développement d un moteur de jeu vidéo pour la console Nintendo Wii U et portage d un jeu Université de Franche-Comté Shine Research Master 2 Informatique Systèmes Distribués et Réseaux Mémoire de stage de fin d étude Développement d un moteur de jeu vidéo pour la console Nintendo Wii U et

Plus en détail

Vers du matériel libre

Vers du matériel libre Février 2011 La liberté du logiciel n est qu une partie du problème. Winmodems Modem traditionnel Bon fonctionnement Plus cher Electronique propriétaire Blob sur DSP intégré au modem Bien reçu par les

Plus en détail

Dans l Unité 3, nous avons parlé de la

Dans l Unité 3, nous avons parlé de la 11.0 Pour commencer Dans l Unité 3, nous avons parlé de la manière dont les designs sont créés dans des programmes graphiques tels que Photoshop sont plus semblables à des aperçus de ce qui va venir, n

Plus en détail

TP Blender n 2 : Importation d un modèle SketchUp et animation

TP Blender n 2 : Importation d un modèle SketchUp et animation TP Blender n 2 : Importation d un modèle SketchUp et animation Service de Conception Géométrique Université de Liège Aérospatiale et Mécanique Conçu avec Blender 2.66 et SketchUp 8 De SketchUp à Blender

Plus en détail

L analyse d images regroupe plusieurs disciplines que l on classe en deux catégories :

L analyse d images regroupe plusieurs disciplines que l on classe en deux catégories : La vision nous permet de percevoir et d interpreter le monde qui nous entoure. La vision artificielle a pour but de reproduire certaines fonctionnalités de la vision humaine au travers de l analyse d images.

Plus en détail

Systèmes d Exploitation - ENSIN6U3. Aix-Marseille Université

Systèmes d Exploitation - ENSIN6U3. Aix-Marseille Université Systèmes d Exploitation - ENSIN6U3 Systèmes de gestion de fichiers - SGF Leonardo Brenner 1 Jean-Luc Massat 2 1 Leonardo.Brenner@univ-amu.fr 2 Jean-Luc.Massat@univ-amu.fr Aix-Marseille Université Faculté

Plus en détail

SOFI Gestion+ Version 5.4. Echanges de données informatiques Spicers Sofi gestion+ Groupements. SOFI Informatique. Actualisé le 10.09.

SOFI Gestion+ Version 5.4. Echanges de données informatiques Spicers Sofi gestion+ Groupements. SOFI Informatique. Actualisé le 10.09. SOFI Gestion+ SOFI Informatique Version 5.4 Echanges de données informatiques Spicers Sofi gestion+ Groupements Actualisé le 10.09.2004 Table des matières 1. Catalogue et tarifs... 4 1.1 Définition EDI...

Plus en détail

Bases Java - Eclipse / Netbeans

Bases Java - Eclipse / Netbeans Institut Galilée PDJ Année 2014-2015 Master 1 Environnements Java T.P. 1 Bases Java - Eclipse / Netbeans Il existe plusieurs environnements Java. Il est ESSENTIEL d utiliser la bonne version, et un environnement

Plus en détail

Bases de programmation. Cours 5. Structurer les données

Bases de programmation. Cours 5. Structurer les données Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et

Plus en détail

Introduction à MATLAB R

Introduction à MATLAB R Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d

Plus en détail

Cours de numérisation sur Epson Perfection

Cours de numérisation sur Epson Perfection Cours de numérisation sur Epson Perfection 1- Vérifiez la propreté de la vitre, placez l original sur celle-ci. À savoir, on peut numériser des transparents avec ce scanner ; il a un capteur CCD dans le

Plus en détail

Couplage d une base de données documentaire à une visualisation interactive 3D sur l Internet

Couplage d une base de données documentaire à une visualisation interactive 3D sur l Internet Couplage d une base de données documentaire à une visualisation interactive 3D sur l Internet Romain Raffin, Jean-luc REY Aix-Marseille Université Plate-forme technologique PRISM Iut d Aix-Marseille romain.raffin[at]univ-amu.fr

Plus en détail

Plan du cours 2014-2015. Cours théoriques. 29 septembre 2014

Plan du cours 2014-2015. Cours théoriques. 29 septembre 2014 numériques et Institut d Astrophysique et de Géophysique (Bât. B5c) Bureau 0/13 email:.@ulg.ac.be Tél.: 04-3669771 29 septembre 2014 Plan du cours 2014-2015 Cours théoriques 16-09-2014 numériques pour

Plus en détail

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr . Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le

Plus en détail

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation : Algorithmique et programmation : STRUCTURES DE DONNÉES A. Structure et enregistrement 1) Définition et rôle des structures de données en programmation 1.1) Définition : En informatique, une structure de

Plus en détail

RAPPORT AUDIT SEO. Élaboré à l'attention de : Monsieur Greber Élaboré par : Cédric Peinado

RAPPORT AUDIT SEO. Élaboré à l'attention de : Monsieur Greber Élaboré par : Cédric Peinado - RAPPORT AUDIT SEO Élaboré à l'attention de : Monsieur Greber Élaboré par : Cédric Peinado 17 septembre 2013 Table des matières Optimisation structurelle 2 Optimisation des standards, performances et

Plus en détail

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

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3. 1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this

Plus en détail

Traitement numérique de l'image. Raphaël Isdant - 2009

Traitement numérique de l'image. Raphaël Isdant - 2009 Traitement numérique de l'image 1/ L'IMAGE NUMÉRIQUE : COMPOSITION ET CARACTÉRISTIQUES 1.1 - Le pixel: Une image numérique est constituée d'un ensemble de points appelés pixels (abréviation de PICture

Plus en détail

Création de maquette web

Création de maquette web Création de maquette web avec Fireworks Il faut travailler en 72dpi et en pixels, en RVB Fireworks étant un logiciel dédié à la création de maquettes pour le web il ne propose que les pixels pour le texte

Plus en détail

Cours d initiation à la programmation en C++ Johann Cuenin

Cours d initiation à la programmation en C++ Johann Cuenin Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................

Plus en détail

Tutorial pour l installation et l utilisation de CREO et de Windchill https://www.windchilleducation.eu/windchill/

Tutorial pour l installation et l utilisation de CREO et de Windchill https://www.windchilleducation.eu/windchill/ Tutorial pour l installation et l utilisation de CREO et de Windchill https://www.windchilleducation.eu/windchill/ Conseil: Pour accéder rapidement au paragraphe souhaité ci-dessous, faites CRTL+Clic sur

Plus en détail

as Architecture des Systèmes d Information

as Architecture des Systèmes d Information Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes

Plus en détail

Mise en oeuvre TSM 6.1

Mise en oeuvre TSM 6.1 Mise en oeuvre TSM 6.1 «Bonnes pratiques» pour la base de données TSM DB2 Powered by Qui sommes nous? Des spécialistes dans le domaine de la sauvegarde et de la protection des données 10 ans d expertise

Plus en détail

Installation et prise en main

Installation et prise en main TP1 Installation et prise en main Android est le système d'exploitation pour smartphones, tablettes et autres appareils développé par Google. Pour permettre aux utilisateurs d'installer des applications

Plus en détail

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Cours Base de données relationnelles. M. Boughanem, IUP STRI Cours Base de données relationnelles 1 Plan 1. Notions de base 2. Modèle relationnel 3. SQL 2 Notions de base (1) Définition intuitive : une base de données est un ensemble d informations, (fichiers),

Plus en détail

Guide de réalisation d une campagne e-mail marketing

Guide de réalisation d une campagne e-mail marketing Guide de réalisation d une campagne e-mail marketing L ère des envois d e-mails en masse est révolue! Laissant la place à une technique d e-mail marketing ciblé, personnalisé, segmenté et pertinent. La

Plus en détail

TEPZZ 568448A_T EP 2 568 448 A1 (19) (11) EP 2 568 448 A1 (12) DEMANDE DE BREVET EUROPEEN. (51) Int Cl.: G07F 7/08 (2006.01) G06K 19/077 (2006.

TEPZZ 568448A_T EP 2 568 448 A1 (19) (11) EP 2 568 448 A1 (12) DEMANDE DE BREVET EUROPEEN. (51) Int Cl.: G07F 7/08 (2006.01) G06K 19/077 (2006. (19) TEPZZ 68448A_T (11) EP 2 68 448 A1 (12) DEMANDE DE BREVET EUROPEEN (43) Date de publication: 13.03.2013 Bulletin 2013/11 (1) Int Cl.: G07F 7/08 (2006.01) G06K 19/077 (2006.01) (21) Numéro de dépôt:

Plus en détail

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7 Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin

Plus en détail

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse TP1 : Initiation à Java et Eclipse 1 I. Objectif du TP TP1 : Initiation à Java et Eclipse Programmation Mobile Initiation à l environnement Eclipse et aux notions de base du langage Java. II. Environnement

Plus en détail

µrv : Realité Virtuelle

µrv : Realité Virtuelle µrv : Realité Virtuelle Edgar-Fernando ARRIAGA-GARCIA Charles-Henri BABIAUD Clément GRELLIER Quentin PETIT Jérôme Ricoeur Florent VIOLLEAU INSA Rennes 21 septembre 2011 1 / 15 Objectifs pour cette semaine

Plus en détail

UE Programmation Impérative Licence 2ème Année 2014 2015

UE Programmation Impérative Licence 2ème Année 2014 2015 UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie prenom.nom@mi.parisdescartes.fr 2 Programmation Impérative

Plus en détail

Tutoriel QSOS. Version 2.0-13/02/2013

Tutoriel QSOS. Version 2.0-13/02/2013 Version 2.0-13/02/2013 1 Table des matières 1 Note de licence 4 2 Historique des modifications 4 3 Introduction 4 4 Gérer les templates 4 4.1 Généralités sur les templates.................... 4 4.2 Créer

Plus en détail

Structurer ses données : les tableaux. Introduction à la programmation

Structurer ses données : les tableaux. Introduction à la programmation Structurer ses données : les tableaux Introduction à la programmation Plan du document Introduction Introduire la notion de type Types primitifs Types composés Tableaux de type primitif Page 2 Notion de

Plus en détail

Création et Gestion des tables

Création et Gestion des tables Création et Gestion des tables Version 1.0 Z Grégory CASANOVA 2 Sommaire 1 Introduction... 3 2 Pré-requis... 4 3 Les tables... 5 3.1 Les types de données... 5 3.1.1 Les types de données Sql Server... 5

Plus en détail

Initiation à linfographie

Initiation à linfographie Ce support de cours de l Agence universitaire de la Francophonie est distribué sous licence GNU FDL. Permission vous est donnée de copier, distribuer et/ou modifier ce document selon les termes de la Licence

Plus en détail

Compte Rendu d intégration d application

Compte Rendu d intégration d application ISMA 3EME ANNEE Compte Rendu d intégration d application Compte Rendu Final Maxime ESCOURBIAC Jean-Christophe SEPTIER 19/12/2011 Table des matières Table des matières... 1 Introduction... 3 1. Le SGBD:...

Plus en détail

Introduction à CUDA. gael.guennebaud@inria.fr

Introduction à CUDA. gael.guennebaud@inria.fr 36 Introduction à CUDA gael.guennebaud@inria.fr 38 Comment programmer les GPU? Notion de kernel exemple (n produits scalaires): T ci =ai b ( ai, b : vecteurs 3D, ci for(int i=0;i

Plus en détail

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework L'objectif de ce document est de poser des bases de réflexion sur la modélisation d'un projet réalisé

Plus en détail

Cours IV Mise en orbite

Cours IV Mise en orbite Introduction au vol spatial Cours IV Mise en orbite If you don t know where you re going, you ll probably end up somewhere else. Yogi Berra, NY Yankees catcher v1.2.8 by-sa Olivier Cleynen Introduction

Plus en détail

LPP SAINT JOSEPH BELFORT MODE OPERATOIRE ACTIVINSPIRE. Bonne utilisation à toutes et tous! UTILISATION DES TBI LE LOGICIEL ACTIVINSPIRE

LPP SAINT JOSEPH BELFORT MODE OPERATOIRE ACTIVINSPIRE. Bonne utilisation à toutes et tous! UTILISATION DES TBI LE LOGICIEL ACTIVINSPIRE LPP SAINT JOSEPH BELFORT MODE OPERATOIRE ACTIVINSPIRE Utilisation des TBI UTILISATION DES TBI LE LOGICIEL ACTIVINSPIRE T B utoriel de base, ce mode d emploi a pour objectif de vous présenter les principales

Plus en détail

Initiation à html et à la création d'un site web

Initiation à html et à la création d'un site web Initiation à html et à la création d'un site web Introduction : Concevoir un site web consiste à définir : - l'emplacement où ce site sera hébergé - à qui ce site s'adresse - le design des pages qui le

Plus en détail

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

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004 Questionnaire d'examen final INF1101 Sigle du cours Nom : Signature : Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004 Professeur(s)

Plus en détail

But du papier : Paramétrer WSUS pour récupérer les mises à jour et administrer le serveur WSUS

But du papier : Paramétrer WSUS pour récupérer les mises à jour et administrer le serveur WSUS Administrer WSUS Rédacteur : Eric Drezet Administrateur réseau CNRS-CRHEA 07/2005 Groupe Admin06 - Resinfo But du papier : Paramétrer WSUS pour récupérer les mises à jour et administrer le serveur WSUS

Plus en détail

Analyse de la vidéo. Chapitre 4.1 - La modélisation pour le suivi d objet. 10 mars 2015. Chapitre 4.1 - La modélisation d objet 1 / 57

Analyse de la vidéo. Chapitre 4.1 - La modélisation pour le suivi d objet. 10 mars 2015. Chapitre 4.1 - La modélisation d objet 1 / 57 Analyse de la vidéo Chapitre 4.1 - La modélisation pour le suivi d objet 10 mars 2015 Chapitre 4.1 - La modélisation d objet 1 / 57 La représentation d objets Plan de la présentation 1 La représentation

Plus en détail

Utilisation du logiciel ImageJ gratuit

Utilisation du logiciel ImageJ gratuit Utilisation du logiciel ImageJ gratuit on peut récupérer sur le lien suivant : http://rsbweb.nih.gov/ij/ à partir duquel ce résumé très bref (!!) a été élaboré Lancer ImageJ Vous avez une fenêtre qui s'ouvre

Plus en détail

Savoir lire une carte, se situer et s orienter en randonnée

Savoir lire une carte, se situer et s orienter en randonnée Savoir lire une carte, se situer et s orienter en randonnée Le b.a.-ba du randonneur Fiche 2 Lire une carte topographique Mais c est où le nord? Quel Nord Le magnétisme terrestre attire systématiquement

Plus en détail

Présentation du module Base de données spatio-temporelles

Présentation du module Base de données spatio-temporelles Présentation du module Base de données spatio-temporelles S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Partie 1 : Notion de bases de données (12,5h ) Enjeux et principes

Plus en détail

TP 1. Prise en main du langage Python

TP 1. Prise en main du langage Python TP. Prise en main du langage Python Cette année nous travaillerons avec le langage Python version 3. ; nous utiliserons l environnement de développement IDLE. Étape 0. Dans votre espace personnel, créer

Plus en détail

Sillage Météo. Notion de sillage

Sillage Météo. Notion de sillage Sillage Météo Les représentations météorologiques sous forme d animation satellites image par image sont intéressantes. Il est dommage que les données ainsi visualisées ne soient pas utilisées pour une

Plus en détail

Conception des systèmes répartis

Conception des systèmes répartis Conception des systèmes répartis Principes et concepts Gérard Padiou Département Informatique et Mathématiques appliquées ENSEEIHT Octobre 2012 Gérard Padiou Conception des systèmes répartis 1 / 37 plan

Plus en détail

Cours d Algorithmique et de Langage C 2005 - v 3.0

Cours d Algorithmique et de Langage C 2005 - v 3.0 Cours d Algorithmique et de Langage C 2005 - v 3.0 Bob CORDEAU cordeau@onera.fr Mesures Physiques IUT d Orsay 15 mai 2006 Avant-propos Avant-propos Ce cours en libre accès repose sur trois partis pris

Plus en détail

Rendu HDR et illumination par image

Rendu HDR et illumination par image ENSICAEN 6, bd maréchal Juin F-14050 Caen cedex 4 Spécialité Informatique - 2e année Rapport de projet Rendu HDR et illumination par image Adrien Calendron Alexis Legrand Stéphane Saffré Suivi Ensicaen

Plus en détail

Manuel de formation Spaceman 1 ère journée

Manuel de formation Spaceman 1 ère journée Manuel de formation Spaceman 1 ère journée Table des Matières Présentation des barres d outils et des icônes...4 Présentation de l espace de travail...10 1 ère PARTIE : CONSTRUIRE LE MOBILIER...11 La gondole

Plus en détail