Je peux obtenir un shader à lire dans deux textures mais pour la sortie, il semble qu'il n'y a que GL_FRAGCOLOR. Y a-t-il un moyen de rendre à deux textures différentes d'un shader? J'utilise le traitement et la bibliothèque glagraphie BTW. P>
3 Réponses :
Je ne sais pas si c'est exactement ce que vous essayez de faire, mais avec objets tampon de cadre (FBOS) Vous pouvez dessiner simultanément sur plusieurs tampons de couleur. P>
Dans le shader, cependant, il restera tout simplement comme si vous écrivez un fragment. C'est-à-dire que le shader n'est pas au courant du nombre de pièces jointes de la FBO. P>
Oui, vous pouvez écrire sur GL_FRAGDATA, qui est une gamme de sorties (la taille dépend de votre implémentation). Ou avec des versions plus récentes de GL, GL_FRAGCOLOR et GL_FRAGDATA sont obsolètes et vous déclarez vos propres variables code> pour le shader de fragment à écrire. Déclarez plusieurs tels out code> vars pour plusieurs tampons de sortie. P>
Merci. J'aimerais voir un exemple de code de la manière dont cela serait fait dans GLSL et peut-être un pseudo code pour l'application hôte si c'est le bon terme.
En fait, je me suis inscrit moi-même. Je devais juste dire "Variant Vec4 Color1, Color2", etc. En haut et qui semblait se lier automatiquement à la gamme de textures que j'étais déjà en train de passer. Puis fixez ces variables à quelque chose quelque part dans le vide principal ().
Est-ce pris en charge dans OpenGles 2.0?
oui. Nous pouvons. Mais remarquez que GL_FRAGDATA n'est plus pris en charge dans GLSL 4.0. Spécifiez l'emplacement comme suit:
glBindFragDataLocation(programHandle, 0, "FragColor");
Je pense que les emplacements explicites sont préférés sur GLBindFRAGDatalocation code>