Ten dokument wyjaśnia, jak zacząć korzystać z biblioteki grafiki Vulkan poprzez pobranie, skompilowanie i uruchomienie przykładowej aplikacji Khronos©.
Wymagania wstępne
Zanim zaczniesz, przygotuj odpowiedni sprzęt i wersję platformy. Użyj urządzenia lub emulatora obsługującego interfejs Vulkan z Androidem 7.0 (Nougat) oraz interfejsem API na poziomie 24 lub wyższym.
Aby sprawdzić wersję Androida, otwórz menu Ustawienia i wybierz Informacje o telefonie > Wersja Androida. Jeśli masz pewność, że konfiguracja sprzętu i platformy jest odpowiednia, możesz pobrać niezbędne oprogramowanie.
Pobierz
Zanim zaczniesz, musisz pobrać różne narzędzia i inne oprogramowanie. Pamiętaj, że na hoście z systemem Windows zaleca się unikanie głębokiej hierarchii ścieżek plików dla narzędzi i kodu źródłowego. Ma to na celu obejście limitów ścieżek plików w niektórych wersjach systemu operacyjnego Windows.
- Jeśli nie masz jeszcze środowiska Android Studio, pobierz je. Dotyczy to najnowszego pakietu SDK do Androida.
- Zainstaluj NDK i CMake w Android Studio lub pobierz i zainstaluj je oddzielnie.
- Skompiluj i uruchom przykład Hello JNI, aby upewnić się, że Android Studio działa prawidłowo.
- Zainstaluj python3 i inne komponenty wymienione w pliku build.md dla swojej platformy hosta.
Importuj
W tej sekcji pobierzesz przykładowe repozytorium Khronos© Vulkan©, wygenerujesz projekt Gradle na Androida i otworzysz go w środowisku IDE Android Studio.
- Ustaw te zmienne środowiskowe:
export ANDROID_HOME=/path/to/sdk-directory export ANDROID_NDK_HOME=$ANDROID_HOME/ndk/{your-ndk-version-dir}
- Dodaj element CMake do ścieżki $PATH, która służy do generowania skryptów kompilacji Androida:
export PATH=$PATH:$ANDROID_HOME/cmake/{your-cmake-version}/bin
- Otwórz terminal i pobierz kod źródłowy do katalogu programistycznego:
cd dev-directory git clone --recursive https://github.com/KhronosGroup/Vulkan-Samples.git
- Aby wygenerować przykładowy projekt na Androida, wykonaj te instrukcje (z Build.md):
cd Vulkan-Samples ./scripts/generate.py android
- Otwórz Android Studio. Wybierz Plik > Otwórz i wybierz
Vulkan-Samples/build/android_gradle/build.gradle
. Po wczytaniu projektu przez Android Studio powinno pojawić się coś podobnego do tej:Rysunek 1. Przykładowy projekt w Android Studio.
Kompilacja
Wszystkie próbki w tym repozytorium są uporządkowane w jednym projekcie Androida. Aby skompilować projekt, wykonaj jedną z tych czynności:
- Aby skompilować źródła, użyj menu Kompilacja > Utwórz projekt lub naciśnij klawisz skrótu Ctrl+F9.
- Aby wygenerować przykładowy plik APK, wybierz menu Kompilacja > Pakiety kompilacji/APK > Utwórz pliki APK.
W oknie Build (Kompilacja) w Android Studio powinien pojawić się komunikat o udanym przeprowadzeniu kompilacji. Jeśli pojawią się błędy, popraw je i ponownie skompiluj.
Wykonaj
Przed uruchomieniem przykładowego projektu upewnij się, że Android Studio rozpoznaje połączone urządzenie Vulkan lub emulator Androida. Powinna pojawić się informacja podobna do tej:
Aby uruchomić projekt:
- Użyj menu Uruchom > Uruchom vulkan_sample lub kliknij przycisk Uruchom na pasku narzędzi i poczekaj, aż przykład zostanie zainstalowany i uruchomiony na połączonym urządzeniu.
- Na połączonym urządzeniu z Androidem autoryzuj wymagane prośby o dostęp.
- włącz opcję Zezwalaj na zarządzanie wszystkimi plikami, a następnie kliknij strzałkę przycisk Wstecz, aby wyświetlić przykładowy główny ekran startowy;
- zezwól na dostęp do dysku:
Rysunek 4. Włącz dostęp do dysku.
- Zobaczysz przykładowy ekran menu głównego, podobny do tego:
Rysunek 5. Przykładowe menu główne. - Przejrzyj przykładową listę i wybierz kilka z nich do uruchomienia.
Jeśli nie masz doświadczenia z programowaniem Vulkan, możesz zacząć od przykładów interfejsu API.
Na przykład kliknięcie „Trójkąta Hello” powinno wyświetlić wyrenderowany trójkąt podobny do tego:
Rysunek 6. Przykład „Hello Triange”.
Twój system programistyczny jest teraz skonfigurowany do uruchamiania próbek na urządzeniu testowym.
Aplikacja Vulkan Sample została opracowana na potrzeby różnych systemów operacyjnych, w tym przeznaczonych na komputery i urządzenia mobilne. Niektóre próbki w sekcjach Wydajność, Rozszerzenia i Narzędzia mogą być niestabilne i ulegać awariom na urządzeniu. Może to mieć różne przyczyny, na przykład:
- Specjalne funkcje interfejsu Vulkan nie zostały zaprojektowane z myślą o Androidzie.
- Twoja wersja systemu operacyjnego Android nie jest obsługiwana.
- Możliwości GPU Twojej platformy sprzętowej.
Dowiedz się więcej
Sekcja Java w przykładzie z interfejsu Vulkan pochodzi z klasy NativeActivity. Przekazuje do kodu C/C++ typowe zdarzenia cyklu życia aplikacji, takie jak tworzenie, uruchamianie, zatrzymywanie i niszczenie. W sekcji C/C++ tego przykładu znajduje się przykładowa platforma, która implementuje funkcję przełączania podpróbki w czasie działania. Ogólnie zdarzenia i wiadomości w systemie Android przechodzą przez tę ścieżkę, aby dotrzeć do kodu Vulkana w przykładowej aplikacji:
- Sekcja
NativeSampleActivity
w Javie - Sekcja C/C++
NativeSampleActivity
- Kod
android_native_glue
android_main
- Przykładowa platforma
- Indywidualny kod podpróbki
android_main
to most między NativeSampleActivity
a kodem aplikacji i może być punktem wyjścia dla przykładowego kodu. Jeśli chcesz się skupić tylko na źródłach interfejsu Vulkan, możesz przejrzeć kod w sekcji Vulkan_Samples\samples
, która zawiera:
- Przykłady kategorii „api”.
- Przykłady w kategorii „Skuteczność”.
- Przykłady kategorii „Rozszerzenia”.
- Próbki „narzędzi”.
Vulkan_Samples\shaders
to miejsce przechowywania wszystkich programów do cieniowania.
Możesz zacząć przeglądać przykłady kategorii „API”, aby zapoznać się z podstawowymi zastosowaniami interfejsu Vulkan i przykładową platformą. Następnie możesz przejść do kategorii „Skuteczność” i „Rozszerzenia”. W przypadku kodu do cieniowania możesz użyć widoku Projekt w Android Studio.
Dodatkowe materiały
Interfejs Vulkan API był dostępny już w kilku wersjach, dlatego jest w trakcie opracowywania. Komitet ds. standardów Vulkan oraz społeczność Vulkan stworzyły bogaty zestaw materiałów przedstawiających zastosowanie interfejsu API i sprawdzone metody. Poniższa lista zawiera zasoby do tworzenia aplikacji Vulkan:
Specyfikacja interfejsu Vulkan. Grupa Khronos zachowuje specyfikację interfejsu Vulkan. Pełną specyfikację, szkolenie, przewodniki i samouczki znajdziesz na stronie głównej interfejsu Vulkan.
Warstwy weryfikacji. Warstwy walidacji są niezbędne do tworzenia aplikacji. Więcej informacji znajdziesz w dokumentacji warstw weryfikacji interfejsu Vulkan na Androidzie.
Shaderc. Kod Shaderc w pakiecie NDK to źródło repozytorium Shaderc. Dokumentacja użycia oraz instrukcje pobierania najnowszej wersji znajdziesz w artykule Kompilatory Shadera.