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 :

Délimiter une surface.


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 64
    Par défaut Délimiter une surface.
    Bonjour,

    Je souhaite délimiter une surface à l'aide de deux courbes de beziers seulement je me heurte à un petit problème technique que je je sais pas trop comment contourner ....

    e souhaite donc créer une surface avec deux courbes. Mais dans mon bloc GL_POLYGON je ne peux pas réutiliser glmap1f .... En gros je ne peux
    pas charger mon autre courbe de bezier.

    Voici un code faux, mais qui illustre bien ce que je veux faire :

    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
     
     
    int i;
     
    GLfloat FirstCtrlPoints[4][3] = {{,,} ......};
    GLfloat SecondCtrPoints[4][3] = {{,,}......};
     
    glColor3ub(255, 0, 0);
     
    glBegin(GL_POLYGON);
     
    glMap1f(GL_MAP1_VERTEX_3, 0.0f, 1.0f, 3, 4, &FirstCtrlPoints[0][0]);
    glEnable(GL_MAP1_VERTEX_3);
     
    for(i = 1; i <= 100; i++)
          glEvalCoord1f ((float)i / 100.0f);
     
    glMap1f(GL_MAP1_VERTEX_3, 0.0f, 1.0f, 3, 4, &SecondCtrlPoints[0][0]);
    glEnable(GL_MAP1_VERTEX_3);
     
    for(i = 1; i <= 100; i++)
         glEvalCoord1f ((float)i / 100.0f);
     
    glEnd();
     
    glColor3ub(255, 255, 255);
    Existe-t-il un moyen d'évaluer deux courbes de bezier différentes dans un même bloc GL_POLYGON ?

    Merci,

  2. #2
    Membre chevronné
    Inscrit en
    Février 2008
    Messages
    413
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Février 2008
    Messages : 413
    Par défaut
    Bonjour,

    si j'ai bien compris, tu veux utiliser tes 2 courbes pour créer une surface. Il faut donc utiliser glMap2, et glEvalCoord2 plutôt que glMap1, car ce dernier est limité à 1 dimension (une courbe donc, pas une surface).

    Est autre probleme est que tu essaies de dessiner la 2eme courbe alors que la primitive de la 1ere (commencée avec glBegin(GL_POLYGON)) n#est pas finie.
    Pour dessiner 2 courbes par exemple, il faudrait faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    // 1ere courbe
    glBegin(GL_LINE_STRIP);
    for(....)
    glEvalCoord1f(...)
    glEnd();
    
    // 2eme courbe
    glBegin(GL_LINE_STRIP)
    for(....)
    glEvalCoord1f(...)
    glEnd();
    mais comme dit, si au final tu veux une surface, il faudra passer par glEvalCoord2

Discussions similaires

  1. Réponses: 1
    Dernier message: 12/05/2004, 19h02
  2. [VMR9][D3D9]ecrire un texte sur une surface
    Par drizztfr dans le forum DirectX
    Réponses: 2
    Dernier message: 13/11/2003, 15h06
  3. Effet Fade In / Fade Out sur une surface DirectDraw
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 08/09/2002, 17h37
  4. Sauvegarder une surface dans un fichier
    Par Freakazoid dans le forum DirectX
    Réponses: 6
    Dernier message: 18/08/2002, 15h23
  5. Redimensionnement d'une surface
    Par Freakazoid dans le forum DirectX
    Réponses: 4
    Dernier message: 01/07/2002, 22h01

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