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 :

Sphere et masque


Sujet :

OpenGL

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2002
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 46
    Points : 43
    Points
    43
    Par défaut Sphere et masque
    J'aimerais affiché un soleil avec un effet d'halot lumineux mais je ne vois strictement rien à l'écran !!!
    voici mon code :
    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
    void soleil(){
       float n;
       float scale,color;
       float numlayers;
     
       float angle = 0.0f;
       //printf("appel a soleil");
     
       glLoadIdentity();
       /*place le soleil */
       glTranslatef(0.0f, 0.0f, 0.0f);
       glRotatef(angle, 1.2f, 0.4f, 0.7f);
     
       glEnable(GL_TEXTURE_2D);
       glBindTexture(GL_TEXTURE_2D, IdTex[5]);
       glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
       gluSphere(sphere, 2, 32, 16);
     
       /* configuration du blending */
       glBlendFunc(GL_SRC_ALPHA, GL_ONE);
     
       glBindTexture(GL_TEXTURE_2D, IdTex[6]);
       /* autorise le blending */
       glEnable(GL_BLEND);
     
       /* rien n'ecrire dans le depth buffer */
       glDepthMask(GL_FALSE);
     
       /* nombre de tour de la boucle, impt -> lent */
       numlayers = 50;
     
       for (n = 1; n < numlayers; n++)
       {
          /* calcul du facteur scale pour les reflets*/
          scale = 1+n/numlayers;
          /* calcul du pourcentage de couleur utilisé pour le blending */
          color = 1.0f/n+sin(angle/10)/16;
          glLoadIdentity();
          glTranslatef(0.0f, 0.0f, 0.0f);
          glRotatef(angle, 1.2f, 0.4f, 0.7f);
     
          glScalef(scale, scale, scale);
          glColor4f(color, color, color, 1.0f);
          gluSphere(sphere, 2, 32, 16);
       }
     
       /* ecriture dans le depth buffer */
       glDepthMask(GL_TRUE);
     
       /* empeche de faire du blending */
       glDisable(GL_BLEND);
     
       angle = angle*0.02;
     
       /* force opengl a finir tout ce qu'il a commence */
       glFlush();
    qui est appelé dans le main en idle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    /* rotation du soleil permanente */
        glutIdleFunc(soleil);
    Les textures sont des fichiers .raw appelées dans une autre fonction (qui marche car déjà testée) et je code en C.

    Merci d'avance

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 53
    Points : 35
    Points
    35
    Par défaut
    euh je vois pas trop la,tes fonctions de blend sont bonnes(gl.GL_SRC_ALPHA, gl.GL_ONE),tu desactive bien l'ecriture dans le buffer...mais pourkoi est-ce ke tu ne dessine pas ton halo dans un rectangle(comme tu le ferait pour des particules):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    gl.glNewList(MapLoader.particuleDL,gl.GL_COMPILE);
                	gl.glBegin(gl.GL_TRIANGLE_STRIP);					
                    		gl.glTexCoord2d(1,1); gl.glVertex3f(2.5f,2.5f,1.0f); // Top Right
                    		gl.glTexCoord2d(0,1); gl.glVertex3f(-2.5f,2.5f,1.0f); // Top Left
    		    		   	gl.glTexCoord2d(1,0); gl.glVertex3f(2.5f,-2.5f,1.0f); // Bottom Right
    		    		   	gl.glTexCoord2d(0,0); gl.glVertex3f(-2.5f,-2.5f,1.0f); // Bottom Left
    					gl.glEnd();
    			gl.glEndList();
    qui tourne avec la camera pour etre toujours en face de celle-ci,c'est ce que j'ai fait dans mon moteur et ça marche nikel!
    (euh je c pas si tu voit ce que je veux dire,je m'exprime un peu comme un pied )
    Le bien etre et la paix....

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 53
    Points : 35
    Points
    35
    Par défaut
    euh tiens un scrennshot pour illustrer ce ke jte disais,c plus parlant finalement:
    http://thebattleproject.site.voila.fr/Flare1.jpg
    http://thebattleproject.site.voila.fr/Flare2.jpg

    comme tu voit la halo est dessiné dans un rectangle qui fait une rotation avec la camera pour etre tjs en face d'elle....
    Le bien etre et la paix....

  4. #4
    Membre du Club
    Inscrit en
    Novembre 2002
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 46
    Points : 43
    Points
    43
    Par défaut
    je crois voir à peu près ce que tu veux dire ... je débute en OpenGl, donc j'avance un peu à taton parfois !

    Pour ce qui est d'enfin voir ma sphère, ça suit son cours mais je n'ai toujours rien, je vous tiens au courant quand j'aurais trouvé où se situe mon problème.

Discussions similaires

  1. [JtextField]Creer un masque pour Ip
    Par bibx dans le forum Composants
    Réponses: 8
    Dernier message: 11/01/2005, 17h31
  2. Masque vidéo
    Par pifou02 dans le forum Composants VCL
    Réponses: 6
    Dernier message: 24/09/2003, 08h09
  3. Réponses: 7
    Dernier message: 17/07/2003, 11h00
  4. flashMX pb avec les masques
    Par annsoo dans le forum Flash
    Réponses: 2
    Dernier message: 12/05/2003, 12h22
  5. Bas les masques
    Par benj63 dans le forum C++Builder
    Réponses: 8
    Dernier message: 03/07/2002, 17h05

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