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 :

GL_LINE_SMOOTH me mets des triangles partout !


Sujet :

OpenGL

  1. #1
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Septembre 2019
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2019
    Messages : 18
    Par défaut GL_LINE_SMOOTH me mets des triangles partout !
    Bonjour,

    En voulant adoucir des rectangles arrondis j'ai obtenu ceci ;
    Nom : rr.jpg
Affichages : 228
Taille : 19,8 Ko
    En regardant bien on vois un effet de moiré sur la zone transparente du rectangle. Sachant que toute la forme est censée être transparente à 50%.

    Voici mon code :

    initialisation
    glEnable(GL_TEXTURE_2D);
    glEnable(GL_BLEND);
    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
    glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);
    glHint(GL_POLYGON_SMOOTH_HINT, GL_NICEST);
    glEnable(GL_LINE_SMOOTH);
    glEnable(GL_POLYGON_SMOOTH);
    Dessin

    public void drawCircle(int xx, int yy, int ww, int hh, int p, int sa, int ea) {
    final double PI = 3.141592654;
    double angle = sa;
    int points = 360;
    for(int i = 0; i < points;i++){
    if(i > sa && i < ea) {
    angle = 2*PI * i / points;

    glVertex2f(xx + (float)Math.cos(angle)*ww, yy + (float)Math.sin(angle)*hh);
    }
    }
    }

    public void fillRoundRect(int x, int y, int ww, int hh, int ra) {
    glPointSize(1.0f);
    glBegin(GL_POLYGON);
    glColor4f(r, g, b, a);
    drawCircle(x + ra, y-ra+hh, ra, ra, 5, 90, 180);
    drawCircle(x + ra, y+ra, ra, ra, 5, 180, 270);
    drawCircle(x - ra + ww, y+ra, ra, ra, 5, 270, 360);
    drawCircle(x - ra + ww, y+hh-ra, ra, ra, 5, 0, 90);
    glEnd();
    }
    J'ai aussi des diagonales sur mes rectangles.. Les bugs sont arrivé avec GL_LINE_SMOOTH.

    Si quelqu'un sait pourquoi ça donne ce résultat, et si possible comment obtenir une couleur uniforme, je suis preneur !

    Merci à vous !

  2. #2
    Expert confirmé

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 032
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 032
    Billets dans le blog
    12
    Par défaut
    Salut !

    Tu peux mettre une image sans GL_LINE_SMOOTH, pour qu'on voie le bug introduit ?

    Merci !
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Septembre 2019
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2019
    Messages : 18
    Par défaut
    Ceci ?

    Nom : gdfgdsfgfdg.jpg
Affichages : 256
Taille : 90,4 Ko
    Nom : qzesfqf.jpg
Affichages : 244
Taille : 85,6 Ko


    En fait c'est OpenGL qui dessine des triangles. Pour l'exemple d'un simple GL_QUADS avec le SMOOTH on vois la diagonales de séparation des deux triangles, la ou les deux faces sont parallèles. Ces deux soucis doivent être lié.

    J'ai l'impression qu'il ne sera pas possible de faire des polygon complexes avec une couleur plus ou moins transparente..

    J'ai aucuns mal à avoir un rectangle arrondis avec des demis cercles et GL_POYGON, je peux l'avoir à tout les alpha possible avec une couleur bien homogène. Par contre des que je veux les bords arrondis ça poses soucis.

  4. #4
    Expert confirmé
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 226
    Par défaut
    Oui ça c'est de l'OpenGL qui date du millénaire précédent
    Si tu commence autant de mettre à jour avec OpenGL 3 (même si OpenGL est deja un peu une API abandonné ).

  5. #5
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Septembre 2019
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2019
    Messages : 18
    Par défaut
    Ha oui ? J'ignorais que c'était dépassé à ce point. J’utilise la dernière version de LWJGL...

    Quel API apporte la dernière version d'OpenGL en java ?
    Par quel API je peux avoir une accélération graphique digne de ce nom pour de la 2d ?

    En fait j'ai codé un mmo 2D de gestion de communauté, il est presque terminé, j'ai une deadline pour le distribuer cette année. J'ai un environnement 2D top down, à l'écran y à rien de fous niveau visuel, y aura bien quelques effets mais il jeux marchait déjà assez bien avec swing. J'ai besoin d'utiliser spécialement de l'OpenGL dernier cri pour distribuer normalement le jeux ou es-ce que ce que j'ai la sera distribuable ?

Discussions similaires

  1. Manque Des Triangles
    Par Sébastien P dans le forum OpenGL
    Réponses: 8
    Dernier message: 02/02/2007, 20h20
  2. Mettre des minuscules partout
    Par Sami Xite dans le forum SQL Procédural
    Réponses: 9
    Dernier message: 15/12/2006, 21h37
  3. Extraire les coordonnées des triangles d'un X
    Par Rafy dans le forum DirectX
    Réponses: 4
    Dernier message: 08/06/2006, 17h52
  4. ??? quand je mets des caractères chinois
    Par PHILOSOPHE dans le forum Delphi
    Réponses: 9
    Dernier message: 11/05/2006, 12h09
  5. C'est quoi les INDICES des triangles?
    Par Happy dans le forum OpenGL
    Réponses: 2
    Dernier message: 06/03/2006, 22h03

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