支持 vulkan android,Vulkan 使用入门

本文档将通过下载、编译和运行几个示例应用的方式,介绍如何开始使用 Vulkan 图形库。

首先,请确保您已准备好合适的硬件和平台版本。您应使用支持 Vulkan 且搭载 Android API 级别 24 或更高级别的设备。

如需确认您的 Android 版本,请转到设置菜单,然后依次选择关于 > Android 版本。确认您已设置合适的硬件和平台版本后,您便可以下载所需的软件。

下载

首先,您必须下载多个工具和其他软件。请注意,在 Windows 主机上,建议您不要为工具和源代码使用深层文件路径层次结构;这样做是为了绕开部分 Windows 操作系统版本对文件路径的限制。

如果您还没有 Android Studio,请下载。这将包含最新的 Android SDK。

从 Android Studio 中安装 NDK 或手动下载 NDK。

导入

在本部分中,您需要下载 LunarG Vulkan© 代码库,为 API 示例生成 Android Studio 项目,然后将这些项目导入 IDE:

打开终端并将源代码下载到您的开发目录:

cd dev-directory

git clone --recursive https://github.com/LunarG/VulkanSamples.git

按照以下说明(选自在 Android 上构建)生成适用于 Android 的示例项目:

cd VulkanSamples/API-Samples

cmake -DANDROID=ON -DABI_NAME=abi

cd android

python3 compile_shaders.py

支持的 ABI 包括以下内容:

armeabi-v7a

arm64-v8a

x86

x86_64

设置环境变量以指定 Android NDK 和 SDK 的路径:

export ANDROID_SDK_ROOT=/path/to/sdk-directory

export ANDROID_NDK_HOME=/path/to/ndk-directory

示例的当前 targetSdk 版本为 26,因此您可能需要使用 SDK 管理器更新工具。

注意:ANDROID_NDK_ROOT 变量现已弃用,并将在未来的 Android Studio 版本中移除。Android Studio 现在会在同一个位置安装所有版本的 NDK;如需了解详情,请参阅安装 NDK 和 CMake。

打开 Android Studio。依次选择 File > Open,然后再选择 VulkanSamples/API-Samples/android/build.gradle。

“Project”窗格会显示如图 1 所示的窗口。

7f2b8eb5c7ae18c0444a1a0992894a44.png

图 1. 导入示例后,用于显示所导入示例的 Project 窗格。

编译

Android Studio

依次选择 File > Project Structure。选择 SDK Location 并确保已设置 SDK 和 NDK 位置。

在 Android Studio 的“Project”面板中选择您的项目。

从 Build菜单中,选择 Make Module ;或选择 Build APK,以生成 APK。

解决所有依赖关系问题,然后编译。如图 2 所示,您可以选择要编译的各个项目,方法是从配置下拉菜单中选择相应的项目。

16b12b6580508127b65b45b2405696ce.png

图 2. 选择要编译的单个项目。

命令行

使用以下命令从命令行构建项目(确保您仍位于 VulkanSamples/API-Samples/android 目录中):

./gradlew build

执行

要运行您的项目,请依次选择 Run > Run 来选择要运行的 APK。

若要调试 APK,请依次选择 Run > Debug 。例如,对于 drawcube,请运行 15-draw_cube。

大多数示例都具有简单的功能来示范如何使用一个特定的 API,并且大多数都会在运行后自动停止。drawcube 示例是看上去非常有趣的示例之一,它在运行时应该会显示图 3 中的图像.

72fae5b9cd90af2f8ab24826a7559f57.png

图 3. 成功编译的程序运行并生成一个显示画面。

使用动态加载程序

这些示例会使用在 vulkan_wrapper.h/cpp 中定义的动态加载程序帮助程序函数来检索使用 dlopen() 和 dlsym() 的 Vulkan API 指针,而不是将指针与 vulkan.so 静态地相链接。

使用此加载程序可让代码链接到 API 级别 23 及更早版本的平台。这些更早版本不包含 vulkan.so 共享库,但可在支持 Vulkan API 的设备上运行。

下面的代码段显示了如何使用动态加载程序。

#include "vulkan_wrapper.h" // Include Vulkan_wrapper and dynamically load symbols.

...

// Before any Vulkan API usage,

InitVulkan();

其他资源

Vulkan 规范

Khronos Group 遵循 Vulkan 规范。请访问 Vulkan 首页,查看完整规范、培训和教程。

Shaderc

NDK 中的 Shaderc 代码是 Shaderc 代码库的下游代码。如果您需要最新的 Shaderc,请参阅着色器编译器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值