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 :

Support des textures non puissance de 2 et rendu offscreen (pour shaders glsl) ?


Sujet :

OpenGL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 6
    Par défaut Support des textures non puissance de 2 et rendu offscreen (pour shaders glsl) ?
    Hello,

    Je voudrais faire un petit programme qui permet de tester les différents shaders glsl qui agissent sur toute la scène, style convolution, laplace, détourage, halftone... Un peu comme la zone preview dans le FX Composer de nvidia avec les .fx post-processing.

    Pour l'instant ce à quoi je pensais c'était glCopyTexImage2D, puis un quad sur tout l'écran que je texturais avec cette texture traitée par le shader. (inspiré du blur sur nehe)

    Après je suis tombé sur les FBO... késako ? est-ce que ce serait bien dans ce cas là ? (j'ai regardé un peu l'exemple sur codesampler, mais ça m'a pas tellement éclairé sur l'intérêt).

    Et je suis aussi tombé sur l'extension GL_ARB_texture_non_power_of_two qui permet d'utiliser des textures de la taille qu'on veut, ce qui serait chouette pour le glCopyTexImage2D.
    Sauf que a priori les cartes ATI (j'ai une X800) ne l'ont pas directement, mais sont compatibles opengl 2.0, et c'est censé faire partie de opengl 2.0.
    J'ai essayé avec GLEW qui me dit bien que GL_VERSION_2_0 est ok, mais ça rame affreusement (en fait ça affiche même pas la première image) avec un format de texture pas puissance de 2...

    Merci beaucoup pour les explications! J'ai passé plein de temps à chercher des infos sur le net, autant y'a plein de didacticiels et d'infos sur les trucs de base, autant là dessus...

  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 : 41
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Par défaut
    Citation Envoyé par Vinz9
    Pour l'instant ce à quoi je pensais c'était glCopyTexImage2D, puis un quad sur tout l'écran que je texturais avec cette texture traitée par le shader. (inspiré du blur sur nehe)
    c'est effectivement une solution qui fonctionne.
    Citation Envoyé par Vinz9
    Après je suis tombé sur les FBO... késako ? est-ce que ce serait bien dans ce cas là ? (j'ai regardé un peu l'exemple sur codesampler, mais ça m'a pas tellement éclairé sur l'intérêt).
    FBO => frame buffer object : c'est une extension qui permet de faire des rendu directement dans une texture, ainsi, on evite le glCopyTexImage2D et autres qui ralentissent.
    Dans ton cas, c'est ce qu'il y a de mieux à utiliser, mais ce n'est pas supporté par toutes les cartes (en meme temps, le GLSL non plus )
    Citation Envoyé par Vinz9
    Et je suis aussi tombé sur l'extension GL_ARB_texture_non_power_of_two qui permet d'utiliser des textures de la taille qu'on veut, ce qui serait chouette pour le glCopyTexImage2D.
    Sauf que a priori les cartes ATI (j'ai une X800) ne l'ont pas directement, mais sont compatibles opengl 2.0, et c'est censé faire partie de opengl 2.0.
    J'ai essayé avec GLEW qui me dit bien que GL_VERSION_2_0 est ok, mais ça rame affreusement (en fait ça affiche même pas la première image) avec un format de texture pas puissance de 2...
    a priori, c'est qu'ils doivent l'emuler en software, ATI ayant eut quelques problemes avec les NPOT textures...
    * 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 régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 6
    Par défaut
    Ok merci, je vais continuer à creuser pis je reviendrai ici quand j'aurai d'autres questions


    edit : j'ai fini par trouver (sur le forum de humus.ca) pour les textures non puissance de deux, ça peut servir à certains, il faut mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_CLAMP_TO_EDGE);
    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_CLAMP_TO_EDGE);
    alors que c'est gl_repeat par défaut, et pas utiliser de mipmaps.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ubuntu : le support des versions non LTS réduit de moitié
    Par Stéphane le calme dans le forum Ubuntu
    Réponses: 12
    Dernier message: 22/03/2013, 15h12
  2. Texture non puissance de 2
    Par Bertrand88 dans le forum OpenGL
    Réponses: 5
    Dernier message: 21/07/2010, 11h25
  3. [DX9] Textures non puissance de 2
    Par mister3957 dans le forum DirectX
    Réponses: 4
    Dernier message: 08/01/2008, 20h32
  4. appliquer des textures de taille 2n+1
    Par Katsuo chris dans le forum DirectX
    Réponses: 4
    Dernier message: 14/11/2002, 00h11

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