Lorsque Config.TextureUpdateMode
est défini sur TextureUpdateMode.EXPOSE_HARDWARE_BUFFER
, ARCore fournit un tampon matériel Android lors de l'appel de Session.update()
. Ce tampon matériel peut être lié à un VkImage
Vulkan.
Afficher l'exemple d'application
La prise en charge du rendu Vulkan est illustrée dans l'application exemple hello_ar_vulkan_c.
Activer le mode de sortie du tampon matériel
Le Config.TextureUpdateMode
configuré détermine la manière dont ARCore modifie la texture de l'appareil photo. Lorsqu'il est défini sur TextureUpdateMode.EXPOSE_HARDWARE_BUFFER
, ARCore fournit l'image de l'appareil photo via un HardwareBuffer
.
Configurez la session pour utiliser 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 } )
Obtenir le tampon matériel
Lorsque TextureUpdateMode.EXPOSE_HARDWARE_BUFFER
est activé, utilisez Frame.getHardwareBuffer()
pour obtenir le tampon matériel:
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. }
Utiliser le tampon matériel pendant le rendu Vulkan
Consultez vulkan_handler.cc
pour obtenir un exemple d'affichage d'une application de RA à l'aide de Vulkan.
Appareils compatibles
La prise en charge du rendu Vulkan n'est disponible qu'aux niveaux d'API Android 27 et
ci-dessus. De plus, l'appareil doit être compatible avec l'extension VK_ANDROID_external_memory_android_hardware_buffer
.
Exiger Vulkan dans le fichier manifeste de votre application
Google Play utilise <uses-feature>
déclaré dans le fichier manifeste de votre application pour filtrer les
l'application à partir d'appareils qui ne répondent pas
à ses exigences matérielles et logicielles.
Les appareils utilisant Vulkan 1.0 ne sont peut-être pas compatibles avec l'extension requise, mais les appareils
compatible avec Vulkan 1.1 doit disposer de l'extension requise à partir d'Android 10 (niveau d'API 29).