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 :

Besoin d'aide projet OpenGL/GLUT


Sujet :

OpenGL

  1. #1
    Candidat au Club
    Inscrit en
    Avril 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 9
    Points : 3
    Points
    3
    Par défaut Besoin d'aide projet OpenGL/GLUT
    Bonjour a tous,
    Je vous présente mon problème, je doit faire un projet C++ avec Visual utilisant les bibliothèques OpenGL et Glut. Le but de ce projet, est de créer une scene en 3D, dans laquelle on peut se deplacer (vue a la premiere personne), comportant l enseigne de mon ecole et un robot pouvant se deplacer en etant controle par l'utilisateur.Il faut aussi gerer les problemes de collision entre tous les objets et l'utilisateur et gerer de meme les eclairages. Le probleme c'est que je n'y comprend pas grand chose et que le temps joue contre moi. C'est pour cela que je fait appel a vous pour m'aiguiller et m'aider a avancer au plus vite. Je vous remercie d'avance.
    Cordialement

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Bonjour,

    Ton problème, il est plus openGL ou Microsoft Visual C++.

    Suivant ta réponse, je déplacerai ce post dans le forum OpenGL ou dans le forum Microsoft Visual C++.

  3. #3
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Bonjour et bienvenu,
    Tu peux trouver de l'aide ici :
    Tutoriels C++
    FAQ C++
    Tutoriels OpenGL
    FAQ OpenGL
    L'excellent Réalisations d'un moteur 3D de Laurent Gomila

    Bon courage.

  4. #4
    Candidat au Club
    Inscrit en
    Avril 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 9
    Points : 3
    Points
    3
    Par défaut re
    Merci je regarde le tutoriel de Nehe, et je commence a comprendre petit a petit merci beaucoup. Cependant j'ai un problème que je n'arrive pas a résoudre. Lorsque j'applique un mapping sur une des faces d'un carre, l'image se trouve comme en conflit avec une couleur pour apparaitre. J'ai du mal a l'expliquer, en gros l'image appliquée clignote tout comme la couleur de la face du carre....
    bref j'arrive pas a être plus clair désolé
    merci d avance

  5. #5
    Expert confirmé
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 535
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 535
    Points : 5 217
    Points
    5 217
    Par défaut
    il faudrait nous montrer le code de ta procédure de dessin

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


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

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 903
    Points : 220 066
    Points
    220 066
    Billets dans le blog
    126
    Par défaut
    Ou une capture d'écran du problème ( même si le code serai le bienvenu )

  7. #7
    Candidat au Club
    Inscrit en
    Avril 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Re bonjour a tous, merci pour votre aide jusqu'a maintenant.
    J'ai décidé de tout recommencer, mais cette fois en ne máppuyant que sur GLUT, car je n'arrivais pas a résoudre mes problèmes.
    Maintenant j'ai crée ma scène, les déplacements etc... Cependant il me reste plusieurs problemes, notamment le déplacement de lún de mes objets de la scene par lútilisateur.
    Je met le code ci joint et si vous avez une idée n'hésitez surtout pas MERCI MERCI

    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    // Programme Projet_SI
     
    //#include "stdafx.h"
    #include <stdio.h>
    #include <stdlib.h>
    #include <glut.h>
    #include <math.h>
     
     
    void display();
    void keyboard(unsigned char key,int x, int y);
    void mousePress(int bouton,int state,int x,int y);
    void MouseMotion(int x,int y);
    void calcCosSinTable();
    void testPosition();
    void changePerspective();
     
    float pz=0.0,px=0.0,Sin[360],Cos[360],theta=50;
    int xold,r=0;
    void display()
    {
    glClear(GL_COLOR_BUFFER_BIT);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    glRotated(r,0.0,1.0,0.0);
    glTranslatef(-px,0.0,-pz);
    glPushMatrix();
    glTranslatef(0,1.5,0);
    glScalef(1.0,0.25,1.0);
    glColor3d(1,1,1);
    glutWireCube(20);
    glPopMatrix();
    glPushMatrix();
    glTranslated(5,-1,5);
    glRotated(-90,1,0,0);
    glColor3f(1,0,0);
    glutWireCone(1,2,20,1);
    glPopMatrix();
    glPushMatrix();
    glTranslated(-5,0,5);
    glColor3f(0,1,0);
    glutSolidTeapot(2);
    glPopMatrix();
    glPushMatrix();
    glTranslated(5,0,-5);
    glColor3f(0.5,0,0.5);
    glutWireCube(2);
    glPopMatrix();
    glTranslated(-5,0,-5);
    glColor3f(0.6,0,0);
    glutSolidSphere(1,20,20);
    /* on force l'affichage du resultat */
    glFlush();
    glutSwapBuffers();
    }
    void keyboard(unsigned char key,int x, int y)
    {
    switch (key)
    {
    case 'q':
    exit(0);
    case 'z':
    pz-=0.5*Cos[r];
    px+=0.5*Sin[r];
    testPosition();
    glutPostRedisplay();
    break;
    case 's':
    pz+=0.5*Cos[r];
    px-=0.5*Sin[r];
    testPosition();
    glutPostRedisplay();
    break;
    }
    }
    void mousePress(int bouton,int state,int x,int y)
    {
    if (bouton==GLUT_LEFT_BUTTON&&state==GLUT_DOWN)
    xold=x;
    }
    void MouseMotion(int x,int y)
    {
    r+=x-xold;
    if (r>=360)
    r-=360;
    if (r<0)
    r=360+r;
    xold=x;
    glutPostRedisplay();
    }
    void reshape(int x,int y)
    {
      if (x<y)
        glViewport(0,(y-x)/2,x,x);
      else 
        glViewport((x-y)/2,0,y,y);
    }
    void calcCosSinTable()
    {
    int i;
    for (i=0;i<360;i++)
    {
    Sin[i]=sin(i/360.0*6.283185);
    Cos[i]=cos(i/360.0*6.283185);
    }
    }
    void testPosition()
    {
    if (px>9.8)
    px=9.8;
    if (px<-9.8)
    px=-9.8;
    if (pz>9.8)
    pz=9.8;
    if (pz<-9.8)
    pz=-9.8;
    }
    void changePerspective()
    {
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluPerspective(theta,1.0,0.1,40.0);
    glMatrixMode(GL_MODELVIEW);
    }
    int main(int argc,char **argv)
    {
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE);
    glutInitWindowPosition(200,200);
    glutInitWindowSize(500,500);
    glutCreateWindow("Ballade");
    /* Initialisation d'OpenGL */
    glClearColor(0,0,0,1.0);
    changePerspective();
    /* Precalcul des sinus et cosinus */
    calcCosSinTable();
     
    glutDisplayFunc(display);
    glutReshapeFunc(reshape);
    glutKeyboardFunc(keyboard);
    glutMouseFunc(mousePress);
    glutMotionFunc(MouseMotion);
     
    glutMainLoop();
    return 0;
    }

  8. #8
    Candidat au Club
    Inscrit en
    Avril 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Bonjour a tous ,
    Je m'auto répoond. J'ai finalement beaucoup avance dans mon projet grâce a vous et il ne me reste plus qu'un tout petit porblème. Les collisions... Je pensais faire ca de facon simpliste en delimitant une aire ou chaque objet ne pourrait plus avancer. Mais je me suis rendu compte qu'arriver a la limite, l'objet en question bloque. Bref c'est pas tres clair mais je vous met le code pour que ce soit plus comprehensible... Si vous avez des idées Merci Beaucoup..

    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    	if (keys[VK_UP])
    				{
    					axpos=xpos;
    					azpos=zpos;
    					//&& ((xpos!=8.95 || xpos!=-8.95) || (zpos!=28.95 || zpos != -28.95))
    					if ((((axpos<9 && axpos>-9) && (azpos<29 && azpos>-29)) && ((axpos<xrobot-1.5 || axpos>xrobot+1.5) && (azpos<zrobot-1.5 || azpos>zrobot+1.5))))
    						{
    							xpos -= (float)sin(heading*piover180) * 0.05f;
    							zpos -= (float)cos(heading*piover180) * 0.05f;
    							if (walkbiasangle >= 359.0f)
    							{
    								walkbiasangle = 0.0f;
    							}
    							else
    							{
    								walkbiasangle+= 10;
    							}
    							walkbias = (float)sin(walkbiasangle * piover180)/20.0f;
    						}
    						else
    						{
    						xpos=axpos;
    						zpos=azpos;
    					}
    				}
     
     
    				if (keys[VK_DOWN])
    				{
    					axpos=xpos;
    					azpos=zpos;
    					if (((axpos<9.5 && axpos>-9.5) && (azpos<29.5 && azpos>-29.5)) && ((axpos<xarobot-1 || axpos>xarobot+1) && (azpos<zarobot-1 || azpos>zarobot+1)))
    					{
    						xpos += (float)sin(heading*piover180) * 0.05f;
    						zpos += (float)cos(heading*piover180) * 0.05f;
    						if (walkbiasangle <= 1.0f)
    						{
    							walkbiasangle = 359.0f;
    						}
    						else
    						{
    							walkbiasangle-= 10;
    						}
    						walkbias = (float)sin(walkbiasangle * piover180)/20.0f;
    					}
    					else
    					{
    						xpos=axpos;
    						zpos=azpos;
    					}
    				}
     
    				if (keys['K'])
    				{
    					xarobot=xrobot;
    					if ((xarobot < 9) && (((xarobot<xpos-1.5)||(xarobot>xpos+1.5)) || ((zarobot<zpos-1.5)||(zarobot>zpos+1.5)))){
    						xarobot+=0.2f;}
    					if (xarobot >= 9)
    					{
    					xarobot = 9;
    					}
    					xrobot = xarobot;
    				}
    				if (keys['H'])
    				{
    					xarobot=xrobot;
    					if ((xarobot > -9) && (((xarobot<xpos-1)||(xarobot>xpos+1)) || ((zarobot<zpos-1)||(zarobot>zpos+1)))){
    						xarobot-=0.2f;}
    					if (xarobot <= -9)
    					{
    					xarobot = -9;
    					}
    					xrobot = xarobot;
    				}
     
    				if (keys['J'])
    				{
    					zarobot=zrobot;
    					if ((zarobot < 29) && (((zarobot<zpos-1.5)||(zarobot>zpos+1.5)) || ((xarobot<xpos-1.5)||(xarobot>xpos+1.5)))){
    						zarobot+=0.2f;}
    					if (zarobot >= 29)
    					{
    					zarobot = 29;
    					}
    					zrobot = zarobot;
    				}
    				if (keys['U'])
    				{
    					zarobot=zrobot;
    					if ((zarobot > -29) && (((zarobot<zpos-1)||(zarobot>zpos+1)) || ((xarobot<xpos-1)||(xarobot>xpos+1)))){
    						zarobot-=0.2f;
    					}
    					if (zarobot <= -29)
    					{
    					zarobot = -29;
    					}
    					zrobot = zarobot;
    				}
     
     
    				if (keys[VK_RIGHT])
    				{
    					heading -= 1.0f;
    					yrot = heading;
    				}
    				if (keys[VK_LEFT])
    				{
    					heading += 1.0f;	
    					yrot = heading;
    				}

Discussions similaires

  1. Besoin d'aide projet JAVA bis
    Par jslpfasc2 dans le forum Langage
    Réponses: 2
    Dernier message: 16/11/2011, 06h40
  2. Besoin d'aide projet d'info : la bonne paye sur C++ Builder.
    Par timsupra dans le forum C++Builder
    Réponses: 18
    Dernier message: 25/04/2006, 10h24
  3. Besoin d'aide pour un projet
    Par ZiMo dans le forum Linux
    Réponses: 9
    Dernier message: 24/10/2005, 00h28
  4. Besoin d'aide pour trouver un projet
    Par ptitJP dans le forum C++
    Réponses: 22
    Dernier message: 26/02/2005, 23h14

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