Posso ottenere uno shader da leggere in due trame ma per l'output sembra che ci sia solo gl_FragColor. C'è un modo per rendere a due trame diverse da uno shader? Sto usando Processing e la libreria GLGraphics btw.È possibile emettere l'output GLSL su due/più trame contemporaneamente?
risposta
Sì, è possibile scrivere su gl_FragData, che è una matrice di output (la dimensione dipende dall'implementazione). O con le versioni più recenti di GL, sia gl_FragColor che gl_FragData sono deprecate e dichiarate le vostre variabili out
per lo shader di frammenti su cui scrivere. Dichiarare più di tali out
vars per più buffer di output.
Non so se questo è esattamente quello che stai cercando di fare, ma con Frame Buffer Objects (FBOs) puoi disegnare simultaneamente su più buffer di colore.
All'interno dello shader, tuttavia, sarà ancora come se si stesse scrivendo un frammento. Ossia, lo shader non è a conoscenza di quanti allegati ha l'FBO.
Sì. Noi possiamo. MA Notare che gl_FragData non è più supportato in GLSL 4.0. Specificare la posizione come:
glBindFragDataLocation(programHandle, 0, "FragColor");
.....
spero si poteva leggere il libro di GLSL 4.0 ombreggiatura linguaggio libro di cucina.
Penso che le posizioni esplicite siano preferite su 'glBindFragDataLocation' – RecursiveExceptionException
- 1. Invio di due trame allo shader GLSL
- 2. Più trame in GLSL - solo una funziona
- 3. È possibile sostituire GLSL con CG?
- 4. C# - È possibile emettere l'heap GC?
- 5. È possibile creare ed eseguire su DUE iPhone/iPod contemporaneamente?
- 6. È possibile utilizzare AVCaptureVideoDataOutput e AVCaptureMovieFileOutput contemporaneamente?
- 7. È possibile aggiungere più elenchi contemporaneamente? (Python)
- 8. È possibile iterare tre array contemporaneamente?
- 9. È possibile impedire a Doxygen di emettere membri protetti?
- 10. È inefficiente emettere QByteArray?
- 11. Come rendere oggetti Framebuffer su trame multicampionate?
- 12. Android: è possibile avere connessioni 3G e Wifi contemporaneamente?
- 13. È possibile emettere video della mia applicazione iPhone in esecuzione su un dispositivo?
- 14. È possibile iterare attraverso due elenchi contemporaneamente in Underscore.js?
- 15. È possibile eseguire contemporaneamente due diverse versioni di tmux?
- 16. È possibile leggere e scrivere in un file contemporaneamente?
- 17. È possibile eseguire contemporaneamente due processi su un core della CPU?
- 18. È possibile scrivere contemporaneamente su un ingresso e un flusso di uscita socket?
- 19. È possibile attendere contemporaneamente su entrambi i canali e i descrittori di file in Go?
- 20. Devo emettere avvisi su STDERR o STDOUT?
- 21. Differenze tra GLSL e GLSL ES 2
- 22. Programma GLSL Editor
- 23. Iterate su due array contemporaneamente
- 24. Ripetizione trame in OpenGL
- 25. Interrogazione su più database contemporaneamente
- 26. glsl TRANSFORM_TEX
- 27. GLSL - texture1D è obsoleto, cosa usare invece?
- 28. Oggetto GLSL incandescente
- 29. è sicuro recv() e send() su un socket contemporaneamente?
- 30. trame Salvataggio all'interno lapply
Grazie. Mi piacerebbe vedere un esempio di codice di come questo sarebbe fatto in GLSL e forse qualche pseudo codice per l'applicazione host se questo è il termine giusto. – Moss
In realtà, l'ho capito da solo. Ho appena dovuto dire "variando vec4 Color1, Color2" ecc. In alto e questo sembrava collegarsi automaticamente alla matrice di trame che stavo già passando. E poi impostare quelle variabili su qualcosa da qualche parte all'interno di void main(). – Moss
È supportato in OpenglES 2.0? –