برنامه واقعیت افزوده خود را با استفاده از Vulkan در Android SDK (Kotlin/Java) رندر کنید
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
هنگامی که Config.TextureUpdateMode
روی TextureUpdateMode.EXPOSE_HARDWARE_BUFFER
تنظیم می شود، ARCore با فراخوانی Session.update()
بافر سخت افزاری اندروید را ارائه می دهد. این بافر سخت افزاری را می توان به Vulkan VkImage
متصل کرد.
مشاهده نمونه برنامه
پشتیبانی از رندر Vulkan در برنامه نمونه hello_ar_vulkan_c نشان داده شده است.
حالت خروجی بافر سخت افزاری را فعال کنید
Config.TextureUpdateMode
پیکربندی شده تعیین می کند که ARCore چگونه بافت دوربین را به روز کند. وقتی روی TextureUpdateMode.EXPOSE_HARDWARE_BUFFER
تنظیم شود، ARCore تصویر دوربین را از طریق HardwareBuffer
ارائه میکند.
جلسه را برای استفاده از TextureUpdateMode.EXPOSE_HARDWARE_BUFFER
پیکربندی کنید.EXPOSE_HARDWARE_BUFFER:
جاوا
Config config = session.getConfig();
config.setTextureUpdateMode(Config.TextureUpdateMode.EXPOSE_HARDWARE_BUFFER);
session.configure(config);
کاتلین
session.configure(
session.config.apply { textureUpdateMode = Config.TextureUpdateMode.EXPOSE_HARDWARE_BUFFER }
)
بافر سخت افزاری را بدست آورید
وقتی TextureUpdateMode.EXPOSE_HARDWARE_BUFFER
فعال است، از Frame.getHardwareBuffer()
برای دریافت بافر سخت افزار استفاده کنید:
جاوا
try {
HardwareBuffer buffer = frame.getHardwareBuffer();
// Use the buffer object in your rendering.
} catch (NotYetAvailableException e) {
// The hardware buffer is not ready yet.
}
کاتلین
try {
val buffer = frame.hardwareBuffer
// Use the buffer object in your rendering.
} catch (e: NotYetAvailableException) {
// The hardware buffer is not ready yet.
}
در حین رندرینگ Vulkan از بافر سخت افزاری استفاده کنید
برای مثالی از نحوه ارائه یک برنامه AR با استفاده از Vulkan به vulkan_handler.cc
مراجعه کنید.
دستگاه های پشتیبانی شده
پشتیبانی از رندر Vulkan فقط در سطوح Android API 27 و بالاتر در دسترس است. علاوه بر این، دستگاه باید از افزونه VK_ANDROID_external_memory_android_hardware_buffer
پشتیبانی کند.
Vulkan را در مانیفست برنامه خود الزامی کنید
Google Play از <uses-feature>
اعلامشده در مانیفست برنامه شما استفاده میکند تا برنامه شما را از دستگاههایی که الزامات ویژگیهای سختافزاری و نرمافزاری آن را برآورده نمیکنند فیلتر کند. دستگاههایی که از Vulkan 1.0 استفاده میکنند ممکن است از برنامه افزودنی مورد نیاز پشتیبانی نکنند ، اما دستگاههای سازگار با Vulkan 1.1 باید برنامه افزودنی لازم را که از Android 10 شروع میشود (سطح API 29) داشته باشند.
جز در مواردی که غیر از این ذکر شده باشد،محتوای این صفحه تحت مجوز Creative Commons Attribution 4.0 License است. نمونه کدها نیز دارای مجوز Apache 2.0 License است. برای اطلاع از جزئیات، به خطمشیهای سایت Google Developers مراجعه کنید. جاوا علامت تجاری ثبتشده Oracle و/یا شرکتهای وابسته به آن است.
تاریخ آخرین بهروزرسانی 2025-07-24 بهوقت ساعت هماهنگ جهانی.
[null,null,["تاریخ آخرین بهروزرسانی 2025-07-24 بهوقت ساعت هماهنگ جهانی."],[[["\u003cp\u003eARCore can provide the camera image as an Android hardware buffer for efficient Vulkan rendering when \u003ccode\u003eTextureUpdateMode.EXPOSE_HARDWARE_BUFFER\u003c/code\u003e is enabled.\u003c/p\u003e\n"],["\u003cp\u003eThis hardware buffer can be accessed using \u003ccode\u003eFrame.getHardwareBuffer()\u003c/code\u003e and bound to a Vulkan \u003ccode\u003eVkImage\u003c/code\u003e for rendering.\u003c/p\u003e\n"],["\u003cp\u003eVulkan rendering with ARCore requires Android API level 27 or higher and device support for the \u003ccode\u003eVK_ANDROID_external_memory_android_hardware_buffer\u003c/code\u003e extension.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003ehello_ar_vulkan_c\u003c/code\u003e sample app demonstrates how to implement Vulkan rendering with ARCore.\u003c/p\u003e\n"],["\u003cp\u003eTo ensure your app is only available on compatible devices, declare the Vulkan feature requirement in your app's manifest.\u003c/p\u003e\n"]]],["To utilize hardware buffer output, set `Config.TextureUpdateMode` to `EXPOSE_HARDWARE_BUFFER` during session configuration. This enables ARCore to provide a hardware buffer via `Session.update()`. Retrieve this buffer using `Frame.getHardwareBuffer()`. It can then be bound to a Vulkan `VkImage`. Vulkan rendering is demonstrated in the `hello_ar_vulkan_c` sample app. Support requires Android API level 27+, with the `VK_ANDROID_external_memory_android_hardware_buffer` extension and ensure your manifest declares Vulkan usage.\n"],null,["# Render your AR app using Vulkan on Android SDK (Kotlin/Java)\n\nWhen the [`Config.TextureUpdateMode`](/ar/reference/java/com/google/ar/core/Config.TextureUpdateMode) is set to [`TextureUpdateMode.EXPOSE_HARDWARE_BUFFER`](/ar/reference/java/com/google/ar/core/Config.TextureUpdateMode#expose_hardware_buffer), ARCore will provide an Android [hardware buffer](https://developer.android.com/ndk/reference/group/a-hardware-buffer) when [`Session.update()`](/ar/reference/java/com/google/ar/core/Session#update-) is called. This hardware buffer can be bound to a Vulkan [`VkImage`](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImage.html).\n\nView the sample application\n---------------------------\n\nVulkan rendering support is demonstrated in the [hello_ar_vulkan_c sample app](https://github.com/google-ar/arcore-android-sdk/tree/master/samples/hello_ar_vulkan_c).\n\nEnable the hardware buffer output mode\n--------------------------------------\n\nThe configured [`Config.TextureUpdateMode`](/ar/reference/java/com/google/ar/core/Config.TextureUpdateMode) determines how ARCore will update the camera texture. When it is set to [`TextureUpdateMode.EXPOSE_HARDWARE_BUFFER`](/ar/reference/java/com/google/ar/core/Config.TextureUpdateMode#expose_hardware_buffer), ARCore will provide the camera image through a [`HardwareBuffer`](https://developer.android.com/reference/android/hardware/HardwareBuffer).\n\nConfigure the session to use [`TextureUpdateMode.EXPOSE_HARDWARE_BUFFER`](/ar/reference/java/com/google/ar/core/Config.TextureUpdateMode#expose_hardware_buffer): \n\n### Java\n\n```java\nConfig config = session.getConfig();\nconfig.setTextureUpdateMode(Config.TextureUpdateMode.EXPOSE_HARDWARE_BUFFER);\nsession.configure(config);\n```\n\n### Kotlin\n\n```kotlin\nsession.configure(\n session.config.apply { textureUpdateMode = Config.TextureUpdateMode.EXPOSE_HARDWARE_BUFFER }\n)\n```\n| **Note:** When using [`TextureUpdateMode.EXPOSE_HARDWARE_BUFFER`](/ar/reference/java/com/google/ar/core/Config.TextureUpdateMode#expose_hardware_buffer) on incompatible devices, [`Session.configure()`](/ar/reference/java/com/google/ar/core/Session#configure(com.google.ar.core.Config)) will fail and throw [`UnsupportedConfigurationException`](/ar/reference/java/com/google/ar/core/exceptions/UnsupportedConfigurationException).\n\nObtain the hardware buffer\n--------------------------\n\nWhen [`TextureUpdateMode.EXPOSE_HARDWARE_BUFFER`](/ar/reference/java/com/google/ar/core/Config.TextureUpdateMode#expose_hardware_buffer) is enabled, use [`Frame.getHardwareBuffer()`](/ar/reference/java/com/google/ar/core/Frame#getHardwareBuffer-) to get the hardware buffer: \n\n### Java\n\n```java\ntry {\n HardwareBuffer buffer = frame.getHardwareBuffer();\n // Use the buffer object in your rendering.\n} catch (NotYetAvailableException e) {\n // The hardware buffer is not ready yet.\n}\n```\n\n### Kotlin\n\n```kotlin\ntry {\n val buffer = frame.hardwareBuffer\n // Use the buffer object in your rendering.\n} catch (e: NotYetAvailableException) {\n // The hardware buffer is not ready yet.\n}\n```\n\nUse the hardware buffer during Vulkan rendering\n-----------------------------------------------\n\nSee [`vulkan_handler.cc`](https://github.com/google-ar/arcore-android-sdk/blob/master/samples/hello_ar_vulkan_c/app/src/main/cpp/vulkan_handler.cc) for an example of how to render an AR application using Vulkan.\n\nSupported devices\n-----------------\n\nVulkan rendering support is only available on Android API levels **27** and\nabove. Additionally, the device must support the `VK_ANDROID_external_memory_android_hardware_buffer` extension.\n\n### Require Vulkan in your app's manifest\n\nGoogle Play uses `\u003cuses-feature\u003e` declared in your app manifest to filter your\napp from devices that don't meet its hardware and software feature requirements.\nDevices using Vulkan 1.0 **might not** support the required extension, but devices\ncompatible with Vulkan 1.1 **must** have the required extension starting in Android 10 (API level 29)."]]