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

    • 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
  • 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
    • Impostazioni
    • Connessione del dispositivo
  • 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
    • 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
    • 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

Rasterizzazione Tiled: l'altro percorso di rasterizzazione di LCC2

La pipeline LCC2 offre due metodi di rasterizzazione, selezionati tramite la proprietà Rasterizer sull'Actor: il predefinito Pipeline usa la pipeline di rendering del motore stesso, mentre Tiled usa un percorso compute basato su tile implementato dal plugin.

Tiled è attualmente sperimentale e appartiene all'edizione Pro. Diventa effettivo solo dopo la registrazione di un App Key, vedere Edizioni e licenze.

Nella maggior parte delle scene dense aumenta sensibilmente la frequenza dei fotogrammi, ma il guadagno dipende dal contenuto dell'immagine e da dove si trovi il collo di bottiglia. In alcune scene il guadagno è ridotto, in altre non c'è alcuna variazione. Dopo averlo abilitato, confermare il risultato con una misurazione, come descritto in Valutare se è utile. Non dare per scontato che sia sempre più rapido.

Nota: «tile» indica qui i riquadri di pixel dello schermo, cosa differente dal «rendering a blocchi» descritto in Rendering, che carica i nodi in base alla visibilità dalla camera. Il primo decide come vengono disegnati i dati già presenti in memoria video, il secondo decide come i dati entrano in memoria video. Sono indipendenti e possono essere attivi contemporaneamente.

Differenze tra i due metodi di rasterizzazione

Pipeline (predefinito)Tiled
RasterizzazioneAffidata alla pipeline di rendering del motore; ogni splat viene espanso in un quad e il motore riempie i pixelDispatch compute personalizzato del plugin; gli splat visibili vengono prima distribuiti nei tile dello schermo, poi ombreggiati e composti tile per tile
OrdinamentoUn unico ordinamento globale su tutti gli splat visibiliOrdinamento segmentato per tile dello schermo; ogni segmento ordina solo gli splat che ricadono in quel tile
MaturitàIl percorso predefinito di lunga dataSperimentale
LicenzaDisponibile nell'edizione gratuitaEdizione Pro

Il guadagno arriva da due punti: l'ambito dell'ordinamento si restringe da globale a un singolo tile dello schermo, e i pixel vengono elaborati solo nei tile che li coprono effettivamente, cosa che riduce il riempimento sprecato nelle aree sovrapposte.

Il guadagno è quindi legato al contenuto dell'immagine: è evidente quando la densità degli splat è alta e la sovrapposizione su schermo è forte, e non si osserva alcuna variazione quando l'immagine è rarefatta oppure quando il collo di bottiglia della frequenza dei fotogrammi non sta, in partenza, nell'ordinamento e nel riempimento dei pixel.

Il risultato visivo è identico in entrambi i casi. Cambiare Rasterizer non richiede altre modifiche di parametri e non influisce sul caricamento dei dati, sul LOD, sui volumi di taglio, sull'illuminazione né sulle impostazioni del colore.

Come abilitarlo

Nella categoria XGrids del pannello Details dell'Actor, impostare Rasterizer su Tiled. La proprietà si trova subito dopo Render Mode e compare solo quando Render Mode è 3DGS.

Chiamare il setter da Blueprint o C++:

LCC2Component->SetRasterizer(ELCC2Rasterizer::Tiled);

Esistono due getter, con scopi differenti:

MetodoValore restituito
GetRasterizer()La scelta memorizzata nel pannello
GetEffectiveRasterizer()La rasterizzazione effettivamente in uso, con il controllo della licenza applicato

Usare GetEffectiveRasterizer() per confermare che il percorso di rendering passi davvero per Tiled.

Valutare se è utile

Poiché il guadagno non è garantito, misurare prima e dopo il cambio. Il metodo corrisponde a quello della Guida alle prestazioni:

  1. Fissare le condizioni di test: stessa vista o stesso percorso della camera, stessa risoluzione e stesso Screen Percentage, ogni altro parametro invariato.
  2. Eseguire prima un passaggio di riscaldamento per tenere fuori dai valori la prima compilazione degli shader e la prima lettura da disco.
  3. Registrare il tempo per fotogramma della GPU con Pipeline usando stat unit come riferimento.
  4. Modificare solo Rasterizer e misurare di nuovo la stessa vista.
  5. Ripetere su alcune viste rappresentative, in particolare sulle immagini con gli splat più densi e la sovrapposizione più forte.

Se il tempo per fotogramma della GPU non cala, il collo di bottiglia attuale è fuori dall'ambito coperto da questo percorso. Mantenere Pipeline e continuare a individuare il vero collo di bottiglia con la guida alle prestazioni.

Ambito

VoceNote
PipelineSolo la pipeline LCC2. ALCCActor (.lcc) non ha questa proprietà
Formati.lcc2 / .sog / .spz / .ply funzionano tutti
Modalità di renderingSolo la modalità 3DGS. La modalità nuvola di punti ignora la proprietà e usa sempre Pipeline
Motore e RHILo stesso ambito di supporto del plugin stesso; funzionano sia D3D12 sia Vulkan
Viste multipleRendering stereo VR, nDisplay, split screen e SceneCapture sono tutti supportati

Comportamento senza licenza

Impostare Rasterizer su Tiled senza un App Key registrato non provoca errori né fallimenti di caricamento. Il percorso di rendering ripiega automaticamente su Pipeline. La scelta memorizzata nel pannello non viene mai sovrascritta, quindi diventa effettiva appena la licenza è registrata, senza bisogno di impostarla di nuovo.

Per capire se Tiled sia davvero in uso, leggere il valore restituito da GetEffectiveRasterizer(): in caso di ripiego restituisce Pipeline, mentre GetRasterizer() restituisce ancora Tiled.

Nota: verificare che la licenza sia valida prima del packaging per la release, altrimenti l'output pacchettizzato segue il comportamento dell'edizione gratuita e usa Pipeline.

Quando mantenere Pipeline

  • È in uso la modalità di rendering a nuvola di punti. Lì la proprietà non ha effetto, quindi non c'è nulla da impostare.
  • Sono caricati dati .lcc. La pipeline LCC non ha questo percorso.
  • Progetti in edizione gratuita. Tiled ripiega comunque, quindi il valore predefinito è più chiaro.
  • La misurazione non mostra alcun miglioramento del tempo per fotogramma.
  • Il progetto è entrato nella validazione per la consegna, dove è meglio evitare un percorso sperimentale.

Tiled abbassa il costo della fase di rendering; non riduce il lavoro di caricamento e attraversamento. Quando il collo di bottiglia sta sul lato del caricamento dei dati, affrontare prima caricamento e LOD con la Guida alle prestazioni.

Precedente
Rendering
Successivo
Impostazioni visive