IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenGL Discussion :

Courbure d'une surface pour affichage sur support arrondi


Sujet :

OpenGL

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 29
    Par défaut Courbure d'une surface pour affichage sur support arrondi
    Bonjour,

    Je désire faire une vidéoprojection sur un stand parapluie. Pour ceux qui ne connaissent pas en voici des exemples :
    - http://www.hellopro.fr/images/produi...op2-357287.png
    - http://www.lagence-impression.com/ph...ing_direct.JPG
    - http://www.kalengo.fr/images/zoom%20900%20063%20000.jpg
    - "stand parapluie" sur Google Images

    Le problème de ce support est qu'il est arrondi. Cela implique de déformer l'image que l'on projette et c'est pourquoi j'ai pensé à OpenGL.

    J'arrive sans problème à afficher une image carrée avec le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    /**
     * Includes relatifs à OpenGL et SDL
     */
    #include <SDL/SDL.h>
    #include <GL/glew.h>
     
    int main(int argc, char *argv[])
    {
    	bool continuer = true; // Condition de sortie (ou non) de la boucle
    	SDL_Event event; // Variable de récupération des événements clavier/souris/etc.
     
    	/**
             * Initialisation de la lib SDL
             */
    	if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_EVENTTHREAD) == -1) {
    		return -1;
    	}
    	SDL_SetVideoMode(800, 600, 16, SDL_OPENGL);
     
        while (continuer) {
     
        	glClear( GL_COLOR_BUFFER_BIT );
     
        	// Dessin du carré
    	glBegin(GL_QUADS);
     
    		glColor3ub(255, 0, 0);
    		glVertex2d(-0.75,-0.75);
    		glColor3ub(0, 255, 0);
    		glVertex2d(-0.75,0.75);
    		glColor3ub(0, 0, 255);
    		glVertex2d(0.75,0.75);
    		glColor3ub(128, 128, 128);
    		glVertex2d(0.75,-0.75);
     
    	glEnd();
     
    	SDL_GL_SwapBuffers();
    	SDL_Delay(10);
     
            // Gestion des événements
    	while (SDL_PollEvent(&event)) {
    		switch (event.type) {
    		case SDL_KEYDOWN:
    			switch (event.key.keysym.sym) {
    			case SDLK_ESCAPE:
    				continuer = false;
    				break;
    			default:
    				break;
    			}
    		default:
    			break;
    		}
    	}
    	// Fin de la gestion des événements
        }
     
        SDL_Quit();
        return 0;
    }
    Maintenant, comment puis-je le modifier afin qu'il épouse la forme du stand ? ...ceci en supposant que je connaisse le coefficient d'arrondi du stand.

    Plus concrètement voilà ce que j'ai actuellement :


    ... Et voilà ce que je désire avoir :

    Sur cette dernière image, le X correspond à la profondeur du stand. J'aimerais que cette déformation soit paramétrable afin de pouvoir adapter le programme à un plus grand nombre de stands.


    Partant de là si vous avez une idée...

    Merci d'avance. :]

  2. #2
    Expert confirmé

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 819
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 819
    Par défaut
    Salut

    A mon avis, il suffit de jouer sur les coordonnées de texture quand tu vas appliquer ta texture (ton image) sur tes quads (ton panneau). En gros, trouver la relation entre tes vertex et les coordonnées (u,v) auxquelles ils correspondent.

    Par contre:
    Citation Envoyé par poliok Voir le message
    Le problème de ce support est qu'il est arrondi. Cela implique de déformer l'image que l'on projette
    si tu mets ton spectateur au niveau du projecteur, ok... quoiqu'il n'y a même pas besoin de déformer l'image dans ce cas.
    si il est ailleurs, il faut calculer la déformée en fonction du point de vue. Ce qui veut dire que le spectateur A ne verra pas la même image que B...
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  3. #3
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 150
    Billets dans le blog
    150
    Par défaut
    Bonjour,

    Je pense que vous devriez jeter un coup d'oeil à la leçon 11 ( ou 13 ) sur un effet de vague texturé ( ou drapeau ) sur ce site nehe.gamedev.net
    Il vous donnera pas mal d'indices pour ce que vous voulez faire
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

Discussions similaires

  1. Attendre une touche pour continuer sur VBA
    Par Theo_david dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 03/02/2009, 16h15
  2. Problème de dimension pour affichage sur graph
    Par Marc29 dans le forum LabVIEW
    Réponses: 4
    Dernier message: 17/06/2008, 10h55
  3. colorer une surface pour l'impression ?
    Par paleguen dans le forum Windows
    Réponses: 4
    Dernier message: 28/09/2007, 14h24
  4. Ajouter une librairie pour php sur un Serveur dédié
    Par tchoumak dans le forum Applications et environnements graphiques
    Réponses: 1
    Dernier message: 28/06/2006, 22h22
  5. [FLASH 5]un bouton dans une image pour revenir sur une scene
    Par patato valdes dans le forum Flash
    Réponses: 7
    Dernier message: 28/04/2004, 20h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo