In quali casi dovrei avere un allegato renderbuffer in un OpenGL FBO, invece di un attacco di texture, oltre che per il framebuffer di default? Come, un attaccamento di trama sembra molto più versatile.OpenGL FBO renderbuffer o texture attatchment
risposta
Textures forniscono ulteriori funzionalità per voi (campionamento !, formati diversi) e, quindi, sono più propensi soggetti a perdita di prestazioni.
La risposta è semplice: utilizzare Textures ovunque sia necessario campionare dalla superficie (senza alternative).
Utilizzare Buffer di rendering ovunque non sia necessario campionare. Il guidatore può decidere o meno di memorizzare i dati dei pixel in modo più efficace in base all'intenzione esplicita di non eseguire il campionamento. Puoi usare GL blitting in seguito per fare qualcosa con il risultato.
Infine, una buona risposta diretta a questa semplice domanda. Grazie. Sembra che molti non abbiano altro che sdolcinati commenti su questo argomento (in altre parole - non sanno). –
Cosa significa * campione dalla superficie *? Puoi dare esempi più concreti dove è necessario campionare e quando no? – bluenote10
@ bluenote10 di "campionamento" Voglio dire interrogare determinati valori della trama in uno shader. Vedi "Funzioni di ricerca della trama" su https://www.opengl.org/wiki/Sampler_%28GLSL%29 per maggiori informazioni. Ad esempio, se hai bisogno di sfocare qualcosa, lo shader tipicamente campiona un'area di pixel e li appesantisce, quindi hai bisogno di una fonte di texture. Nell'altro scenario, se si desidera disegnare qualcosa con il test di profondità, è possibile utilizzare un buffer di rendering di profondità. – kvark
Estendendo la domanda a OpenGL | ES, un altro motivo per utilizzare RenderBuffers anziché trame è anche che le trame potrebbero non essere supportate in alcune configurazioni e impedire la creazione di un FBO valido. In particolare mi pare circa profondità texture, che non sono supportati in modo nativo su alcuni componenti hardware, per esempio nVidia Tegra 2/3.
- 1. Opengl Renderbuffer Texture touchmove ios issue
- 2. OpenGL render-to-texture-via-FBO - visualizzazione errata rispetto al normale Texture
- 3. È possibile eseguire il rendering di una vista Android su un FBO o texture OpenGL?
- 4. Android Opengl FBO offscreen
- 5. Compressione texture OpenGL Android
- 6. OpenGL Texture Mapping
- 7. OpenGL emisfero Texture Mapping
- 8. FFMPEG a OpenGL Texture
- 9. Corruzione opengl texture Android
- 10. Fullscreen texture iPhone OpenGL ES
- 11. OpenGL ES Async texture loading
- 12. Android OpenGL - ES Texture bleeding
- 13. OpenGL ES Render to Texture
- 14. OpenGL Shadow Mapping con FBO - estrazione multipla iniziale
- 15. Come utilizzare il multicampionamento con gli FBO OpenGL
- 16. Render to texture framebuffer o offscreen
- 17. Full HD 2D Texture Memory OpenGL
- 18. Caricamento immagine OpenCV per Texture OpenGL
- 19. OpenGL ES 2.0 La creazione di un FBO non funziona con errore sconosciuto
- 20. OpenGL ES black texture su Nexus S
- 21. Caricamento trama texture JuicyPixels in Haskell OpenGL?
- 22. Texture OpenGL Android Trasparente Disegna Nero
- 23. È richiesto OpenGL 2.0 o successivo con estensione FBO- Errore LibGDX
- 24. OpenGL o OpenGL ES
- 25. GLSL Renderbuffer veramente richiesto?
- 26. Quali sono i passaggi necessari per rendere la mia scena a un oggetto Framebuffer (FBO) e quindi renderizzare FBO sullo schermo?
- 27. Opengl - La modifica di glDrawBuffers è memorizzata in un FBO? No?
- 28. Esempio minimo per la creazione di FBO utilizzando OpenGL ES 2.0 su iOS
- 29. come gestire la memoria con texture in opengl?
- 30. Utilizzo di cache texture OpenGL anziché glReadPixels per ottenere dati di texture
Me lo chiedo a questo per un lungo periodo di tempo. La mia ipotesi è che esisteva una base di programmi legacy basati su pBuffer, e alcune persone non erano disposti ad adattarsi ad un concetto diverso (cioè scrivere a consistenza invece di scrittura per pBuffer e copia), quindi la funzionalità esatto pBuffer è stato re-implementato su cima di FBO per incoraggiarli a utilizzare FBO. Non riesco davvero a pensare ad alcun altro motivo, perché gli allegati di renderbuffer non sono affatto utili (cercando di evitare di dire "ritardati"). Non c'è una ragione immediatamente ovvia per cui il rendering in texture debba essere più lento (o diverso). – Damon