Lecture de la spécification GLSL 1.40: P>
Les sorties de fragments ne peuvent être que flotter, vecteurs de points flottants, signés ou nombres entiers non signés ou vecteurs entier, ou des tableaux de ceux-ci. Matrices et Les structures ne peuvent pas être émises. Fragment Les sorties sont déclarées comme dans le Exemples suivants: P>
Out Vec4 FragmentColor; Sortir la luminosité UINT; P> blockQuote>
La couleur de fragment est définie écrit GL_FRAGCOLOR ... Est-ce raison? Quelqu'un pourrait-il éclaircir mes idées sur ces sorties? Puis-je écrire uniquement "FragmentColor" de l'exemple pour déterminer la couleur du fragment? Puis-je les lire ("luminosité" par exemple)? P>
3 Réponses :
Je veux donner quelques exemples:
Votre exemple a 2 sorties. Ils ont des emplacements FBO correspondants associés après la liaison de programme GLSL. Vous pouvez les rediriger à l'aide de Une fois que vous avez activé le shader et la liaison FBO, tout dépend d'un masque de tirage, défini par GLBindFRAGDatalocation code>. P>
GLDRAWBUFFERS code>. Par exemple, si vous avez passé
gl_color_attachment0 code> et
gl_color_atchment2 code> là, cela signifierait que l'index de sortie 0 ira à la pièce jointe 0 et l'index de sortie 1 irait à la pièce jointe de couleur 2 . p>
La variable de sortie globale GL_FRAGCOLOR est obsolète après la version 120 de GLSL. Maintenant, vous devez lui donner un nom et taper vous-même, comme dans votre exemple. En ce qui concerne plusieurs sorties, Ce lien vous donne des informations sur la cartographie: http://www.opengl.org/wiki/glsl_Objects# Programme_linking p>
(et j'ai trouvé ce lien à: http: // www. opengl.org/discussion_boards/ubbthreads.php?ubb=showflat&number=270999 ) p>
J'espère que cela vous aidera! : D p>
ooops! Je vois que Kvark a donné les informations pertinentes. Quoi qu'il en soit, peut-être que vous avez également quelque chose de mon texte aussi. Em> p>