{ } { }

Jetpack SceneCore

Crea e manipola il grafo della scena di Android XR con contenuti 3D.
Ultimo aggiornamento Release stabile Candidato per la release Versione beta Versione alpha
12 dicembre 2024 - - - 1.0.0-alpha01

Dichiarazione delle dipendenze

Per aggiungere una dipendenza da XR SceneCore, devi aggiungere il repository Maven di Google al tuo progetto. Per ulteriori informazioni, consulta il repository Maven di Google.

Aggiungi le dipendenze per gli elementi necessari nel file build.gradle per la tua app o il tuo modulo:

Groovy

dependencies {
    implementation "androidx.xr.scenecore:scenecore:1.0.0-alpha01"
    // Required for Java
    implementation "com.google.guava:listenableFuture:1.0"
    // Required for Kotlin
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-guava:1.9.0"

    // Use to write unit tests
    testImplementation "androidx.xr.scenecore:scenecore-testing:1.0.0-alpha01"
}

Kotlin

dependencies {
    implementation("androidx.xr.scenecore:scenecore:1.0.0-alpha01")
    // Required for Java
    implementation("com.google.guava:listenableFuture:1.0")
    // Required for Kotlin
    implementation("org.jetbrains.kotlinx:kotlinx-coroutines-guava:1.9.0")

    // Use to write unit tests
    testImplementation("androidx.xr.scenecore:scenecore-testing:1.0.0-alpha01")
}

Per ulteriori informazioni sulle dipendenze, consulta Aggiungere dipendenze di compilazione.

Feedback

Il tuo feedback ci aiuta a migliorare Jetpack. Facci sapere se riscontri nuovi problemi o hai idee per migliorare questa raccolta. Prima di crearne uno nuovo, dai un'occhiata ai problemi esistenti in questa raccolta. Puoi aggiungere il tuo voto a un problema esistente facendo clic sul pulsante a forma di stella.

Creare un nuovo problema

Per ulteriori informazioni, consulta la documentazione del Monitoraggio problemi.

Versione 1.0

Versione 1.0.0-alpha01

12 dicembre 2024

androidx.xr.scenecore:scenecore-* 1.0.0-alpha01 viene rilasciato.

Funzionalità della release iniziale Release iniziale per sviluppatori di Jetpack SceneCore, una libreria di grafici di scene 3D per la creazione e la manipolazione di ambienti e scene immersive. Questa libreria ti consente di posizionare e disporre modelli 3D e riquadri di contenuti rispetto a un altro e ai tuoi ambienti virtuali o reali.

  • SpatialEnvironment: crea esperienze completamente immersive con un'immagine skybox e/o la geometria di un modello 3D come sfondo per la scena XR del tuo ambiente. In alternativa, attiva il passthrough in modo che la scena virtuale possa integrarsi con l'ambiente reale dell'utente.
  • PanelEntity: aggiungi contenuti 2D alle tue scene 3D incorporando layout e attività Android standard in pannelli spazializzati che possono galleggiare o essere ancorati a superfici reali.
  • GltfModelEntity: posiziona, anima e interagisci con i modelli 3D nella scena. SceneCore supporta il formato file glTF per facilitare l'integrazione con i modelli esistenti.
  • SpatialAudio: aggiungi sorgenti audio ambientali e puntuali alla scena 3D per un audio spazializzato e completamente immersivo.
  • StereoSurfaceEntity: SceneCore supporta il routing dell'occhio sinistro/destro dei contenuti visualizzati su una piattaforma Android. Questo può essere utilizzato per eseguire il rendering di contenuti stereoscopici in un formato affiancato o dall'alto verso il basso, ad esempio foto stereo, video 3D o altre UI con rendering dinamico. Le applicazioni devono utilizzare MediaPlayer o ExoPlayer per la decodifica video.
  • Sistema di componenti: SceneCore offre un sistema di componenti robusto e flessibile per aggiungere funzionalità ai contenuti XR, tra cui funzionalità che consentono agli utenti di spostare, ridimensionare e interagire con modelli e pannelli.
  • Ancora: con il passthrough abilitato, puoi attaccare pannelli e modelli a superfici reali, offrendo agli utenti un'integrazione perfetta dei contenuti virtuali nel loro ambiente reale.
  • Postura dell'utente: accedi alla posizione dell'utente nella scena virtuale per orientare i contenuti in base alla sua posizione.
  • SpatialCapabilities: crea app completamente adattabili che sfruttano le funzionalità spazializzate, se disponibili, come il posizionamento 3D dei contenuti dell'interfaccia utente. Non solo, ma la tua app può monitorare le modifiche alle funzionalità durante l'esecuzione per modificare l'esperienza in base al modo in cui l'utente utilizza il proprio dispositivo Android XR.

Problemi noti

  • Al momento è richiesta una versione minima dell'SDK pari a 30 per utilizzare Jetpack SceneCore. Come soluzione alternativa, aggiungi la seguente voce manifest <uses-sdk tools:overrideLibrary="androidx.xr.scenecore, androidx.xr.compose"/> per poter eseguire la compilazione e l'esecuzione con un minSDK di 23.
  • La sessione può diventare non valida in varie situazioni che ricreano automaticamente l'attività, ad esempio il ridimensionamento di un riquadro principale, il collegamento di periferiche e il passaggio dalla modalità Luce a quella Buio e viceversa. Se riscontri problemi di convalida della sessione, le soluzioni alternative includono l'impostazione del riquadro principale come non ridimensionabile, l'utilizzo di un'entità riquadro dinamico, la disattivazione della ricreazione delle attività per modifiche di configurazione specifiche o la disattivazione delle modifiche del tema della modalità chiara/scura.
  • I componenti Movable e Resizable non sono supportati in GltfEntity.
  • Entity.getSize() non è supportato su GltfEntity.
  • Le app Jetpack XR devono richiedere l'autorizzazione android.permission.SCENE_UNDERSTANDING in AndroidManifest.
  • La creazione di una sessione è supportata solo su un dispositivo Android XR. Al momento, se crei una sessione e provi a utilizzarla su un dispositivo XR non Android, viene generata un'eccezione RuntimeException.
  • L'impostazione di una skybox su null tramite "SpatialEnvironment.setSpatialEnvironmentPreference()" non genera una skybox completamente nera come descritto nella documentazione. Potrebbe essere visualizzato lo skybox predefinito del sistema o non essere apportata alcuna modifica allo skybox corrente.
  • I clienti SceneCore devono aggiungere implementation(“com.google.guava:listenablefuture-1.0”) alla configurazione di Gradle per le dipendenze della loro app. In una release futura, scenecore includerà questa libreria come dipendenza api, quindi i client non dovranno dichiararla esplicitamente.
  • SceneCore include erroneamente com.google.guava:guava-31.1-android e com.google.protobuf:protobuf-javalite come dipendenze transitive. Se ciò comporta errori di classe duplicati nella build, queste due dipendenze possono essere escluse in tutta sicurezza.
  • Se la tua app utilizza SceneCore e attiva ProGuard, avrà un arresto anomalo quando crei una sessione. Come soluzione alternativa, disattiva ProGuard. Per ulteriori informazioni su come attivare ProGuard, consulta questa guida.