Wenn Config.TextureUpdateMode
auf TextureUpdateMode.EXPOSE_HARDWARE_BUFFER
gesetzt ist, stellt ARCore beim Aufruf von Session.update()
einen Android-Hardware-Zwischenspeicher bereit. Dieser Hardwarepuffer kann an ein Vulkan-VkImage
gebunden werden.
Beispielanwendung ansehen
Die Vulkan-Rendering-Unterstützung wird in der Beispiel-App „hello_ar_vulkan_c“ veranschaulicht.
Ausgabemodus für Hardwarepuffer aktivieren
Die konfigurierte Config.TextureUpdateMode
bestimmt, wie die Kameratextur von ARCore aktualisiert wird. Wenn sie auf TextureUpdateMode.EXPOSE_HARDWARE_BUFFER
festgelegt ist, stellt ARCore das Kamerabild über eine HardwareBuffer
bereit.
Konfigurieren Sie die Sitzung für die Verwendung von 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 } )
Hardwarepuffer abrufen
Wenn TextureUpdateMode.EXPOSE_HARDWARE_BUFFER
aktiviert ist, verwende Frame.getHardwareBuffer()
, um den Hardware-Puffer abzurufen:
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. }
Hardware-Zwischenspeicher beim Vulkan-Rendering verwenden
Unter vulkan_handler.cc
finden Sie ein Beispiel für das Rendern einer AR-Anwendung mit Vulkan.
Unterstützte Geräte
Vulkan-Rendering ist nur für Android API-Level 27 und
oben. Außerdem muss das Gerät die Erweiterung VK_ANDROID_external_memory_android_hardware_buffer
unterstützen.
Vulkan im Manifest Ihrer App verlangen
Google Play verwendet die in deinem App-Manifest deklarierten <uses-feature>
, um deine Inhalte zu filtern
App von Geräten herunterladen, die die Anforderungen an Hardware- und Softwarefunktionen nicht erfüllen.
Geräte mit Vulkan 1.0 unterstützen die erforderliche Erweiterung möglicherweise nicht. Geräte, die mit Vulkan 1.1 kompatibel sind, müssen die erforderliche Erweiterung ab Android 10 (API-Level 29) haben.