Quiero hacer algunos pixelart calculados con OpenCL y mostrar esto directamente en la pantalla sin una ida y vuelta de la CPU. Podría usar la interoperabilidad de OpenCL con OpenGL y escribir en los bancos de texturas de la GPU y mostrar la textura con OpenGL. Me preguntaba cuál sería la mejor manera de hacerlo, ya que no necesito nada de 3D, solo 2d pixelart.¿Cómo dibujar los píxeles calculados de OpenCL en la pantalla con OpenGL?
Respuesta
La mejor manera sería utilizar la interoperabilidad OpenCL/OpenGL, si su implementación OpenCL lo admite. Esto permite a OpenCL acceder a ciertos objetos de OpenGL (objetos de búfer y texturas/renderbuffers). No podrá acceder directamente al framebuffer predeterminado de OpenGL (es decir, la pantalla), pero podrá acceder a una imagen vinculada a framebuffer object. Desde allí, puede, en OpenGL, hacer un blbuter de framebuffer en el framebuffer predeterminado. Nada tocará la memoria de la CPU.
Tendrás que buscar los detalles en CL/GL interop para obtener más información. La idea básica es crear un renderbuffer en OpenGL (que se vincula a un FBO). Luego pasas ese renderbuffer a OpenCL y haces tus cálculos en el renderbuffer. Una vez que se haya completado, realice un glBlitFramebuffer
para copiar los datos desde el buffer de representación al framebuffer predeterminado, luego intercambie los buffers para mostrarlos.
- 1. ¿Cómo leer los píxeles de la pantalla?
- 2. Matlab: cómo dibujar píxeles en una pantalla completa en negro?
- 3. Pantalla de píxeles en la pantalla en C
- 4. Cómo dibujar fondo en openGL
- 5. Dibujar para renderbuffer fuera de pantalla en OpenGL ES (iPhone)
- 6. Dibujando grandes cantidades de píxeles en OpenGL
- 7. Cómo escalar píxeles en pantalla?
- 8. Cómo dibujar a la pantalla en C++?
- 9. ¿Cuál es la manera más rápida de dibujar píxeles individuales directamente a la pantalla en una aplicación de iPhone?
- 10. ¿Cómo dibujar un polígono en colores de píxeles específicos solamente?
- 11. OpenGL: Dibujar líneas con VBO
- 12. Cómo dibujar la línea "brillante" en OpenGL ES
- 13. OpenGL - Cómo dibujar píxel cuadrado con GL_POINTS
- 14. Dibujar con el mouse provoca huecos entre los píxeles
- 15. ¿Cómo dibujar texto usando solo métodos OpenGL?
- 16. ¿La mejor manera de dibujar texto con OpenGL y Cocoa?
- 17. Ejemplo de dibujo de píxeles OpenGL/PBO necesario
- 18. ¿Cómo dibujar algo con OpenGL ES en Linux?
- 19. Pantalla de video con OpenGL
- 20. ¿Cómo dibujar un texto (escribir en la pantalla) usando las funciones estándar de OpenGL?
- 21. Cómo dibujar múltiples cubos en OpenGL
- 22. Dibujar líneas punteadas con OpenGL-ES
- 23. La forma correcta de dibujar texto en OpenGL ES 2
- 24. Abysmal OpenCL ImageSampling performance vs OpenGL TextureSampling
- 25. Resolución de píxeles de pantalla en mm
- 26. Configuración de KVO para valores calculados, según los valores calculados
- 27. ¿Cuál es la mejor manera de dibujar un quad de pantalla completa en OpenGL 3.2?
- 28. cómo dibujar un polígono transparente en openGL
- 29. ¿La mejor manera de acceder a píxeles en OpenGL?
- 30. OpenGL - Dibujar un cuadrado con glDrawArrays()
Bueno uno. Conozco este método, pero tengo algunos problemas con la realización CL & GL interoperabilidad. ¿Puedes ver mi problema aquí: http://stackoverflow.com/questions/8789662/interoperability-texture-access-block? – itun