Table of Contents

Usare EasyAR Mega in Unity per implementare occlusion

Occlusion è una tecnologia chiave per migliorare l'immersione dell'integrazione tra contenuti virtuali e reali in AR. Questo articolo descrive come implementare effetti di occlusion in Unity tramite EasyAR Mega.

Prima di iniziare

Modalità di implementazione di occlusion

  • Modellazione offline: nel sistema di coordinate Block, creare geometry con corrispondenza 1:1 per entità del mondo reale, come pareti, colonne e grandi apparecchiature; oppure ottenere un modello ottimizzato tagliando e riducendo le face del dense model Block.

  • Allineamento runtime: a runtime, allineare il sistema di coordinate Block con lo spazio reale tramite cloud localization e caricare la geometry corrispondente.

  • Sostituzione materiale: assegnare materiali speciali di occlusion a queste geometry.

  • Effetto visivo: quando la GPU renderizza altri oggetti virtuali, i pixel delle parti occluse vengono automaticamente scartati perché non superano il depth test, facendo sì che gli oggetti virtuali seguano la logica di occlusion dello spazio fisico reale.

Usare i file maschera dai risultati di mapping

Seguire i passaggi seguenti per scaricare il file maschera dal risultato di mapping tramite Mask file download nel cloud localization database, usarlo come modello bianco per occlusion e importarlo nella scena. Il file può essere usato direttamente o ritagliato secondo necessità.

Nota

Questo metodo di download è applicabile solo ai risultati di mapping della versione 9.6 o successiva.

Scaricare il file maschera

Dopo aver aggiunto il Block al cloud localization database, fare clic su Mask file download nella colonna Action della riga del Block.

Voce di download file maschera

Nel popup, selezionare standard precision o low precision secondo necessità, quindi fare clic sul pulsante Download corrispondente per scaricare il file maschera in formato glb.

Scaricare file maschera

[Opzionale] Ritagliare il modello

Il file maschera copre l'intero Block. Se la copertura è già sufficiente per l'occlusion, usarlo direttamente. Se serve solo una parte dell'area, ritagliare il modello.

Aprire il modello scaricato in un software di creazione contenuti digitali, ad esempio Blender.

Prima del ritaglio

Ritagliare il modello, mantenere solo la parte necessaria per l'occlusion e salvarlo in formato glb. Mantenere invariati position, rotation e scale per allinearlo al Block dopo l'importazione in Unity.

Dopo il ritaglio

Importare il modello in Unity

Importare il modello in Unity e montarlo sotto il nodo Block corrispondente nella scena come nodo figlio.

Nota

Per importare un modello glb in Unity è richiesto il pacchetto com.unity.cloud.gltfast, versione 6.8 o successiva. Installarlo o aggiornarlo tramite Package Manager.

Nel pannello Inspector, modificare il Transform del modello di occlusion rispetto al nodo Block:

  • Impostare Position su (0, 0, 0).
  • Impostare Rotation su (0, 180, 0).
  • Impostare Scale su (1, 1, 1).

Al termine, il modello di occlusion dovrebbe combaciare con la parte corrispondente del dense model del Block.

Importare modello di occlusion

Nota

Il file maschera scaricato usa una definizione di coordinate diversa da Unity, quindi il componente Y di Rotation deve essere impostato a 180.

Assegnare un materiale occlusion al modello

Cambiare il materiale del modello in un materiale occlusion. È possibile usare SpatialMappingOcclusion integrato in Unity.

Cambiare materiale del modello occlusion

Simulare con dati EIF o eseguire su dispositivo reale

Usare la simulazione con dati EIF o un dispositivo reale per verificare se gli oggetti virtuali sono occlusi dalle aree reali corrispondenti.

Usare geometry come occlusion

Seguire i passaggi seguenti per aggiungere nella scena geometry usata come occlusion e verificare l'effetto.

Posizionare occlusion geometry

Secondo il dense model di Mega Block, usare built-in geometry o geometry personalizzata come occlusion e posizionarla nella posizione corretta nel sistema di coordinate Block. Place occlusion geometry

[Optional] Regolare finemente la posizione della geometry secondo il panorama

Fine-tune occlusion according to the panorama

Assegnare un materiale di occlusion alla geometry

Modificare il materiale della geometry in materiale di occlusion. È possibile usare SpatialMappingOcclusion integrato in Unity. Fine-tune occlusion according to the panorama

Simulare l'esecuzione con EIF data o eseguire su dispositivo reale

Regolare finemente il posizionamento del modello di occlusion in base all'effetto di esecuzione.

Usare un dense model tagliato e ridotto come occlusion

Seguire i passaggi seguenti per tagliare e ridurre il dense model Mega Block esportato, ottenere un modello bianco per occlusion e importarlo nella scena come occlusion.

Esportare in Mega Blocks

Fare clic sul pulsante Export a destra di Mesh per esportare il dense model.

Modificare le opzioni di export

Durante l'export, prestare attenzione a modificare le opzioni di export.

Nella figura, 1 è il LOD level. Più basso è il livello, più semplice è il modello e minore è il numero di face. Se è necessaria la massima precisione, selezionare il livello più alto.

Nella figura, 2 è l'opzione di export texture. Qui è necessario solo il modello bianco come occlusion, quindi non servono texture.

Tagliare e ridurre il modello

Tagliare e ridurre il modello esportato in un software di creazione contenuti digitali, ad esempio Blender, e salvarlo come glb.

Consiglio

Nell'esempio viene usato Decimate Modifier di Blender.

Before cropping

Dopo taglio e riduzione:

After cropping

Importare il modello di occlusion in Unity e montarlo sotto il nodo Block nella scena

Import occlusion model

Modificare Transform del modello

Modificare il Transform del modello in modo che Position e Rotation siano entrambi 0.

A questo punto, il modello bianco usato per occlusion dovrebbe aderire al dense model, perché durante taglio e riduzione nel software di creazione contenuti digitali non è stata modificata la definizione del sistema di coordinate Block.

Occlusion model fit

Assegnare un materiale di occlusion al modello

Modificare il materiale del modello in materiale di occlusion. È possibile usare SpatialMappingOcclusion integrato in Unity.

Replace occlusion model material

Simulare l'esecuzione con EIF data o eseguire su dispositivo reale

Usare EIF data per simulare l'esecuzione o eseguire su dispositivo reale per vedere l'effetto.

Aspettative sull'effetto di occlusion

L'effetto di occlusion è influenzato principalmente da:

  • Accuratezza del localization tracking stesso
  • Accuratezza del posizionamento del modello
  • Accuratezza del modello stesso, se non è una geometry semplice

Durante localization drift, una mancata corrispondenza di alcuni centimetri è normale.

Un modello di occlusion con troppe face può influire facilmente sulle prestazioni. Si consiglia di usarlo solo nelle aree necessarie e di usare il più possibile simple geometry come occlusion.

Argomenti correlati