Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: [Résolu] Problème d'activation de l'anticrénelage  (Lu 2839 fois)

0 Membres et 2 Invités sur ce sujet

guatto

  • Newbie
  • *
  • Messages: 3
    • Voir le profil
[Résolu] Problème d'activation de l'anticrénelage
« le: Juillet 12, 2017, 06:30:00 pm »
Bonsoir,

Il y a quelques mois seulement que j'ai découvert SFML, et je poste aujourd'hui mon tout premier sujet sur le forum. Mon problème a été sans doute traité maintes fois par d'autres membres, mais malheureusement aucun n'a donné une solution précise, voila, j'aimerais utiliser l'anticrénelage (anti-aliasing) pour rendre la bordure de mes formes (shapes) plus lisse et plus jolie à voir, et donc je me suis fié aux indications de la documentation, la partie (Formes anticrénelées) :
https://www.sfml-dev.org/tutorials/2.4/graphics-shape-fr.php

mais rien n'a changé, mes formes gardent le même rendu, en voici le code utilisé et un aperçu du rendu :

#include <iostream>
#include <SFML/Audio.hpp>
#include <SFML/Graphics.hpp>
#include <SFML/OpenGL.hpp>

using namespace std;
using namespace sf;


int main()
{

    ContextSettings settings;
    settings.antialiasingLevel = 8;

    RenderWindow window(VideoMode(800, 600), "TEST", Style::Default,settings);

    /**CERCLE**/
    CircleShape cercle(100);
    cercle.setPosition(500,200);
    cercle.setFillColor(Color::Black);

    /**TRIANGLE**/
    VertexArray triangle(Triangles,3);
    Vertex vA(Vector2f(300,200),Color::Black);
    Vertex vB(Vector2f(450,300),Color::Black);
    Vertex vC(Vector2f(150,400),Color::Black);
    triangle.append(vA);
    triangle.append(vB);
    triangle.append(vC);
   
   

    Event event;
    while(window.isOpen())
    {
        while(window.pollEvent(event))
        {
            if(event.type == Event::Closed){window.close();}
        }

        window.clear(Color::White);
        window.draw(cercle);
        window.draw(triangle);
        window.display();
    }


    return EXIT_SUCCESS;
}
 

Image : http://imgur.com/KAR5FKp

J'ai ensuite relu la documentation et je suis tombé sur cette phrase : "Souvenez-vous que l'anticrénelage dépend de la carte graphique : elle peut ne pas le supporter, ou forcer sa désactivation dans les paramètres du pilote graphique."

Donc mes questions sont :

-Y a t'il des manipulation supplémentaire à faire pour que l'anticrénelage fonctionne ?
-Comment savoir si une carte graphique supporte ou pas l'anticrénelage ?
-Si ma carte supporte l'anticrénelage qu'est ce qui a forcé sa désactivation et comment régler ça ?


Informations supplémentaires :
-je suis sous Windows 7.
-ma version d'OpenGL est 3.3 (selon le ContextSettings).

Sujets similaires :
https://en.sfml-dev.org/forums/index.php?topic=8685.0
https://gist.github.com/opatut/888217


Au final, merci pour votre aide et j'accepte toute réponse ou critique.
« Modifié: Juillet 13, 2017, 01:46:46 pm par guatto »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re: Problème d'activation de l'anticrénelage
« Réponse #1 le: Juillet 12, 2017, 10:57:10 pm »
Il faut aller fouiller dans les options du pilote de ta carte graphique, et trouver la ou les option(s) qui s'y rapporte(nt).
Laurent Gomila - SFML developer

guatto

  • Newbie
  • *
  • Messages: 3
    • Voir le profil
Re: Problème d'activation de l'anticrénelage
« Réponse #2 le: Juillet 12, 2017, 11:45:52 pm »
Salut,

merci d'avoir répondu aussi vite, et en effet le problème venait de ma carte graphique, il y avait quelques réglages à faire qui m'étaient dissimulés, mais j'ai fini par résoudre le problème (enfin je crois), et le rendu est meilleur que le précédent, pour les réglages voici ce que j'ai fait :

-Antialiasing - FXAA                                   On
-Antialiasing - Gamma correction                 On
-Antialiasing - Mode                              (j'ai laissé sur "Override any application setting")
-Antialiasing - Setting                            (le plus important) j'ai mis sur 8x les autres options sont : (2x, 4x, 8x CSAA, 16x CSAA, 16xQ CSAA)
-Antialiasing - Transparency                  (j'ai laissé sur "Off")


J'espère que c'est la bonne manipulation, et au final, merci encore pour votre aide.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re: Problème d'activation de l'anticrénelage
« Réponse #3 le: Juillet 13, 2017, 08:02:04 am »
Il n'y a pas de "bonne" manipulation, ça dépend de ce que tu veux. Là tu forces l'antialiasing à 8x partout tout le temps, en ignorant ce que l'application demande. Tu ne voulais pas plutôt laisser l'application décider ?
Laurent Gomila - SFML developer

guatto

  • Newbie
  • *
  • Messages: 3
    • Voir le profil
Re: Problème d'activation de l'anticrénelage
« Réponse #4 le: Juillet 13, 2017, 01:20:00 pm »
Bonjour,  oui l'idée de laisser le choix à l'application me parait le mieux, j'ai donc modifié les deux valeurs comme suit :

-Antialiasing - Mode        Application-controlled
-Antialiasing - Setting     Application-controlled

Je vous remercie encore, et je mets en résolu.