Pour relancer un sujet dans le droit fil de ce forum, voilà une question de code qu'elle est intéressante:
Pour du MIPmapping ou d'autres trucs en GLSL, il peut être utile de construire les "autres niveaux de mimap" d'une image dynamique, ou le niveau 0 correspondrait à un FBO, redessiné en temps réel.
J'ai une routine qui construit un niveau a partir du niveau du dessus avec des shaders, mais les niveaux de la pyramide sont des textures indépendantes, pas "une seule texture" avec plusieurs levels: en effet: il est possible d'attacher un FBO a chaque level d'une texture, mais si on fait ça j'imagine que c'est pas légal, parce que
tu te retrouves à écrire la même texture que tu lis, même si le niveau écris n'est en théorie pas lu, un texture2d() est susceptible de lire ce qui est écrit.
Flairant ce problème, Je m'en suis tenu à garder autant de textures que de niveaux, puis de finasser avec le shader qui va ensuite utiliser la pyramide (en faisant un mip maison avec 2 texture2d(), pas très élégant tout ça) .
Dans les docs de gl"ES"2, j'avais cru voir une méthode GL pour re-construire automatiquement tout les niveaux >0 d'une texture. Il me semble l'avoir testé sous la petite implémentation qui la proposait (une beta du tegra sdk) et avoir constaté des perfs de daube.
Une telle méthode est elle dispo sur les implémentations courantes (la dernière fois ou j'ai vraiment fait du GL c'était en 2002/2004, à l'époque il fallait créer tout ses niveaux au cpu ). Quelqu'un connait-il une autre bidouille pour construire une pyramide en temps réel ? ou un truc genre faire du ping-pong entre 2 pyramides puis recopier un des niveaux sur 2 vers l'autre ?
Merci les mecs, c'est puissant !
