Nie chcę wykonywać obliczonego pixelart z OpenCL i wyświetlać go bezpośrednio na ekranie bez obierania procesora. Mógłbym wykorzystać interoperacyjność OpenCL z OpenGL i napisać do banków tekstur GPU i wyświetlić teksturę z OpenGL. Zastanawiam się, jaki byłby najlepszy sposób, aby to zrobić, ponieważ nie potrzebuję żadnych rzeczy 3d, tylko 2d pixelart.Jak narysować piksele obliczone w OpenCL na ekranie za pomocą OpenGL?
Odpowiedz
Najlepszym sposobem byłoby użycie współdziałania OpenCL/OpenGL, jeśli obsługuje go implementacja OpenCL. Dzięki temu OpenCL może uzyskać dostęp do niektórych obiektów OpenGL (obiektów buforowych i tekstur/buforów renderowania). Nie będzie można uzyskać bezpośredniego dostępu do domyślnego bufora ramki OpenGL (np. Wyświetlacza), ale będziesz mógł uzyskać dostęp do obrazu związanego z framebuffer object. Stamtąd możesz w OpenGL zrobić blur bufora ramki do domyślnego bufora ramki. Nic nie dotknie pamięci procesora.
Będziesz musiał sprawdzić szczegóły na stronie CL/GL interop, aby poznać szczegóły. Podstawową ideą jest utworzenie bufora renderowania w OpenGL (który wiążesz z serwerem FBO). Następnie przekazujesz ten bufor renderowania do OpenCL i wykonujesz swoje obliczenia w buforze renderowania. Po zakończeniu wykonuje się glBlitFramebuffer
, aby skopiować dane z bufora renderowania do domyślnego bufora ramki, a następnie zamienić bufory, aby je wyświetlić.
- 1. Jak narysować na ekranie w języku C++?
- 2. Jak narysować pojedynczy piksel w OpenGL?
- 3. Jak narysować tło w openGL
- 4. OpenCL - wydajność OpenGL Interop
- 5. Swift - Jak narysować linię w OpenGL ES?
- 6. Jak narysować „świecące” linii w OpenGL ES
- 7. Napisz tekst na ekranie za pomocą LWJGL
- 8. Interakcja OpenCL/OpenGL z wieloma procesorami GPU
- 9. Abysmal OpenCL ImageSampling performance vs OpenGL TextureSampling
- 10. Jak narysować coś z OpenGL ES w systemie Linux?
- 11. Jak automatycznie odczytać obliczone wartości za pomocą PHPExcel?
- 12. Jak narysować krzywą mocy za pomocą ggplot2
- 13. Jak narysować punkt za pomocą Core Graphics?
- 14. Uszkodzenie pamięci za pomocą clEnqueueWriteBuffer - OpenCL
- 15. Jak mogę narysować schemat za pomocą LaTeX?
- 16. jak narysować serce za pomocą pylab
- 17. Jak narysować ścieżkę na mapie za pomocą pliku kml?
- 18. Jak narysować prostokąt na osi datetime za pomocą matplotlib?
- 19. Jak uniknąć nakładania się przezroczystości za pomocą OpenGL?
- 20. Android: jak narysować za darmo na wszystko (dowolna aktywność)
- 21. Jak narysować cylinder w osi y lub x w opengl
- 22. Jak podzielić sztukę 2D na trójkąty za pomocą OpenGL
- 23. Jak narysować połączone linie paska w OpenGL w ten sposób
- 24. Jak narysować widok na wszystko?
- 25. Jak narysować podstawowe koło w OpenGL ES 2.0 Android
- 26. Piksele odczytu Androida od GL_TEXTURE_EXTERNAL_OES
- 27. Jak narysować krzywą za pomocą punktów drzewa w systemie Android?
- 28. Jak przekonwertować Twips na piksele w .NET?
- 29. Jak wyświetlać piksele na ekranie bezpośrednio z surowej tablicy wartości RGB szybciej niż SetPixel()?
- 30. OpenGL OpenCL czasy transferu współdziałanie + teksturowania z bitmapy
Dobra. Znam tę metodę, ale mam pewne problemy z realizacją CL i GL interop. Czy możesz zobaczyć mój problem tutaj: http://stackoverflow.com/questions/8789662/interoperability-texture-access-block? – itun