Stavo leggendo this articolo, e l'autore scrive:È scarto negativo per le prestazioni del programma in OpenGL?
Ecco come scrivere applicazioni ad alte prestazioni su ogni piattaforma in due semplici passaggi:
[...]
seguire le migliori pratiche. Nel caso di Android e OpenGL, questo include cose come "batch draw calls", "non usare scarto in frammenti shader" e così via.
Non ho mai sentito dire che lo scarto avrebbe un impatto negativo sulle prestazioni o simili e lo abbiamo utilizzato per evitare la fusione quando non è stato necessario un alfa dettagliato.
Qualcuno potrebbe spiegare perché e quando utilizzare lo scarto potrebbe essere considerato una cattiva pratica e come scartare + approfondimento si confronta con la combinazione alpha +?
Modifica: Dopo aver ricevuto una risposta a questa domanda, ho eseguito alcune verifiche eseguendo il rendering di un gradiente di sfondo con un quadratino di trama.
- Uso GL_DEPTH_TEST e un frammento shader termina con la linea "
if( gl_FragColor.a < 0.5){ discard; }
" dato circa 32 fps. - La rimozione dell'istruzione if/discard dallo framment-shader ha aumentato la velocità di rendering di a circa 44 fps.
- Uso GL_BLEND con la funzione blend "(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)" anziché GL_DEPTH_TEST anche portato a circa 44 fps .
Domanda molto interessante, spero che qualcuno sarà in grado di rispondere. – bvd