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 :

Appliquer des filtres sur des images avec les fragments Shaders


Sujet :

OpenGL

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Points : 393
    Points
    393
    Par défaut Appliquer des filtres sur des images avec les fragments Shaders
    Bonjour,

    je voudrais en JOGL faire une API (pour le projet millie) où on utilise la puissance des Fragment Shaders pour appliquer des filtres (Cany, Median, Hough...) sur des images.

    Je comprends comment on fait une scene3D, et des textures, ainsi que comment on lie un Fragmenet Shader. Par contre j'ai du mal avec le Frame Buffer Object (si j'ai bien compris c'est dedans
    que je vais récupérer le résultat).

    Comment je peux faire pour passer une image puis récupérer une image de même dimension ? Je suppose aussi qu'il faut un framerate=0 pour avoir un seul appel de rendu.

    Peut être disposez vous d'un exemple, ou bien des étapes à suivre.

    Merci

  2. #2
    Expert éminent sénior

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

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

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 031
    Points : 11 379
    Points
    11 379
    Billets dans le blog
    10
    Par défaut
    Bonjour !

    Je ne fais pas de JOGL, mais voici comment je ferais :
    • Création d'un quad (4 sommets (0,0) (1,0) (1,1) (0,1) et 4 coordonnées de texture)
    • Création d'une texture avec pour image celle à laquelle tu veux appliquer un filtre
    • Création d'un FBO
    • Création de la texture qui recevra le résultat (donc aux mêmes dimensions que l'image source)
    • Attachement de la texture au FBO, sur le canal COLOUR0
    • Création d'un shader program (un vertex shader bateau et le fragment shader contenant le code du filtre)
    • Rendu de la scène :
      • Activation du FBO
      • Activation du shader program
      • Activation de la texture source
      • glViewport doit être défini aux dimensions de l'image (0, 0, width, height)
      • Dessin du quad
      • Désactivation de la texture source
      • Désactivation du shader program
      • Désactivation du FBO
    • Récupération de l'image filtrée :
      • Activation de la texture destination
      • Copie du buffer de la texture dans le buffer de l'image destination
      • Désactivation de la texture destination
    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).

Discussions similaires

  1. [three.js] Mixer des filtres sur une image
    Par scandinave dans le forum Bibliothèques & Frameworks
    Réponses: 0
    Dernier message: 19/08/2014, 19h38
  2. [Article] Appliquer un effet de zoom sur une image avec les CSS
    Par Bovino dans le forum Publications (X)HTML et CSS
    Réponses: 1
    Dernier message: 17/10/2010, 07h53
  3. Réponses: 0
    Dernier message: 28/05/2010, 16h10
  4. Réponses: 1
    Dernier message: 15/05/2008, 20h11
  5. dessiner des cercles sur une image avec java
    Par inès83 dans le forum Traitement d'images
    Réponses: 12
    Dernier message: 04/05/2008, 17h34

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