XGRIDSDocumentazione
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • Polski
  • Nederlands
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • Polski
  • Nederlands
  • Serie Lixel PortalCam

    • PortalCam P1

      • Panoramica del prodotto
      • Operazioni di base
      • Uso della LCC Scan App
      • Manutenzione e cura
      • FAQ
  • Serie Lixel K

    • Lixel K1

      • Panoramica del prodotto
      • Operazioni di base
      • Attivazione e connessione del dispositivo
      • Flusso di scansione
      • Ottenere una nuvola di punti con coordinate assolute
      • Fusione delle mappe
      • Consigli di pianificazione dei percorsi per scene tipiche
      • Precauzioni
      • FAQ
    • Lixel K2

      • Panoramica del prodotto
      • Operazioni di base
      • Attivazione e connessione
      • Flusso di scansione
      • Acquisire una nuvola di punti con coordinate assolute
      • Fusione mappe
      • Consigli di pianificazione dei percorsi per scene tipiche
      • Precauzioni
      • FAQ
  • Serie Lixel L

    • Lixel L2 Pro

      • Panoramica del prodotto
      • Operazioni di base
      • Attivazione e connessione del dispositivo
      • Flusso di scansione
      • Ottenere una nuvola di punti con coordinate assolute
      • Punto di misura
      • Appendice
      • FAQ
    • Lixel L3

      • Panoramica del prodotto
      • Operazioni di base
      • Attivazione e connessione del dispositivo
      • Acquisizione dei dati
      • Acquisizione di coordinate assolute
      • Appendice
  • Accessori

    • Stick Light

      • Guida all'installazione
      • Operazioni di base
      • Domande frequenti
  • Lixel Studio

    • Versione e copyright
    • Installazione e attivazione
    • Interfaccia del software
    • Operazioni sui file
    • Elaborazione del progetto
    • Strumenti
    • Disegno 2D
    • Applicazioni di settore
    • Impostazioni
    • Connessione del dispositivo
    • Domande Frequenti
  • Lixel CyberColor

    • LCC Studio

      • Introduzione
      • Versione e aggiornamenti
      • Download e installazione
      • Panoramica dell'interfaccia e navigazione
      • Operazioni preliminari alla ricostruzione
      • Prima della ricostruzione
      • Ricostruzione del modello
      • Ricostruzione modello singolo
      • Fusione delle mappe
      • Fusione aria-terra
      • Ricostruzione aerea
      • I miei modelli
      • Altre funzioni
      • Impostazioni e account
      • Convertitore
      • Ricostruzione video
      • Domande Frequenti / FAQ
    • LCC Scene Editor

      • Versione e aggiornamenti
      • Account e accesso
      • Panoramica del prodotto e home page
      • Interfaccia dell'editor
      • Modalità di navigazione
      • File
      • Impostazioni
      • Modifica
      • Finestra
      • Barra degli strumenti globale
      • Asset e proprietà
      • Barra degli strumenti sinistra
      • Punti di vista
      • Portale
      • Skybox
      • Annotazioni
      • Misurazione
      • Flythrough
      • Rapporto scena
      • 3D Layout
      • Mini-mappa
      • Modalità Anteprima (Viewer)
      • Aiuto
      • Domande frequenti (FAQ)
      • Punto di spawn
    • LCC Model Editor

      • Versione e aggiornamenti
      • Guida utente
      • Panoramica e interfaccia
      • Operazioni sui file
      • Selettori
      • Modifica dei modelli
      • Misurazione
      • Correzione colore
      • Gestione degli asset
      • Impostazioni e Aiuto
      • Domande frequenti
    • Capture Guide

      • Panoramica
      • Panoramica dei dispositivi di acquisizione
      • Principi generali di acquisizione
      • Acquisizione di scene interne
      • Acquisizione di scene esterne
      • Acquisizione su larga scala (map fusion)
      • Acquisizione per aerial-ground map fusion
      • Acquisizione di oggetti
      • Acquisizione di persone
      • Acquisizione per ricostruzione da video
      • HD Enhancement
      • Control points (Lixel P1)
      • FAQ e risoluzione dei problemi
    • Buone Pratiche

      • Unione di più modelli 3DGS di grandi dimensioni
    • Cronologia versioni
  • Plugin e SDK

    • Unreal

      • Introduzione
      • Avvio rapido - Windows
      • Avvio rapido - Linux
      • Avvio rapido - Quest3
      • Edizioni e licenze
      • Rendering
      • Rasterizzazione Tiled (sperimentale)
      • Impostazioni visive
      • Normali e illuminazione
      • Modifica della scena
      • Parametri di prestazione
      • Guida alle prestazioni
      • Integrazione con plugin di terze parti e del motore
      • Proxy Mesh
      • Animazione di caricamento
      • Collisioni
      • Supporto del Navigation System
      • Supporto di Single Layer Water
      • Localizzazione
      • FAQ
      • Risoluzione dei problemi
      • Log e diagnostica
      • Contattaci
      • Buone pratiche

        • Rilluminare il 3DGS con una mesh di LixelStudio
      • Riferimento API

        • ALCCActorBase
        • ULCCComponentBase
        • ULCCComponent
        • ULCC2Component
        • Actor SOG / SPZ / PLY
        • ALCC2ProxyMesh
        • ALCCClippingVolume
        • ALCCSectionPlane
        • ALCCLoadVolume
        • ULCCUtilLibrary
        • Enum
        • Struct
      • Registro delle modifiche

        • v3.4.0
        • v3.3.1
        • v3.0.0
        • v2.2.1
        • v1.0.0
        • v0.9.0
        • v0.8.0
        • v0.7.1
        • v0.6.1
        • v0.5.2
        • v0.4.1
        • v0.4.0
        • v0.3.0
        • v0.0.5
        • v0.0.4
        • v0.0.3
        • v0.0.2
        • v0.0.1
    • Unity

      • Introduzione all'Unity SDK
      • Caratteristiche tecniche
      • Requisiti dell'ambiente di sviluppo
      • Guida rapida per PC
      • Guida all'ottimizzazione delle impostazioni di progetto
      • Guida allo sviluppo per Pico 4 Ultra
      • Guida allo streaming PC per Pico 4 Ultra
      • Guida allo sviluppo per Quest 3
      • Guida allo streaming PC per Quest 3
      • Guida allo sviluppo OpenXR
      • Guida allo streaming Business per Pico 4 Ultra
      • Glossario
      • FAQ
      • Contattaci
      • Guida allo sviluppo delle funzionalità

        • Guida allo sviluppo del rendering misto multi-scena
        • Guida allo sviluppo della ricezione delle ombre
        • Guida allo sviluppo dell'illuminazione in tempo reale
        • Guida allo sviluppo del rendering multi-camera
        • Guida allo sviluppo del rendering di immagini ad alta risoluzione
        • Guida allo sviluppo della compatibilità dei formati dati LCC e LCC2
        • Guida allo sviluppo dell'effetto di caricamento
        • Guida allo sviluppo del cambio di modalità di rendering Mip
        • Guida allo sviluppo dello snap a bordi e angoli
        • Guida allo sviluppo della decal proiettata
        • Guida allo sviluppo della decal proiettata video
        • Guida allo sviluppo dell'evidenziazione
        • Guida allo sviluppo del ritaglio in tempo reale
        • Guida allo sviluppo della regolazione del tono
        • Guida allo sviluppo dell'ottenimento dei dati Mesh della scena
        • Guida allo sviluppo della modalità Editor
        • Guida alla configurazione dei parametri di prestazioni di rendering
        • Guida allo sviluppo del co-impacchettamento di applicazione e dati
        • Guida allo sviluppo del sistema di collisione
        • Guida ai problemi di autorizzazione nello sviluppo su macOS
        • Guida allo sviluppo di compilazione e packaging per dispositivi iOS
      • Riferimento API

        • LCCManager
        • Renderer
        • Tipi di dati
      • Registro delle modifiche

        • v2.3.0
        • v2.2.10
        • v2.2.0
        • v2.1.19
        • v2.0.14
    • Web

      • Introduzione
      • Guida all'ottimizzazione delle prestazioni di rendering
      • Configurazione grafica
      • Domande frequenti
      • Riferimento API

        • LCCRender::clearIndexDB
        • LCCRender::dispose
        • LCCRender::load
        • LCCRender::setCamera
        • LCCRender::unload
        • LCCRender::update
        • LCCObject::checkRenderNextFrame
        • LCCObject::clearRenderNextFrame
        • LCCObject::ecef2Prj
        • LCCObject::getBounds
        • LCCObject::getEnvInstancedMesh
        • LCCObject::getInstancedMesh
        • LCCObject::getLodInfos
        • LCCObject::getOriginPosition
        • LCCObject::getProjectionCoordinateSystemInfos
        • LCCObject::hasCollision
        • LCCObject::hasEnvironment
        • LCCObject::hasShcoef
        • LCCObject::intersectsCapsule
        • LCCObject::intersectsRayExt
        • LCCObject::intersectsRayFromOriginExt
        • LCCObject::intersectsSphere
        • LCCObject::lowerToBottom
        • LCCObject::prj2Ecef
        • LCCObject::raiseToTop
        • LCCObject::raycast
        • LCCObject::raycastFromOrigin
        • LCCObject::setAlpha
        • LCCObject::setClipBox
        • LCCObject::setClipPlane
        • LCCObject::setEndLod
        • LCCObject::setLodAutoLevelUp
        • LCCObject::setMaxDistance
        • LCCObject::setMaxNodeSplats
        • LCCObject::setMaxSplats
        • LCCObject::setOriginPosition
        • LCCObject::setPointsColor
        • LCCObject::setRenderState
        • LCCObject::setRotation
        • LCCObject::setScale
        • LCCObject::setSemantic
        • LCCObject::setSemanticColor
        • LCCObject::setSmooth
        • LCCObject::setStartLod
        • LCCObject::setTranslation
        • LCCObject::setVisible
        • LCCObject::togglePointsDisplayMode
        • LCCObject::useEnvironment
        • LCCObject::useShcoef
      • Registro delle modifiche

        • v0.6.3
        • v0.6.2
        • v0.6.1
        • v0.6.0
        • v0.5.5
        • v0.5.4
        • v0.5.3
        • v0.5.2
        • v0.5.1
        • v0.5.0
        • v0.4.1
        • v0.4.0
        • v0.3.1
        • v0.3.0
        • v0.2.0

Guida allo sviluppo della modalità Editor

L'LCC Unity SDK supporta il rendering delle scene nell'Editor, il che significa che il modello LCC può essere traslato, ruotato e scalato in modalità modifica come qualsiasi altro GameObject in Unity. Puoi visualizzare e regolare la scena 3DGS nella finestra Scene in tempo reale senza fare clic sul pulsante Play per entrare in modalità Play.

Quando usi la scena Samples, puoi completare il rendering della scena tramite operazioni senza codice; quando usi script personalizzati, puoi ottenere lo stesso effetto tramite operazioni tramite codice.

Nota:

L'LCC Unity SDK supporta sia la modalità di rendering completo sia quella a blocchi. In modalità di rendering completo, la vista Scene può renderizzare completamente l'intero modello; in modalità di rendering a blocchi, poiché le posizioni e gli orientamenti della Scene Camera e della Game Camera non sono coerenti, il modello potrebbe non essere visualizzato completamente nella finestra Scene. In questo caso, devi sincronizzare la Scene Camera e la Game Camera.

Operazioni senza codice

Quando usi la scena Samples dell'SDK, se il percorso del file dati (File Path) è compilato correttamente, Unity renderizzerà automaticamente la scena nell'Editor dopo l'avvio, come mostrato di seguito.

Renderizza automaticamente la scena nell'Editor

Dopo aver compilato correttamente File Path, Unity renderizza automaticamente la scena nell'Editor all'avvio

Cambia scena

Quando devi modificare la scena renderizzata, segui questi passaggi:

  1. Seleziona il GameObject LCCRenderer nella finestra Gerarchia.
  2. Compila correttamente il percorso dati della nuova scena in File Path nella finestra Inspector.
  3. Fai clic sui tre puntini (⋮) a destra del componente LCCRenderer (Script) e scegli Render dal menu a comparsa, come mostrato di seguito.
Fai clic su Render nel menu del componente LCCRenderer per renderizzare una nuova scena

Fai clic su Render nel menu a tre puntini a destra del componente LCCRenderer (Script)

Nota:

Poiché lo scaricamento dei dati della scena originale e il caricamento dei nuovi dati della scena richiedono del tempo, attendi un momento dopo aver fatto clic su Render; la nuova scena terminerà il caricamento.

Arresta il rendering della scena

Quando non hai più bisogno di renderizzare la scena nell'Editor, segui questi passaggi per arrestare il rendering:

  1. Seleziona il GameObject LCCRenderer nella finestra Gerarchia.
  2. Compila correttamente il percorso dati in File Path nella finestra Inspector.
  3. Fai clic sui tre puntini (⋮) a destra del componente LCCRenderer (Script) e scegli unRender dal menu a comparsa, come mostrato di seguito. Questo arresta il rendering della scena corrente.
Fai clic su unRender nel menu del componente LCCRenderer per arrestare il rendering

Fai clic su unRender nel menu a tre puntini a destra del componente LCCRenderer (Script)

Entra in modalità Play

Quando fai clic sul pulsante Play in Unity per entrare nella normale modalità Play, la scena verrà renderizzata di nuovo nello stato di runtime. Poiché l'SDK usa internamente un meccanismo di multithreading, l'ingresso in modalità Play forza l'uscita dal thread di rendering in modalità modifica, che viene mostrata come un messaggio di errore stampato nella Console.

Puoi ignorare completamente questo errore; non ha effetti negativi e non influisce sul normale funzionamento successivo.

Se davvero non vuoi vedere questo errore, puoi eseguire il passaggio Arresta il rendering della scena (unRender) sopra prima di fare clic sul pulsante Play, poi fai clic sul pulsante Play per entrare nello stato di runtime.

Operazioni tramite codice

Se usi uno script personalizzato per renderizzare la scena, aggiungi semplicemente l'attributo [ExecuteInEditMode] prima della tua classe di rendering personalizzata per far sì che lo script venga eseguito nell'Editor, renderizzando così la scena in modalità modifica. Per le altre logiche operative, consulta lo script LCCRenderer.cs in Samples.

using LCCCore;
using UnityEngine;

[ExecuteInEditMode]
public class MyLCCRenderer : MonoBehaviour
{
    public LCCManager m_manager;
    public string m_FilePath;
    private LCCCore.Renderer m_renderer;

    void Start()
    {
        m_manager.SetPlatformType(PlatformType.PC);
        m_manager.SwitchRenderPass(ActiveRenderMode.SingleRender);
        // Abilita la modalità editor
        m_manager.SetEditorMode(true);

        m_renderer = m_manager.GetRender(this.transform);
        m_renderer.Load(m_FilePath, onProgress, onComplete);
    }

    private void onProgress(float _progress)
    {
        Debug.Log($"[MyLCCRenderer] avanzamento caricamento file: {_progress:P1}");
    }

    private void onComplete()
    {
        Debug.Log($"[MyLCCRenderer] file caricato");
    }
}

Nota:

  • L'attributo [ExecuteInEditMode] fa sì che i metodi del ciclo di vita come Start e Update vengano chiamati nell'Editor anche al di fuori della modalità Play; questa è la chiave del rendering in modalità Editor.
  • La modalità editor è supportata solo sulle piattaforme PC/Mac.
  • Per il flusso di lavoro di rendering completo (configurazione della piattaforma, modalità di rendering, caricamento dei dati), consulta lo script LCCRenderer.cs in Samples.

Sincronizza le camere tra le finestre Scene e Game

I Samples forniti dall'SDK includono lo script SceneGameCameraSync, che sincronizza le operazioni della camera della finestra Scene con la finestra Game, consentendoti di operare sulla vista nell'Editor mentre visualizzi l'anteprima dell'immagine di runtime. Passaggi di utilizzo:

  1. Associa lo script SceneGameCameraSync dei Samples al GameObject della camera (Camera) nella scena.
  2. Disabilita lo script di operazione della camera (per impostazione predefinita CameraOperate).
  3. Fai clic sul pulsante Play per entrare in modalità Play.

A questo punto, operare sulla camera nella finestra Scene sincronizzerà di conseguenza la camera nella finestra Game.

Associa lo script SceneGameCameraSync all'oggetto camera

Associa lo script SceneGameCameraSync all'oggetto camera e disabilita lo script CameraOperate

Nota:

La sincronizzazione della camera supporta solo la sincronizzazione della camera dalla finestra Scene alla finestra Game; non supporta la sincronizzazione delle operazioni della camera dalla finestra Game alla finestra Scene.