Być może znasz członka forum XDA Michał EGR, czyli Michael Leahy. Michael jest znany ze swojej pracy z OpenGL na Androidzie. W rzeczywistości podczas Big Android BBQ 2014 wygłosił przemówienie zatytułowane „Pakiet rozszerzeń OpenGL ES 3.1 / Androida". Dzisiaj przekazał programistom więcej informacji do wykorzystania w formie pliku Wersja demonstracyjna licencjonowanego frameworka Apache.
Jako programista szybko przekonujesz się, że praca z grafiką może być, powiedzmy, frustrująca. Jest to szczególnie prawdziwe, gdy grafika przypomina film. Chociaż istnieje sporo aplikacji korzystających z OpenGL, niewiele z nich jest otwartych, a programiści nie udostępniają własnych frameworków akceleracyjnych. W tym przypadku Michael dał Ci wszystko, czego potrzebujesz, aby zbudować aplikację wykorzystującą możliwości OpenGL. Dostarczył także towarzyszące mu przewodniki i wpisy na wiki.
Być może zadajesz sobie pytanie: „Co to daje, czego nie zapewnia sam Android?” Cóż, możesz przejść bezpośrednio do kodu i dowiedzieć się, lub możesz usłyszeć to bezpośrednio od samego mężczyzny:
Możliwość łatwego ładowania kodu modułu cieniującego z zasobów jest całkiem niezła. Wszystko, co jest naprawdę dostępne w systemie AndroidGLESXXUtil, naprawdę ułatwia pracę. Sposób działania interfejsu API OpenGL polega na tym, że do wywołań metod należy przekazać tablicę lub IntBuffer, aby wysłać zapytanie i uzyskać wartości zwracane. Wszystko to jest zarządzane wewnętrznie za pomocą tworzenia ThreadLocal, więc jest również bezpieczne dla wątków.
Przepisałem GLSurfaceView -> GLSurfaceView2 przy użyciu EGL 1.4, usuwając wszystkie starsze elementy z tego, co było w Android SDK od wersji 1.0
Dobrym przykładem jest AndroidGLES20Util. W systemie AndroidGLES30Util dostępne są również zastąpienia, które umożliwiają wydajniejsze ładowanie tekstur i prawidłowe działanie z modułami cieniującymi. Adreno 420 był bardzo wybredny, ale znalazłem dobry sposób na ładowanie tekstur, które działały na K1 dla modułu cieniującego obliczeniowo, ale go nie zepsuły, ale nie zepsuły normalnej obsługi tekstur na GPU Adreno.
Chociaż Michael prowadzi obecnie kickstarter, który zakończy się dzisiaj wieczorem i prawdopodobnie nie będzie finansowany, jego głównym celem w udostępnianiu tego jest znaleźć osoby o podobnych zainteresowaniach pracą nad tym projektem i zapewnić deweloperom standardy open source na licencji Apache z. Jeśli więc jesteś programistą i interesuje Cię OpenGL na Androidzie w zastosowaniu do filmów, nie wahaj się z nim skontaktować. W przeciwnym razie sprawdź to Demo OpenGL projekt jak i ramy. Także nie zapomnij wiki!
Jeśli chcesz zobaczyć, co potrafi ten framework, bez moczenia stóp, śmiało sprawdź próbny. Więcej przykładów znajdziesz na kickstartera, który opiera się na tych ramach. Nie zapomnij też sprawdzić Michał EGR'S Wpis na forum XDA.