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 :

Clipping Graphics OpenGL


Sujet :

OpenGL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 16
    Points : 10
    Points
    10
    Par défaut Clipping Graphics OpenGL
    Bonjour à tous,

    C'est la première fois que je viens sur cette section. Habituellement, je suis du côté des développeur JAVA 2D et 3D.

    Hors voilà, depuis quelques temps je me suis sur un projet Visual c++ express 2008 avec du OpenGL. Histoire de le former à cette technologie.

    Donc voici mon problème, je suis en train de créer un logiciel d'affichage temps réel de donnée sur un indicateur circulaire. Pour le moment, je suis à la création de univers graphique.

    Ma question est :"Comment on réalise un clipping du Graphics dans un cercle (Ellipse pour langage)?

    Si vous avez une réponse je suis preneur. Pour plus de précision, je peux donner un peu de code.

  2. #2
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Points : 5 323
    Points
    5 323
    Par défaut
    pour toute forme complexe de clipping (c a d : tout ce qui requiere plus que les plan de clipping standard), on utilise généralement le stencil buffer.
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    399
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 399
    Points : 413
    Points
    413
    Par défaut
    salut, tu peux déjà clipper sur le carré de dimension diametre de ton cercle.
    Après soit tu masques ce carré de maniere a cacher la partie de la scene qui fait partie du carré mais pas du cercle (pas forcément possible en fonction du rendu désiré), ou soit tu utilises le stencil buffer comme l'a dit bafman
    SPARK
    Moteur de particule C++ opensource avec modules de rendu OpenGL, Irrlicht et SFML

  4. #4
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Points : 5 323
    Points
    5 323
    Par défaut
    en fait, généralement, passé 2 plan de clipping additionnel, ça se met à être lent, donc le stencil sera très probablement le meilleure solution
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 16
    Points : 10
    Points
    10
    Par défaut
    merci c'est super sympa je vais essayer. là j'ai conçu une fonction qui dessine des cercles dans la zone graphique (Graphics ^ g).

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 16
    Points : 10
    Points
    10
    Par défaut
    bonjour je n'arrive pas à utiliser le stencil. voici mon code la fonction marqueurDistance en bas génère des cercles concentriques en incrémentant le rayon.
    le pb est que je veux dessiner uniquement dans la zone délimitée par le cercle le plus grand soit celui de rayon 600.
    voici le 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
     
    void Form1::fondIP(System::Object ^sender, System::Windows::Forms::PaintEventArgs ^e)
    {
     
    	//on crée une surface de dessin que l'on associe a panel zoneIP
    	Graphics^ gFond = e->Graphics;
    	//on donne une couleur noir au fond d'écran
    	zoneIP->BackColor = Color::Black;
    	//on définit un crayon et sa couleur
    	pvCouleur = Color::White;
    	Pen^ plume = gcnew Pen(pvCouleur, 0.5);
    	//on dessine les marqueurs
    	Point p1(pvPointX, pvPointY);
    	Point p2(pvPointX+600, pvPointY+600);
    	Point p3(pvPointX+300, pvPointY);
    	Point p4(pvPointX+300, pvPointY+600);
    	Point p5(pvPointX, pvPointY+300);
    	Point p6(pvPointX+600, pvPointY+300);
    	Point p7(pvPointX+600, pvPointY);
    	Point p8(pvPointX, pvPointY+600);
     
     
     
     
    	MarqueurDistance(gFond, plume, pvPointX, pvPointY, 600, 600, marqueur);
    }

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 16
    Points : 10
    Points
    10
    Par défaut
    Bonjour,
    Finalement, j'ai réussi à faire mon dessin dans la zone vous en utilisant les fonctions sinus et cosinus. Cependant j'ai un autre problème. Je voudrais rafraichir la zone de type panel qui contient le graphics.
    J'ai essayé mais cela crée des perturbations sur le reste de l'IHM.

    Donc si vous avez une idée je suis preneur.

Discussions similaires

  1. Affichage graphics OpenGL et GLUT bizarre
    Par vasilpapa dans le forum Haskell
    Réponses: 0
    Dernier message: 21/03/2015, 08h50
  2. OpenGL et awt.Graphics
    Par javator dans le forum OpenGL
    Réponses: 6
    Dernier message: 15/06/2009, 08h40
  3. [News] Extension Bindless graphics pour OpenGL
    Par LeGreg dans le forum OpenGL
    Réponses: 1
    Dernier message: 30/04/2009, 09h02
  4. clipping sur graphics
    Par olibara dans le forum C#
    Réponses: 10
    Dernier message: 11/03/2009, 17h18
  5. GUI : Graphical user interface sous OpenGL
    Par Nyarlathotep dans le forum OpenGL
    Réponses: 3
    Dernier message: 29/09/2008, 13h01

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