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, glsl et post-processing


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    Inscrit en
    Décembre 2009
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 171
    Par défaut opengl, glsl et post-processing
    Bonjour,

    J'ai quelques interrogations sur le post-processing en opengl à l'aide de shaders. En gros, j'ai une scène que je dessine dans une texture en utilisant un framebuffer object et sur lequel j'aimerai appliquer un effet. Je sais ce que je doit mettre dans le fragment shader mais je ne vois pas trop ce que je dois mettre dans le vertex shader.

    Ceci fait, j'aimerai maintenant appliquer des effets uniquement sur certains objets de la scène et là je ne vois pas trop comment faire.

    Quelqu'un aurait une idée sur comment faire ça et l'impact sur les performances ?

    Merci d'avance.
    G.

  2. #2
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 219
    Par défaut
    Bonsoir

    je ne vois pas trop ce que je dois mettre dans le vertex shader.
    un vertex shader de post processing est très simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    in vec4 InVertex ;
     
    void main ()
    {
    gl_Position = InVertex ;
    }
    Ensuite, il ne reste plus qu'a passer un carré de coté 2 et centré en (0,0) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    {
    -1.0, -1.0,
    1.0, -1.0,
    1.0, 1.0,
    -1.0, 1.0
    }
    Et hop, le tour est joué.

    Bon ensuite, si tu veux optimiser, tu peut carrément mètre ce petit tableau en temps que tableau constant de vec4 dans le shader, et ensuite tu va chercher le vec4 correspondant avec gl_VertexID. Si tu fait un rendu en core, penses quand même à "bindé" un VertexArray, même si il y a aucun attributs paramètré.

    Ceci fait, j'aimerai maintenant appliquer des effets uniquement sur certains objets de la scène et là je ne vois pas trop comment faire.
    Un petit stencil que tu écris lors du dessin de tes objets spécifiques, et ensuite tu exécutes ton shader de post production avec la condition sur le stencil, et le tour est joué.

    En espérant avoir été utile.

  3. #3
    Membre confirmé

    Inscrit en
    Décembre 2009
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 171
    Par défaut
    Ok, merci pour les réponses.
    Je regarde ça.

    G.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 31
    Par défaut
    Ceci fait, j'aimerai maintenant appliquer des effets uniquement sur certains objets de la scène et là je ne vois pas trop comment faire.
    Pourquoi ne pas simplement utiliser plusieurs shaders.
    - Tu dessine un objet A avec un shader qui fait de jolis effets
    - Tu dessine un objet B avec un shader simplisme sans effets

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 219
    Par défaut
    Certes, mais ils y a des avantages lié au post processing :

    Genre si tu veux pouvoir influencer sur les blooms, depth blur, et autres effets de post production bien lourd, il faut que la scène soit rendu au complet.

    Et si le traitement est couteux, il peut être intéressant de le faire en post-production pour avoir la garantie que ça s'applique qu'une seule fois par pixel.

Discussions similaires

  1. [OpenGL/GLSL] Texture - Transparence non voulu
    Par AuraHxC dans le forum OpenGL
    Réponses: 19
    Dernier message: 25/01/2010, 16h42
  2. OpenGL/GLSL tout ce qui touche aux transformations
    Par AuraHxC dans le forum OpenGL
    Réponses: 13
    Dernier message: 15/12/2009, 14h55
  3. Ombres en post processing ?
    Par Dracul86 dans le forum Développement 2D, 3D et Jeux
    Réponses: 2
    Dernier message: 12/11/2007, 18h30
  4. Coment faire du post-processing avec Dx9 ?
    Par rolkA dans le forum DirectX
    Réponses: 23
    Dernier message: 24/11/2003, 21h15

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