Pierwsze kroki z interfejsem Vulkan

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.

  1. Jeśli nie masz jeszcze środowiska Android Studio, pobierz je. Dotyczy to najnowszego pakietu SDK do Androida.
  2. Zainstaluj NDK i CMake w Android Studio lub pobierz i zainstaluj je oddzielnie.
  3. Skompiluj i uruchom przykład Hello JNI, aby upewnić się, że Android Studio działa prawidłowo.
  4. 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.

  1. Ustaw te zmienne środowiskowe:
    export ANDROID_HOME=/path/to/sdk-directory
    export ANDROID_NDK_HOME=$ANDROID_HOME/ndk/{your-ndk-version-dir}
    
  2. 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
    
  3. 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
    
  4. Aby wygenerować przykładowy projekt na Androida, wykonaj te instrukcje (z Build.md):
    cd Vulkan-Samples
    ./scripts/generate.py android
    
  5. 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:
    Importuję przykładowy projekt do Studio.

    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.

Kompiluję przykładowy projekt w Studio.

Rysunek 2. udana przykładowa kompilacja.

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:

Łączę urządzenie testowe ze Studio.

Rysunek 3. Połącz urządzenie testowe z Androidem Studio.

Aby uruchomić projekt:

  1. 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.
  2. 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:
      co umożliwia dostęp do dysku.

      Rysunek 4. Włącz dostęp do dysku.

  3. Zobaczysz przykładowy ekran menu głównego, podobny do tego:
    przykładowego menu głównego.

    Rysunek 5. Przykładowe menu główne.

  4. 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:
    Trójkąt

    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.

Program do cieniowania trójkątów.

Rysunek 7. Poznaj program do cieniowania w 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: