Vulkan'ı kullanmaya başlayın

Bu dokümanda, Khronos© örnek uygulamasını indirip derleyerek ve çalıştırarak Vulkan grafik kitaplığını kullanmaya nasıl başlayacağınız açıklanmaktadır.

Ön koşullar

Başlamadan önce doğru donanım ve platform sürümünü hazırladığınızdan emin olun. Vulkan'ı destekleyen, Android 7.0 (Nougat) ve API düzeyi 24 ya da sonraki sürümleri çalıştıran bir cihaz veya emülatör kullanmalısınız.

Ayarlar menüsüne gidip Telefon hakkında > Android Sürümü'nü seçerek Android sürümünüzü doğrulayabilirsiniz. Doğru donanım ve platform sürümünün ayarlandığını onayladıktan sonra gerekli yazılımı indirebilirsiniz.

İndir

Başlamadan önce çeşitli araçları ve diğer yazılımları indirmeniz gerekir. Windows ana makinesinde araçlar ve kaynak kodu için derin dosya yolu hiyerarşisinden kaçınmanız önerilir. Bunun amacı, bazı Windows OS sürümlerinde dosya yolu sınırlarını aşmaktır.

  1. Android Studio'yu henüz yüklemediyseniz indirin. Bu, en son Android SDK'sını içerir.
  2. NDK ve CMake'ı Android Studio'dan yükleyin veya bunları ayrı olarak indirip yükleyin.
  3. Android Studio'nun düzgün çalıştığından emin olmak için Hello JNI örneğini derleyip çalıştırın.
  4. Ana makine platformunuz için python3'ü ve build.md dosyasında listelenen diğer bileşenleri yükleyin.

İçe Aktar

Bu bölümde Kronos© Vulkan© örnek deposunu indirecek, bir Android gradle projesi oluşturacaksınız ve daha sonra bunu Android Studio IDE ile açacaksınız.

  1. Aşağıdaki ortam değişkenlerini ayarlayın:
    export ANDROID_HOME=/path/to/sdk-directory
    export ANDROID_NDK_HOME=$ANDROID_HOME/ndk/{your-ndk-version-dir}
    
  2. CMake'i $PATH yoluna ekleyin. Bu URL, Android derleme komut dosyalarını oluşturmak için kullanılır:
    export PATH=$PATH:$ANDROID_HOME/cmake/{your-cmake-version}/bin
    
  3. Bir terminal penceresi açın ve kaynak kodunu geliştirme dizininize indirin:
    cd dev-directory
    git clone --recursive https://github.com/KhronosGroup/Vulkan-Samples.git
    
  4. Android örnek projesini oluşturmak için Build.md dosyasında şu talimatları uygulayın:
    cd Vulkan-Samples
    ./scripts/generate.py android
    
  5. Android Studio'yu açın. File > Open (Dosya > Aç) seçeneğini belirleyin ve Vulkan-Samples/build/android_gradle/build.gradle'i seçin. Android Studio projeyi yükledikten sonra aşağıdakine benzer bir şey görürsünüz:
    Örnek proje Studio'ya aktarılıyor.

    Şekil 1. Android Studio'daki örnek proje.

Derle

Bu depodaki tüm örnekler tek bir Android projesinde düzenlenmiştir. Projeyi derlemek için aşağıdakilerden birini yapın:

  • Kaynakları yalnızca derlemek için menüyü, Derleme > Proje Oluştur'u kullanın veya Ctrl-F9 kısayol tuşunu yazın.
  • Örnek APK'yı oluşturmak için Derleme > Paketleri/APK'ları oluştur > APK oluştur'u seçin.

Android Studio'nun Derleme penceresinde başarılı derleme mesajı gösterilir. Hatalar varsa bunları düzeltip yeniden derleyin.

Örnek proje Studio ile derleniyor.

Şekil 2. Başarılı bir örnek derleme.

Yürüt

Örnek projeyi çalıştırmadan önce Android Studio'nun bağlı Vulkan cihazınızı veya Android Emülatör'ü tanıdığından emin olun. Şuna benzer bir sonuç görürsünüz:

Test cihazı Studio'ya bağlanıyor.

Şekil 3. Test cihazını Android Studio'ya bağlayın.

Projeyi çalıştırmak için şunları yapın:

  1. Çalıştır > vulkan_sample menüsünü kullanın veya araç çubuğundaki çalıştırma düğmesini tıklayıp örneğin bağlı cihazınıza yüklenip başlatılmasını bekleyin.
  2. Bağlı Android cihazınızda gerekli erişim isteklerini yetkilendirin.
    • Tüm dosyaları yönetme erişimine izin ver'i etkinleştirin, ardından örnek ana başlangıç ekranına dönmek için ok Geri düğmesi'ne dokunun.
    • disk erişimine izin verin:
      izin veriliyor.

      Şekil 4. Disk erişimini etkinleştirin.

  3. Aşağıdakine benzer bir örnek ana menü ekranı görürsünüz:
    ana menü örneği.

    Şekil 5. Örnek ana menü.

  4. Örnek listeye göz atın ve çalıştırmak için birkaç örnek seçin. Vulkan geliştirmesini kullanmaya yeni başladıysanız "API" örnekleriyle başlayabilirsiniz. Örneğin, "Merhaba Üçgen"e dokunulduğunda aşağıdakine benzer bir üçgen görüntülenmelidir:
    Üçgen

    Şekil 6. Merhaba Triange örneği.

Geliştirme sisteminiz artık test cihazınızda örnekleri çalıştıracak şekilde ayarlanmıştır.

Vulkan Örnekleri, masaüstü ve mobil cihazlar da dahil olmak üzere birden fazla işletim sistemi için geliştirilmiştir. Performans, Uzantılar ve Araçlar altındaki bazı örnekler kararsız çalışabilir ve cihazınızda kilitlenebilir. Bunun pek çok nedeni olabilir. Örneğin:

  • Belirli Vulkan özellikleri Android için tasarlanmamıştır.
  • Android OS sürümünüz desteklenmiyor.
  • Donanım platformunuzun GPU kapasitesi.

Keşfedin

Vulkan örneğinin Java bölümü, NativeActivity sınıfından türetiliyor. Uygulama oluşturma, başlatma, durdurma ve kaldırma gibi tipik uygulama yaşam döngüsü etkinliklerini C/C++ koduna aktarır. Örneğin C/C++ bölümünde, çalışma zamanı alt örnek geçiş işlevini uygulayan örnek bir çerçeve vardır. Çok yüksek bir düzeyde, Android sistem etkinlikleri/mesajları örnek uygulamanın Vulkan koduna ulaşmak için aşağıdaki yoldan geçer:

  • NativeSampleActivity Java bölümü
  • NativeSampleActivity C/C++ bölümü
  • android_native_glue kod
  • android_main
  • Örnek çerçeve
  • Bağımsız alt örnek kodu

android_main, NativeSampleActivity ile uygulama kodu arasındaki köprüdür. Bu, örnek kodu izlemeniz için başlangıç noktası olabilir. Yalnızca Vulkan'a özgü kaynaklara odaklanmak istiyorsanız aşağıdaki kodu içeren Vulkan_Samples\samples bölümünden kodu inceleyebilirsiniz:

  • "api" kategori örnekleri.
  • "Performans" kategorisi örnekleri.
  • "Uzantılar" kategorisi örnekleri.
  • "Araç" örnekleri.

Tüm gölgelendiriciler Vulkan_Samples\shaders cihazıdır.

Temel Vulkan kullanımı ve örnek çerçeve hakkında bilgi edinmek için "API" kategorisi örneklerine göz atmaya başlayabilirsiniz. Ardından, "Performans" ve "Uzantılar" kategorisi örneklerine geçebilirsiniz. Gölgelendirici kodu için Android Studio'daki Proje görünümünü kullanabilirsiniz.

Üçgen gölgelendirici.

Şekil 7. Studio ile gölgelendiriciyi keşfedin.

Ek kaynaklar

Vulkan API birkaç sürümden geçtiği için gittikçe gelişiyor. Vulkan standart komitesi ve Vulkan topluluğu, API'nin kullanımını ve en iyi uygulamalarını gösteren zengin bir Vulkan malzemesi seti hazırladı. Aşağıdaki listede Vulkan uygulaması geliştirmeyle ilgili bazı kaynaklar bulunmaktadır: