¿En qué casos querría tener un archivo adjunto de render en un OpenGL FBO, en lugar de un archivo adjunto de texturas, además del framebuffer predeterminado? Como, un accesorio de textura parece mucho más versátil.OpenGL FBO renderbuffer o text attatchment
Respuesta
Las texturas le brindan más funciones (¡muestra !, formatos de variedad) y, por lo tanto, es más probable que estén sujetas a la pérdida de rendimiento.
La respuesta es simple: utilice Texturas donde tenga que muestrear desde la superficie (sin alternativas).
Use Render buffers donde no necesite muestras. El conductor puede o no decidir almacenar sus datos de píxeles de manera más efectiva en función de su intención expresa de no hacer el muestreo. Puede usar bl blitting después para hacer algo con el resultado.
Finalmente, una respuesta buena y directa a esta simple pregunta. Gracias. Parece que muchos no tienen más que comentarios poco sólidos sobre este tema (en otras palabras, no lo saben). –
¿Qué significa * muestra de la superficie *? ¿Puedes dar ejemplos más concretos donde uno necesita muestrear y cuándo no? – bluenote10
@ bluenote10 por "muestreo" Me refiero a consultar valores particulares de la textura en un sombreador. Consulte "Funciones de búsqueda de texturas" en https://www.opengl.org/wiki/Sampler_%28GLSL%29 para obtener más información. Por ejemplo, si necesita desenfocar algo, su sombreador típicamente muestrea un área de píxeles y los pesa, por lo que necesita una fuente de textura. En el otro escenario, si solo quieres dibujar algo con la prueba de profundidad, puedes usar un buffer de renderizado en profundidad. – kvark
Extendiendo la pregunta a OpenGL | ES, otra razón para usar RenderBuffers en lugar de texturas también es que las texturas pueden no ser compatibles en algunas configuraciones y evitar que construya un FBO válido. Pienso específicamente en profundidad texturas, que no son compatibles de forma nativa en algunos hardware, por ejemplo nVidia Tegra 2/3.
- 1. ¿Es posible adjuntar el renderbuffer predeterminado a un FBO?
- 2. openGL/GLSL: bloom/blur, representación en FBO
- 3. Dibujar para renderbuffer fuera de pantalla en OpenGL ES (iPhone)
- 4. CoreImage: EAGLContext framebuffer o renderbuffer incorrectamente configurado
- 5. problema al guardar OpenGL FBO mayor que la ventana
- 6. ¿Cuál es la mejor manera de manejar FBO en OpenGL?
- 7. ¿Es posible renderizar una vista de Android a un OpenGL FBO o textura?
- 8. Framebuffer FBO renderizar a textura es muy lento, con OpenGL ES 2.0 en Android, ¿por qué?
- 9. La creación de OpenGL ES 2.0 FBO falla con el error desconocido
- 10. FBO Blitting no funciona
- 11. MySQL TEXT o VARCHAR
- 12. Mezcla FBO en framebuffer predeterminado
- 13. ¿Cuál es el concepto y las diferencias entre Framebuffer y Renderbuffer en OpenGL?
- 14. OpenGL render-to-texture-via-FBO - visualización incorrecta frente a la textura normal
- 15. Contexto fuera de pantalla de OpenGL ES2.0 para representación de FBO
- 16. ¿Cómo crear un FBO con buffer de estarcido en OpenGL ES 2.0?
- 17. Ejemplo mínimo para crear FBO usando OpenGL ES 2.0 en iOS
- 18. ¿Se requiere realmente Renderbuffer de GLSL?
- 19. Core Animation o OpenGL ES?
- 20. OpenGL stencil buffer O operación?
- 21. ¿Cuáles son los pasos necesarios para renderizar mi escena en un objeto framebuffer (FBO) y luego renderizar ese FBO en la pantalla?
- 22. ¿Es mejor usar ob_get_contents() o $ text. = 'Test';
- 23. jquery .text() o .html() no funciona
- 24. glReadPixels de FBO falla con multimuestreo
- 25. iOS OpenGL ES Analyzer enumera "Attachment de framebuffer no existente" y "Attachment de framebuffer faltante", pero el FBO funciona
- 26. Android OpenGL ES GL10 o GL11
- 27. Android glblrawArrays OpenGL ES o GlDrawElements?
- 28. IPhone OpenGL ES vistas individuales o múltiples?
- 29. OpenGL GL_SELECT o detección de colisión manual?
- 30. cómo compartir la textura entre 2 contextos OpenGL?
Me he estado preguntando sobre esto durante mucho tiempo. Supongo que existía una base de programas heredados basados en PBuffer, y algunas personas no estaban dispuestas a adaptarse a un concepto diferente (es decir, escribir en texturas en lugar de escribir en PBuffer y copiar), por lo que la funcionalidad exacta de PBuffer se reimplementó en parte superior de FBO para alentarlos a usar FBO. Realmente no puedo pensar en ninguna otra razón, porque los archivos adjuntos de renderbuffer no son útiles en absoluto (tratando de evitar decir "retardado"). No hay una razón obvia inmediata por la que el renderizado a textura sea más lento (o diferente). – Damon