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

    • PortalCam P1

      • Productoverzicht
      • Basisbediening
      • De LCC Scan App gebruiken
      • Onderhoud en verzorging
      • Veelgestelde vragen
  • Lixel K-serie

    • Lixel K1

      • Productoverzicht
      • Basisbediening
      • Apparaat activeren en verbinden
      • Scanworkflow
      • Puntenwolkgegevens met absolute coördinaten verkrijgen
      • Kaartfusie
      • Suggesties voor routeplanning bij typische scènes
      • Voorzorgsmaatregelen
      • FAQ
    • Lixel K2

      • Productoverzicht
      • Basisbediening
      • Apparaat activeren en verbinden
      • Scanworkflow
      • Puntenwolkgegevens met absolute coördinaten verkrijgen
      • Kaartfusie
      • Suggesties voor routeplanning bij typische scènes
      • Voorzorgsmaatregelen
      • FAQ
  • Lixel L-serie

    • Lixel L2 Pro

      • Productoverzicht
      • Basisbediening
      • Apparaatactivering en -verbinding
      • Scanworkflow
      • Puntenwolkgegevens met absolute coördinaten opnemen
      • Meetpunt
      • Appendix
      • FAQ
    • Lixel L3

      • Productoverzicht
      • Basisfuncties van het apparaat
      • Apparaatactivering en -verbinding
      • Gegevensopname
      • Absolute coördinaten opnemen
      • Appendix
  • Accessoires

    • Stick Light

      • Installatiegids
      • Basisbediening
      • FAQ
  • Lixel Studio

    • Versie en copyright
    • Installatie en activering
    • Software-interface
    • Bestandsbewerkingen
    • Projectverwerking
    • Gereedschappen
    • 2D-tekenen
    • Toepassingen
    • Instellingen
    • Apparaatverbinding
  • 07-plugin-sdk

    • Unity

      • LCC Unity SDK Introductie
      • Technische functies
      • Vereisten voor de ontwikkelomgeving
      • Snelstartgids voor pc
      • Optimalisatiegids voor projectinstellingen
      • Ontwikkelgids voor Pico 4 Ultra
      • Pc-streaminggids voor Pico 4 Ultra
      • Ontwikkelgids voor Quest 3
      • Pc-streaminggids voor Quest 3
      • Ontwikkelgids voor OpenXR
      • Business Streaming-gids voor Pico 4 Ultra
      • Woordenlijst
      • Veelgestelde vragen
      • Contact opnemen
      • Ontwikkelingshandleiding voor functies

        • Ontwikkelgids voor gemengde rendering van meerdere scènes
        • Ontwikkelgids voor het ontvangen van schaduwen
        • Ontwikkelgids voor realtime belichting
        • Ontwikkelgids voor multi-camera rendering
        • Ontwikkelgids voor het renderen van afbeeldingen met hoge resolutie
        • Ontwikkelgids voor compatibiliteit van de gegevensformaten LCC en LCC2
        • Ontwikkelgids voor laadeffecten
        • Ontwikkelgids voor het schakelen tussen Mip-renderingmodi
        • Ontwikkelgids voor rand- en hoeksnapping
        • Ontwikkelgids voor geprojecteerde decal
        • Ontwikkelgids voor video-geprojecteerde decal
        • Ontwikkelgids voor markeren
        • Ontwikkelgids voor realtime knippen
        • Ontwikkelgids voor kleuraanpassing
        • Ontwikkelgids voor het ophalen van scène-Meshgegevens
        • Ontwikkelgids voor de Editor-modus
        • Configuratiegids voor renderprestatieparameters
        • Ontwikkelgids voor het samen verpakken van de applicatie en de gegevens
        • Ontwikkelgids voor het botsingssysteem
        • Gids voor macOS-ontwikkelingsmachtigingsproblemen
        • Ontwikkelgids voor compilatie en verpakking voor iOS-apparaten
      • API-referentie

        • LCCManager
        • Renderer
        • Gegevenstypen
      • Wijzigingslogboek

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

Ontwikkelgids voor gemengde rendering van meerdere scènes

Gemengde rendering van meerdere scènes betekent dat je meerdere LCC-scènes tegelijk aanmaakt en de rendering ervan in realtime mengt om correcte occlusie en blending te bereiken. Om elke LCC-scène die deelneemt aan de rendering onafhankelijk te kunnen beheren, moet je meerdere Renderers aanmaken en elke Renderer aan een onafhankelijk GameObject koppelen, zodat de Transform van elke LCC-scène onafhankelijk kan worden beheerd.

Stap 1: De scène en GameObjects aanmaken

Maak een gloednieuwe scène aan in Unity. Unity maakt standaard Main Camera en Directional Light aan.

LCCManager aanmaken

Klik met de rechtermuisknop op een leeg gebied in het Hiërarchie-venster, selecteer Create Empty in het pop-upmenu om een leeg GameObject aan te maken, geef het de naam LCCManager, normaliseer de Transform en voeg het LCCManager-script eraan toe via Component toevoegen.

Maak het LCCManager-GameObject aan en voeg het LCCManager-script toe

Maak het LCCManager-GameObject aan en voeg het LCCManager-script toe

LCCRenderer01 aanmaken

Klik met de rechtermuisknop op een leeg gebied in het Hiërarchie-venster, selecteer Create Empty om een leeg GameObject aan te maken, geef het de naam LCCRenderer01 en stel de Transform in op Rotation.x = -90 en Scale.x = -1.

Maak LCCRenderer01 aan en stel de Transform in

Maak LCCRenderer01 aan en stel de Transform in (Rotation.x = -90, Scale.x = -1)

LCCRenderer02 aanmaken

Maak op dezelfde manier nog een leeg GameObject aan, geef het de naam LCCRenderer02 en stel de Transform eveneens in op Rotation.x = -90 en Scale.x = -1.

Maak LCCRenderer02 aan en stel de Transform in

Maak LCCRenderer02 aan en stel de Transform in (Rotation.x = -90, Scale.x = -1)

Opmerking:

De Transform-instellingen van het LCCRenderer-GameObject (Rotation.x = -90, Scale.x = -1) lijnen het uit met het coördinatensysteem van de LCC-gegevens. Zie "Coördinatensysteem van LCC-gegevens" in LCC Unity SDK Introductie voor meer informatie over de uitlijning van het coördinatensysteem.

Stap 2: Het script voor rendering van meerdere scènes schrijven

Maak een nieuw C#-script aan met de naam MultiRenderer.cs met de volgende code:

using LCCCore;
using UnityEngine;

public class MultiRenderer : MonoBehaviour
{
    public LCCManager m_manager;
    public string m_FilePath01;
    public Transform m_transform01;

    public string m_FilePath02;
    public Transform m_transform02;

    private LCCCore.Renderer m_renderer01;
    private LCCCore.Renderer m_renderer02;

    private int m_currentFileIndex = 0;

    void Start()
    {
        m_manager.SetPlatformType(PlatformType.PC);
        // Schakel over naar de MultiRender-modus zodat meerdere Renderers tegelijk actief kunnen zijn en kunnen worden gemengd
        m_manager.SwitchRenderPass(ActiveRenderMode.MultiRender);

        Debug.Log("Gestart ");
        m_renderer01 = m_manager.GetRender(m_transform01);
        m_renderer02 = m_manager.GetRender(m_transform02);
        m_currentFileIndex = 0;
        m_renderer01.Load(m_FilePath01, onProgress, onComplete);
        m_currentFileIndex = 1;
        m_renderer02.Load(m_FilePath02, onProgress, onComplete);
    }

    private void onProgress(float _progress)
    {
        Debug.Log($"[LCCRenderer] bestand {m_currentFileIndex} laadvoortgang: {_progress:P1}");
    }

    private void onComplete()
    {
        Debug.Log($"[LCCRenderer] bestand {m_currentFileIndex} geladen");
    }
}

Stap 3: Het script toevoegen en eigenschappen configureren

  1. Voeg het MultiRenderer.cs-script toe aan het LCCManager-GameObject in het Hiërarchie-venster.
  2. Wijs in het Inspector-venster de verwijzingen en paden toe volgens de onderstaande tabel:
ScripteigenschapToewijzing
ManagerSleep het LCCManager-GameObject naar deze eigenschap
Transform01Sleep het LCCRenderer01-GameObject naar deze eigenschap
Transform02Sleep het LCCRenderer02-GameObject naar deze eigenschap
File Path01Pad van de eerste LCC-gegevensbron
File Path02Pad van de tweede LCC-gegevensbron
Configureer de verwijzingen en gegevenspaden van het MultiRenderer-script in de Inspector

Configureer de verwijzingen en gegevenspaden van het MultiRenderer-script in de Inspector

Stap 4: Uitvoeren

Klik op de knop Play in het Game-venster en je ziet de twee LCC-scènes gelijktijdig gerenderd en gemengd. Wijzig de Transform-waarden van het LCCRenderer01- of LCCRenderer02-GameObject en elke gerenderde scène wordt in realtime bijgewerkt.

Twee LCC-scènes die na het uitvoeren gelijktijdig worden gerenderd en gemengd

Twee LCC-scènes die na het uitvoeren gelijktijdig worden gerenderd en gemengd

Kernpunten

Er zijn twee kernpunten voor het ontwikkelen van gemengde rendering van meerdere LCC-scènes:

  1. Schakel over naar de MultiRender-modus: gebruik m_manager.SwitchRenderPass(ActiveRenderMode.MultiRender); zodat meerdere LCC-scènes kunnen worden gemengd. De standaard is de SingleRender-modus, waarin meerdere LCC-scènes niet kunnen worden gemengd.
  2. Koppel elke Renderer aan een onafhankelijk GameObject: gebruik GetRender(Transform) om elke Renderer aan een onafhankelijk GameObject te binden, zodat de Transform van elke LCC-scène onafhankelijk kan worden beheerd.