Potrzebuję zastosować niektóre shadery pikseli do bitmapy (używając OpenGL) i wysłać wynik na serwer. Rendering powinien być wykonany w tle, więc nie mogę utworzyć GLSurfaceView w tym celu. Moje pytanie brzmi: czy możliwe jest renderowanie OpenGL na Androidzie bez użycia GLSurfaceView? Jak renderowanie bezpośrednio do mapy bitowej, płótna lub jakiegoś bufora/macierzy? A może po prostu można użyć jakiegoś obojętnego GLSurfaceView?OpenGl renderuje bezpośrednio do mapy bitowej (bez żadnego widoku)
Odpowiedz
This SO post zawiera link do an anddev post. Trochę w dół, ktoś stworzył klasę PixelBuffer
, która ponownie używa interfejsu GLSurfaceView.Renderer
, ale poza tym, tylko EGL.
Na szczęście właśnie skończyłem mój własny renderer oparty na tym samym pomyśle. Dziękuję za odpowiedź i link myślowy. Może być użyteczny dla innych. –
Wspomniany obiekt PixelBuffer zawiera dobry dowód koncepcji, ale ma krytyczny problem z wydajnością: Po wykonaniu bufora tworzona jest druga kopia mapy bitowej poprzez kopiowanie każdego piksela w pętlę, co może spowodować 100% lub więcej zwiększenie czasu pracy! Po prostu pokazuje, że ważne jest, aby ramka referencyjna była prosta w OGL. – tomwhipple
Ponadto PixelBuffer działa na niektórych telefonach, ale nie na innych. Fragmentacja Yay! – tomwhipple
Wygląda na to, że chcesz renderować obiekt bufora ramki (tzn. Bezpośrednio do tekstury). Jest to zdecydowanie możliwe. Po prostu znajdź odpowiedź tutaj lub w sieci. Znalazłem ten bez zbytniego wysiłku. Nie jestem pewien, czy używasz GL ES 1.1 lub 2.0.
http://blog.shayanjaved.com/2011/05/13/android-opengl-es-2-0-render-to-texture/
wygląda również jak APIDemos w SDK zawiera próbkę do 1,1
Dziękuję za odpowiedź. Jak widzę, obie metody zależą od GLSurfaceView. Potrzebuję renderowania bez ekranu/działania/układu. Mam na myśli w pewnym wątku tła. Zastanawiam się, czy GLSurfaceView jest w stanie stworzyć kontekst GL bez możliwości zainicjowania jego powierzchni (ponieważ wymaga ekranu do narysowania). Dziękuję za podpowiedź i wydaje mi się to przydatne. –
@boulder robi GLSurfaceView nie zainicjować, jeśli jest on poza ekranem? Co jeśli jest na ekranie 1px? –
@BradMoore Nie pamiętam teraz. Możesz to sprawdzić całkiem łatwo. O ile pamiętam, nie można korzystać z GLSurfaceView bez ekranu. Opcja 1px nie była opcją, ponieważ renderowanie powinno być wykonane w serwisie. –
- 1. Czy możliwe jest BitBlt bezpośrednio z mapy bitowej GDI +?
- 2. rysunek do większej mapy bitowej
- 3. Unieważnij do własnej mapy bitowej
- 4. Zmiana rozmiaru mapy bitowej
- 5. Funkcja Razor @helper nie renderuje żadnego html
- 6. Konwertowanie mapy bitowej na byteArray android
- 7. outofmemoryerror podczas tworzenia mapy bitowej
- 8. Obracanie mapy bitowej o 90 stopni
- 9. Android: ładowanie mapy bitowej maski alfa
- 10. Konwersja mapy bitowej na jpeg w Androidzie
- 11. Kanał: próbuję użyć przetworzonej mapy bitowej Android
- 12. Android: tworzenie mapy bitowej z zawartością SurfaceView
- 13. Jak utworzyć wypukłość wokół mapy bitowej?
- 14. Rysowanie obróconej mapy bitowej z anty aliasem
- 15. Odręczny obraz Przyciągnij obszar wewnątrz mapy bitowej
- 16. przesłonięcie mapy :: porównaj z funkcją lambda bezpośrednio
- 17. Czy należy zmienić rozmiar mapy bitowej przed dodaniem do ImageView lub pozwolić obrazowi zmienić rozmiar mapy bitowej?
- 18. Szyny mailer bez widoku
- 19. Czy możliwe jest pocięcie mapy bitowej na małe kawałki bez załadowania całej rzeczy do pamięci?
- 20. Rozmiar mapy bitowej zwracanej przez kamerę za pomocą intencji?
- 21. widżety do wyświetlania na widoku mapy
- 22. Piksele bitmapowe Androida - napisz bezpośrednio do pliku?
- 23. Android - Maskowanie bitmapy za pomocą innej mapy bitowej
- 24. OpenGL overlay na widoku kamery
- 25. OpenGL bez karty graficznej
- 26. Linia kropkowana na widoku mapy
- 27. Utwórz Marker bez dodawania go do mapy?
- 28. Pracownik selekcji wisi bez żadnego błędu.
- 29. Używanie OpenGL bez systemu X-Window
- 30. Wyświetlanie SVG w OpenGL bez pośredniego rastra
Możliwy duplikat [Uruchom Androida OpenGL w tle jako zasobu renderującego dla aplikacji?] (Http://stackoverflow.com/questions/6524212/run-android-opengl-in-background-as-rendering-resource-for- app) –