Dai pochi esempi che ho visto in rete, gl_FragData [0] è considerato un buffer di colore. Ho cercato di trovare il significato di ogni indice in gl_FragData e sono imbattuto in questo passaggio da OpenGL libro linguaggio di shading (libro arancione)gl_FragData [0] è sempre un buffer dei colori?
gl_FragData è un array che può essere assegnato i valori che sono scritti in una o più fuori campo buffer . La dimensione di questo array è dipendente dall'implementazione di e può essere interrogata con glGet con la costante simbolica GL_MAX_DRAW_BUFFERS. I buffer fuori schermo che sono modificati come risultato della scrittura di valori in gl_FragData all'interno di uno shader di frammento vengono specificati con glDrawBuffers. Il valore scritto in gl_FragData [0] aggiorna il primo buffer nell'elenco specificato in la chiamata a glDrawBuffers, il valore scritto in gl_FragData [1] aggiorna il secondo buffer nell'elenco e così via.
Non è specificato che il valore 0 di gl_FragData è sempre un buffer di colori. Se c'è una tale specifica, dove posso trovarla? In caso contrario, qual è una pratica normale quando si scrive a gl_FragData?
suppongo glDrawBuffers non è disponibile in OpenGL ES. In tal caso l'FBO la chiama implicitamente ad un certo punto? – Jayesh
'glDrawBuffers' (non confondere con' glDrawBuffer', scelta dei nomi molto intelligente ...) fa parte di ARB_draw_buffers, che è il core OpenGL 2.0. Poiché OpenGL ES 2.0 è definito relativamente a OpenGL 2.0, dovrebbe includere tale funzione. – Damon
@Damon: tecnicamente, ['glDrawBuffer'] (http://www.opengl.org/wiki/GLAPI/glDrawBuffer) è definito in termini di' glDrawBuffers'; è solo una forma più restrittiva (imposta l'indice 0 nel buffer di give e tutti gli altri in 'GL_NONE'). Ma nessuno dei due è in GL ES 2.0. –