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 :

Opengl et NURBS


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 8
    Par défaut Opengl et NURBS
    Bonjour à tous,
    je vous expose mon problème: je dois à un moment de mon programme représenter en 3D une surface de révolution générer par une bspline.
    Je possède donc le profil : vecteur de nœud + pts de contrôle en 2D dans le plan oxy;

    D'après mes recherches et mes tests , je dois me servir gluNurbsSurface()...mais mon problème est de savoir comment remplir le tableau de pts de contrôle.
    Sachant que mon profil contient 19 pts de contrôles...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    GLfloat ctlpoints[19][7][3];
     
    	int u,v;
    	 for (u = 0; u < 19; u++) {
    		 cout<<"Courbe "<<u<<endl;
            for (v = 0; v < 7; v++) {
    			cout<<"Pt controle "<<v<<endl;
                ctlpoints[u][v][0] = X[u]*cos((2.0*PI*v)/4);
                ctlpoints[u][v][1] = Y[u];
                ctlpoints[u][v][2] = X[u]*sin((2.0*PI*v)/4));
     
            }
        }
    dois-je faire quelquechose de la sorte?
    merci de m'éclaircir les idées....car là je stagne....

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 16
    Par défaut
    Bonsoir,

    Je ne voudrais pas trop m'avancer, mais je ne suis pas sûr que tu puisses utiliser gluNurbsSurface() directement. Mais une petite question, ta courbe est-elle une B-Spline, ou une Nurbs ? Parce que ce n'est pas tout à fait la même chose. Si je ne me trompe pas, les nurbs sont une extension des b-splines, qui fait intervenir en plus la notion de poids dans les points de contrôles.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 8
    Par défaut
    merci pour ta réponse! en fait je me suis débrouillé pour que ça marche.
    Si ça peut servir à quelqu'un un jour:
    j'utilise la matrice
    float B[][3]= { { 1.0, 0.0, 1.0},{ 0.707, 0.707, 0.707}
    ,{ 0.0, 1.0, 1.0},{-0.707, 0.707, 0.707}
    ,{-1.0, 0.0, 1.0},{-0.707,-0.707, 0.707}
    ,{ 0.0,-1.0, 1.0},{ 0.707,-0.707, 0.707}
    ,{ 1.0, 0.0, 1.0}};
    pour calculer mes autres pts de contrôle du à la rotation du profil. Le vecteur de noeud selon v est facilement generable à la "main": il est uniforme et il suffit de respecter les multiplicités au début et à la fin.

    On injecte le tout dans la fonction opengl et ca marche^^.

Discussions similaires

  1. [TUTORIEL] NURBS en OPENGL
    Par milena dans le forum Contribuez
    Réponses: 7
    Dernier message: 08/05/2014, 08h21
  2. Problème avec les NURBS avec OPENGL
    Par milena dans le forum Développement 2D, 3D et Jeux
    Réponses: 0
    Dernier message: 10/01/2010, 17h48
  3. Nurbs OpenGL
    Par tigana dans le forum OpenGL
    Réponses: 6
    Dernier message: 20/07/2005, 11h09
  4. OpenGL ou DirectX
    Par Nadir dans le forum DirectX
    Réponses: 6
    Dernier message: 02/05/2002, 12h48

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