با Vulkan شروع کنید

این سند نحوه شروع کار با کتابخانه گرافیکی Vulkan را با دانلود، کامپایل و اجرای برنامه نمونه Khronos© شرح می دهد.

پیش نیازها

قبل از شروع، مطمئن شوید که سخت افزار و نسخه پلتفرم مناسب را آماده کرده اید. باید از دستگاه یا شبیه‌سازی‌ای استفاده کنید که از Vulkan پشتیبانی می‌کند، اندروید 7.0 (نوقا)، API سطح 24 یا بالاتر.

می‌توانید نسخه اندروید خود را با رفتن به منوی تنظیمات و انتخاب درباره تلفن > نسخه اندروید تأیید کنید. هنگامی که تأیید کردید که سخت افزار و نسخه پلتفرم مناسب را تنظیم کرده اید، می توانید نرم افزار لازم را دانلود کنید.

دانلود کنید

قبل از شروع، باید چندین ابزار و نرم افزارهای دیگر را دانلود کنید. توجه داشته باشید که در هاست ویندوز، توصیه می شود از سلسله مراتب مسیر فایل عمیق برای ابزارها و کد منبع اجتناب کنید. این برای حل محدودیت های مسیر فایل در برخی از نسخه های سیستم عامل ویندوز است.

  1. اگر از قبل اندروید استودیو ندارید، آن را دانلود کنید . این شامل جدیدترین SDK Android است.
  2. NDK و CMake را از داخل اندروید استودیو نصب کنید یا جداگانه دانلود و نصب کنید .
  3. نمونه Hello JNI را بسازید و اجرا کنید تا مطمئن شوید Android Studio به درستی کار می کند.
  4. python3 و سایر اجزای فهرست شده در build.md را برای پلتفرم میزبان خود نصب کنید.

واردات

در این بخش، مخزن نمونه Khronos© Vulkan© را دانلود می‌کنید، یک پروژه gradle اندروید ایجاد می‌کنید، سپس آن را با Android Studio IDE باز می‌کنید.

  1. متغیرهای محیطی زیر را تنظیم کنید:
    export ANDROID_HOME=/path/to/sdk-directory
    export ANDROID_NDK_HOME=$ANDROID_HOME/ndk/{your-ndk-version-dir}
    
  2. CMake را به $PATH اضافه کنید، که برای تولید اسکریپت های ساخت اندروید استفاده می شود:
    export PATH=$PATH:$ANDROID_HOME/cmake/{your-cmake-version}/bin
    
  3. یک ترمینال باز کنید و کد منبع را در دایرکتوری توسعه خود دانلود کنید:
    cd dev-directory
    git clone --recursive https://github.com/KhronosGroup/Vulkan-Samples.git
    
  4. برای تولید پروژه نمونه اندروید، این دستورالعمل ها (از Build.md ) را دنبال کنید:
    cd Vulkan-Samples
    ./scripts/generate.py android
    
  5. اندروید استودیو را باز کنید. File > Open را انتخاب کنید و Vulkan-Samples/build/android_gradle/build.gradle را انتخاب کنید. پس از بارگذاری پروژه اندروید استودیو، باید چیزی شبیه به زیر مشاهده کنید:
    وارد کردن نمونه پروژه به استودیو.

    شکل 1. نمونه پروژه داخل اندروید استودیو.

کامپایل

تمام نمونه های موجود در این مخزن در یک پروژه اندرویدی سازماندهی شده اند. برای کامپایل پروژه یکی از موارد زیر را انجام دهید:

  • برای کامپایل کردن منابع، از منو، Build > Make Project استفاده کنید یا کلید میانبر Ctrl-F9 را تایپ کنید.
  • برای تولید نمونه APK، منوی Build > Build Bundle(s)/APK(s) > Build APK(s) را انتخاب کنید.

باید پیام موفقیت آمیز ساخت را در پنجره ساخت اندروید استودیو مشاهده کنید. در صورت بروز خطا، آنها را برطرف کرده و دوباره کامپایل کنید.

کامپایل نمونه پروژه با استودیو.

شکل 2. یک نمونه ساخت موفق.

اجرا کنید

قبل از اجرای پروژه نمونه، مطمئن شوید که Android Studio دستگاه Vulkan یا شبیه ساز Android متصل شما را تشخیص می دهد. شما باید چیزی شبیه به زیر ببینید:

اتصال دستگاه تست به Studio.

شکل 3. دستگاه تست را به Android Studio متصل کنید.

برای اجرای پروژه موارد زیر را انجام دهید:

  1. از منوی Run > Run vulkan_sample استفاده کنید یا روی دکمه run کلیک کنید در نوار ابزار، منتظر بمانید تا نمونه روی دستگاه متصل شما نصب و راه اندازی شود.
  2. در دستگاه Android متصل خود، درخواست‌های دسترسی مورد نیاز را تأیید کنید.
    • Allow access to management all files را فعال کنید، سپس روی دکمه فلش برگشت ضربه بزنید تا نمونه صفحه شروع اصلی بازگردد.
    • اجازه دسترسی به دیسک:
      اجازه دسترسی به دیسک

      شکل 4. دسترسی به دیسک را فعال کنید.

  3. شما باید نمونه صفحه منوی اصلی را ببینید، شبیه به زیر:
    نمونه منوی اصلی

    شکل 5. نمونه منوی اصلی.

  4. فهرست نمونه را مرور کنید و چند مورد را برای اجرا انتخاب کنید. اگر در توسعه Vulkan تازه کار هستید، می توانید با نمونه های "API" شروع کنید. به عنوان مثال، با ضربه زدن روی "Hello Triangle" باید مثلثی شبیه به زیر نمایش داده شود:
    مثلث

    شکل 6. نمونه Hello Triange.

سیستم توسعه شما اکنون برای اجرای نمونه ها در دستگاه آزمایشی شما تنظیم شده است.

نمونه های Vulkan برای چندین سیستم عامل، از جمله سیستم عامل های دسکتاپ و موبایل، توسعه یافته اند. برخی از نمونه‌های تحت عملکرد ، برنامه‌های افزودنی و ابزار ممکن است ناپایدار باشند و در دستگاه شما خراب شوند. این ممکن است به دلایل مختلفی باشد، مانند:

  • ویژگی های خاص Vulkan برای اندروید طراحی نشده است.
  • نسخه سیستم عامل Android شما پشتیبانی نمی شود.
  • قابلیت GPU پلتفرم سخت افزاری شما.

کاوش کنید

بخش جاوا نمونه Vulkan از کلاس NativeActivity گرفته شده است. رویدادهای چرخه عمر برنامه معمولی مانند ایجاد برنامه، شروع، توقف و نابودی را به کد C/C++ منتقل می کند. در بخش C/C++ نمونه، یک چارچوب نمونه وجود دارد که عملکرد سوئیچینگ نمونه فرعی زمان اجرا را پیاده سازی می کند. در سطح بسیار بالایی، رویدادها/پیام‌های سیستم اندروید مسیر زیر را طی می‌کنند تا به کد Vulkan برنامه نمونه برسند:

  • بخش جاوا NativeSampleActivity
  • بخش NativeSampleActivity C/C++
  • کد android_native_glue
  • android_main
  • چارچوب نمونه
  • کد زیر نمونه فردی

android_main پل بین NativeSampleActivity و کد برنامه است که می تواند نقطه شروعی برای دنبال کردن کد نمونه باشد. اگر فقط می‌خواهید روی منابع خاص Vulkan تمرکز کنید، می‌توانید کد را در زیر Vulkan_Samples\samples کاوش کنید که حاوی موارد زیر است:

  • نمونه های دسته "api".
  • نمونه های دسته "عملکرد".
  • نمونه‌های دسته «افزونه‌ها».
  • نمونه های "ابزار".

Vulkan_Samples\shaders خانه همه شیدرها است.

برای آشنایی با استفاده از Vulkan و چارچوب نمونه، می‌توانید نمونه‌های دسته «API» را مرور کنید. سپس می‌توانید به نمونه‌های دسته «عملکرد» و «افزونه‌ها» بروید. برای کد سایه زن می توانید از نمای پروژه در اندروید استودیو استفاده کنید.

سایه زن مثلثی.

شکل 7. سایه زن را با Studio کاوش کنید.

منابع اضافی

Vulkan API چندین نسخه را پشت سر گذاشته است، بنابراین در حال بلوغ است. کمیته استاندارد Vulkan و جامعه Vulkan مجموعه ای غنی از مواد Vulkan ایجاد کرده اند که استفاده و بهترین شیوه های API را نشان می دهد. لیست زیر حاوی منابعی برای توسعه برنامه Vulkan است: