Placement de la caméra en OpenGL



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

Chapitre 3 : Repères et positionnement 3D

C.F.A.O. : Conception et Fabrication Assistées par Ordinateur.

Correction des Travaux Pratiques Organiser son espace de travail

Mise en scène d un modèle dans l espace 3D

Fiche Mémo : Options d accessibilité sous Windows et Internet Explorer 5

pcon.planner 6 Préparer et présenter une implantation en toute simplicité

2013 Pearson France Photoshop Elements 12 pour les photographes du numérique Loïc Olive

F.A.Q 1.0 Designer 3D Atex System

Cours de Mécanique du point matériel

GPS Action Replay Pro Module Régate (V 1.0 h et ultérieures)

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

AIDE à l utilisation du cédérom «L athlétisme à l école» Niveau Primaire SOMMAIRE

COPY. Picture Style Editor Ver. 1.4 MODE D EMPLOI. Logiciel de création de fichiers de style d image. Contenu de ce mode d emploi

MANUEL DE PROCÉDURE POUR LA MISE À JOUR DU SITE DE FIDAFRIQUE. Documentation utilisateur Octobre 2005

Le langage C. Séance n 4

Comment sélectionner des sommets, des arêtes et des faces avec Blender?

Dans l idéal, ceci devrait être fait en amont pour chaque image envoyée sur l espace de stockage de votre site internet.

TP1 : Initiation à Java et Eclipse

Utilisation du logiciel Epson Easy Interactive Tools

Le plombier chauffagiste a aussi besoin de cette représentation pour savoir ce qu il y a à l intérieur de la maison au niveau des hauteurs.

Initiation à la librairie graphique VTK

Support de formation Notebook

Un exemple avec WORKSPACE d'interwrite

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB

2013 Pearson France Adobe Illustrator CC Adobe Press

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

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

1 INSTALLATION DU LOGICIEL CGVCAM Télécharger et installer le logiciel Démarrer le logiciel 5 2 PRESENTATION DU LOGICIEL CGVCAM 5

Celestia. 1. Introduction à Celestia (2/7) 1. Introduction à Celestia (1/7) Université du Temps Libre - 08 avril 2008

CREER ET ANIMER SON ESPACE DE TRAVAIL COLLABORATIF

MAILING KOMPOZER... 2 CREEZ UNE PAGE... 2 FORMAT DE LA PAGE... 2 AJOUTER DU TEXTE SUR UNE PAGE... 4

Introduction à MATLAB R

Logiciel PICAXE Programming Editor


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

Pour les futurs développeurs Sommaire

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

CAISSE. Ce logiciel nécessite une licence pour fonctionner.

Compléments de documentation Scilab : affichage de texte et formatage de nombres

Tp_chemins..doc. Dans la barre "arche 2" couleur claire 1/5 21/01/13

Les algorithmes de base du graphisme

Guide de démarrage rapide. (pour la version 5.0.)

Fonctions linéaires et affines. 1 Fonctions linéaires. 1.1 Vocabulaire. 1.2 Représentation graphique. 3eme

Indiquer l'espace libre sur le disque dur

Les structures. Chapitre 3

AGASC / BUREAU INFORMATION JEUNESSE Saint Laurent du Var - E mail : bij@agasc.fr / Tel : CONSIGNE N 1 :

Guide d Installation et de Configuration du Logiciel

Contrôle d accès UTIL TP N 1 découverte

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Cours 1: Java et les objets

LES TOUT PREMIERS PAS

Rappels Entrées -Sorties

Conseils déco express Comment éclairer une pièce, décorer vos murs, habiller vos fenêtres?

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

TP1 : Initiation à Java et Eclipse

GUIDE D UTILISATION DU TABLEAU BLANC INTERACTIF EBEAM EDGE

v Sygic, a.s. All rights reserverd. Manuel utilisateur

Créer un premier document avec Pages

Atelier «personnaliser l environnement de l ordinateur mai 2015

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

Gérer son Google Drive pour gérer ses informations : le tutoriel

Utilisation du visualiseur Avermedia

Note de cours. Introduction à Excel 2007

Publication Assistée par Ordinateur

Initiation à Excel. Frédéric Gava (MCF)

Guide d utilisation :application LIGHTIFY

AGASC / BUREAU INFORMATION JEUNESSE Saint Laurent du Var Tel : bij@agasc.fr Word: Les tableaux.

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

des outils disponibles et des performances possibles

Sommaire : 2) BRANCHEMENT 3 3) INSTALLATION DU LOGICIEL 3 4) CONFIGURATION DE LA CAMERA IP FILAIRE 7

Publier dans la Base Documentaire

Édu-groupe - Version 4.3

Encryptions, compression et partitionnement des données

Guide plateforme FOAD ESJ Lille

Utilisation de l éditeur.

Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS

SpeechiTablet Notice d utilisation

Initiation. àl algorithmique et à la programmation. en C

Ceci est un Chromebook, ton ordinateur!

PRISE EN MAIN D UN TABLEUR. Version OPEN OFFICE

Module 1 : Tableau de bord Excel * 2010 incl.*

Plateforme de support en ligne. Guide d utilisation

Vous devez tout d abord réaliser l esquisse (le dessin de la pièce en 2 dimensions) avant de mettre cette pièce en volume.

Initiation au dessin Bitmap

Gérer les règles de prix catalogue sur Magento

L écran du marais : Comment configurer le viewer OpensSim

A lire en premier lieu

Guide pour la réalisation d'un document avec Open Office Writer 2.2

VOS PREMIERS PAS AVEC TRACENPOCHE

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

Table des matières. F. Saint-Germain / S. Carasco Document réalisé avec OpenOffice.org Page 1/13

L environnement de travail de Windows 8

«Manuel Pratique» Gestion budgétaire

Créer un tableau avec LibreOffice / Calc

Création d un site web avec Nvu

F.3. Précautions d utilisation

Créer des étiquettes avec les adresses d'un tableau Calc

Table des matières :

Transcription:

TPs L2 Informatique AII3D : découverte de la synthèse d images Placement de la caméra en OpenGL Ce TP a pour but de comprendre comment placer (et déplacer) la caméra en OpenGL. Nous allons créer une navigation de type walk, c est à dire que l on va pouvoir se déplacer dans la scène comme un utilisateur qui peut marcher dans le vide. 1

Rappels Pour pouvoir déplacer la caméra et placer le point de vue n importe où dans la scène, nous utilisons une sorte de caméra virtuelle avec l appel de la fonction : glulookat(eyex,eyey,eyez,centerx,centery,centerz,upx,upy,upz) eyex, eyey et eyez définissent la position de la caméra. centerx, centery et centerz définissent la position du point que fixe la caméra (le point correspondant se trouvera au centre de la fenêtre d affichage). upx, upy et upz définissent le vecteur vertical. Placer la caméra revient à déplacer tout le monde pour qu il soit centré sur la caméra et orienté selon l axe du regard. Cela influe donc logiquement sur la matrice GL MODELVIEW et vous ne serez pas étonnés donc que l appel de la caméra soit juste après la réinitialisation de GL MODELVIEW. (Pour plus de détails, vous pouvez consulter la doc d opengl). Exemples : Dans notre scène initiale, la théirère est placée en (0.,0.,-5) grâce une translation : 2

L appel à la fonction glulookat(0., 0., -10., 0., 0., 0., 0., 1., 0.) ; permet de voir l arrière de la théière : Changer la verticale (les paramètres vertx, verty et vertz ) et donc appeler la fonction glulookat(0., 0., 0., 0., 0., -5., 1., 1., 0.) ; permet de pencher la scène : 3

Introduction Commencez par réccupérer les fichiers camera.h et camera.c. Si vous ne l avez pas fait lors du TP précédent, réccupérez également les fichiers vector4.h et vector4.c. N oubliez pas d ajouter tous les include nécessaires, et de faire les modifications appropriées dans votre Makefile. Le type tcamera (avec le type du pointeur associé pcamera) est une structure ayant pour champs : - le centre du repère caméra (= position de la caméra) : Vector4 O, - les 3 vecteurs du repère caméra : Vector4 X, Vector4 Y, Vector4 Z La fonction pcamera creercamera(vector4 eye, Vector4 vise, Vector4 up) prend en paramètres les 3 paramètres du glulookat(...) et calcule le repère caméra correspondant. Créez un objet pcamera dans votre programme principal à partir des paramètres suivants : eye = 0.,0.,0.,1., vise = 0.,0.,-1.,1. et up = 0.,1.,0.5,0.. Les fonctions void eyecamera (pcamera c, Vector4 eye), void visecamera (pcamera c, Vector4 vise), void upcamera (pcamera c, Vector4 up) calculent les paramètres du glulookat(...) à partir des attributs O,X,Y,Z de la caméra. A ce niveau, il est intéressant de noter le comportement d une source de lumière par rapport à la caméra. Une source de lumière positionnée après le glulookat() ne tiendra pas compte de la position de la caméra. Sa position est définie par rapport au repère scène. Par contre, une source de lumière dont la position est définie juste avant le glulookat() est positionnée par rapport au repère de la caméra (sa position est alors relative à celle de la caméra). Positionnez correctement la lumière GL LIGHT0 pour qu elle soit fixe dans la scène (elle ne doit pas bouger si on déplace la caméra). Utilisez la touche 1 pour allumer/éteindre la lumière GL LIGHT1. GL LIGHT1 doit être un spot de lumière blanche, avec un angle d ouverture de 40 degrés et un coefficient d atténuation de 20. Ce spot positionné à la position de la caméra et éclairant droit devant, doit se déplacer avec la caméra. C est un peu comme une lampe de poche attachée à la caméra pour éclairer ce que l on a devant nous dans la scène. 4

Gestion des évènements clavier Il va falloir développer les fonctionnalités suivantes : avancer/reculer : la caméra se déplace vers l avant ou l arrière dans sa direction Z. tourner sur la gauche/droite : par rotation autour de l axe verical Y de la caméra. s orienter vers le haut/bas : par rotation autour de l axe horizontal X de la caméra. Nous allons utiliser les flèches du clavier pour avancer/reculer et gauche/droite, ainsi que les touches h et b pour haut/bas. Pour accéder aux flèches du clavier, ajoutez la fonction glutspecialfunc (arrow) (par exemple juste sous la fonction glutkeyboardfunc (key) du main de votre programme). Écrire la fonction void arrow (int key, int mousex, int mousey) sur le même modèle que la fonction void key (void). Le test switch est effectué sur la variable key et les flèches gauche, droite, bas, haut sont prises en compte avec respectivement case GLUT KEY LEFT, case GLUT KEY RIGHT, case GLUT KEY DOWN, case GLUT KEY UP. Avancer/Reculer Commencez par faire le déplacement avant/arrière de la camera à l aide de la fonction void avancecamera (pcamera c, float pas). Attention, le déplacement s effectue dans la direction du vecteur Z de la caméra. Pour vous aider, vous avez à disposition les fonctions du fichier Vector4.h pour modifier les valeurs du O,X,Y et Z de la caméra. 5

Rotation gauche/droite, Rotation haut/bas Regardons maintenant les rotations : La rotation autour de l axe Y va être effectuée en suivant la méthode suivante : Déplacez le point visé (qui vaut toujours O+Z ) dans la direction du vecteur X. La taille du déplacement correspond à un pas dx pour une pression sur une touche gauche ou droite (le point visé est déplacé de dx * X ). Calculez le nouveau vecteur unitaire Z correspondant à la nouvelle position du point visé. Calculez le nouveau vecteur X. Sur le même principe, effectuez la rotation haut/bas. 6