Khi Config.TextureUpdateMode
được đặt thành TextureUpdateMode.EXPOSE_HARDWARE_BUFFER
, ARCore sẽ cung cấp vùng đệm phần cứng Android khi Session.update()
được gọi. Bạn có thể liên kết vùng đệm phần cứng này với VkImage
của Vulkan.
Xem ứng dụng mẫu
Tính năng hỗ trợ kết xuất Vulkan được minh hoạ trong ứng dụng mẫu hello_ar_vulkan_c.
Bật chế độ đầu ra vùng đệm phần cứng
Config.TextureUpdateMode
đã định cấu hình xác định cách ARCore sẽ cập nhật hoạ tiết máy ảnh. Khi được đặt thành TextureUpdateMode.EXPOSE_HARDWARE_BUFFER
, ARCore sẽ cung cấp hình ảnh máy ảnh thông qua HardwareBuffer
.
Định cấu hình phiên để sử dụng TextureUpdateMode.EXPOSE_HARDWARE_BUFFER
:
Java
Config config = session.getConfig(); config.setTextureUpdateMode(Config.TextureUpdateMode.EXPOSE_HARDWARE_BUFFER); session.configure(config);
Kotlin
session.configure( session.config.apply { textureUpdateMode = Config.TextureUpdateMode.EXPOSE_HARDWARE_BUFFER } )
Lấy vùng đệm phần cứng
Khi TextureUpdateMode.EXPOSE_HARDWARE_BUFFER
được bật, hãy sử dụng Frame.getHardwareBuffer()
để tải vùng đệm phần cứng:
Java
try { HardwareBuffer buffer = frame.getHardwareBuffer(); // Use the buffer object in your rendering. } catch (NotYetAvailableException e) { // The hardware buffer is not ready yet. }
Kotlin
try { val buffer = frame.hardwareBuffer // Use the buffer object in your rendering. } catch (e: NotYetAvailableException) { // The hardware buffer is not ready yet. }
Sử dụng vùng đệm phần cứng trong quá trình kết xuất Vulkan
Hãy xem vulkan_handler.cc
để biết ví dụ về cách kết xuất ứng dụng thực tế tăng cường bằng Vulkan.
Thiết bị được hỗ trợ
Tính năng hỗ trợ kết xuất Vulkan chỉ có trên API Android cấp 27 và
ở trên. Ngoài ra, thiết bị phải hỗ trợ tiện ích VK_ANDROID_external_memory_android_hardware_buffer
.
Yêu cầu Vulkan trong tệp kê khai của ứng dụng
Google Play sử dụng <uses-feature>
được khai báo trong tệp kê khai ứng dụng của bạn để lọc ứng dụng khỏi các thiết bị không đáp ứng yêu cầu về tính năng phần cứng và phần mềm của ứng dụng.
Các thiết bị sử dụng Vulkan 1.0 có thể không hỗ trợ tiện ích bắt buộc, nhưng các thiết bị tương thích với Vulkan 1.1 phải có tiện ích bắt buộc kể từ Android 10 (API cấp 29).