Stavo cercando di eseguire un codice OpenGL, non aveva GL_DEPTH_BUFFER_BIT cancellato in glClear(), a causa del quale non riuscivo a rendere la mia scena. Ho aggiunto questo bit e la scena è stata renderizzata. Perché è necessario usare questo pezzo chiaro?Perché dobbiamo cancellare il depth buffer in OpenGL durante il rendering?
Posso conoscerne il motivo, per cancellare i valori dei buffer di profondità utilizzati in precedenza dalla GPU, ma voglio solo confermarli.
È anche possibile alternare la gamma di profondità e la direzione del test di profondità di ciascun fotogramma. Ma è chiaro che l'eliminazione del buffer di profondità è anche un'ottimizzazione delle prestazioni dell'hardware moderno: implementano la compressione Z-Buffer senza perdita (e buffer dei colori) suddividendo il framebuffer in tile, quando la GPU ha bisogno di leggere/scrivere solo alcuni bit per -tile durante il recupero dei valori per le aree dello schermo che non contengono nulla. Quindi il vecchio trucco che le persone usavano per evitare di cancellare il buffer dei colori e il buffer di profondità danneggia le prestazioni delle moderne GPU;) –
Questo è esattamente quello che pensavo fosse il motivo :) Perfetto ans. – 2am