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 multi-camera rendering

De LCC Unity SDK ondersteunt gelijktijdig renderen met meerdere camera's in de volledige renderingmodus van één scène. Hieronder wordt aan de hand van een voorbeeld met één hoofdcamera plus twee secundaire camera's beschreven hoe je multi-camera rendering volledig implementeert.

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.

Main Camera instellen

Selecteer Main Camera in het Hiërarchie-venster en stel de eigenschappen in het Inspector-venster in zoals hieronder wordt weergegeven.

Stel de eigenschappen van Main Camera in

Stel de eigenschappen van Main Camera in

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

LCCRenderer 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 LCCRenderer en stel de Transform in op Rotation.x = -90 en Scale.x = -1.

Maak LCCRenderer aan en stel de Transform in

Maak LCCRenderer 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.

Secundaire rendercamera's aanmaken

Klik met de rechtermuisknop op een leeg gebied in het Hiërarchie-venster om twee extra rendercamera's aan te maken, geef ze respectievelijk de naam Camera01 en Camera02, en stel de eigenschappen van deze twee camera's in zoals hieronder wordt weergegeven.

Stel de eigenschappen van Camera01 in

Stel de eigenschappen van Camera01 in

Stel de eigenschappen van Camera02 in

Stel de eigenschappen van Camera02 in

In dit voorbeeld wordt de Viewport Rect van de twee camera's zo geconfigureerd dat ze respectievelijk in de linkerbenedenhoek en de rechterbenedenhoek van het hoofdrenderingvenster worden geplaatst.

Stap 2: Het multi-camera-script schrijven

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

using LCCCore;
using UnityEngine;

public class MultiCamera : MonoBehaviour
{
    public LCCManager m_manager;
    public string m_FilePath01;
    public Camera m_camera01;
    public Camera m_camera02;

    public Transform m_transform01;
    private LCCCore.Renderer m_renderer01;

    private int m_currentFileIndex = 0;

    void Start()
    {
        m_manager.SetPlatformType(PlatformType.PC);
        m_manager.SwitchRenderPass(ActiveRenderMode.SingleRender);

        Debug.Log("Gestart ");
        m_renderer01 = m_manager.GetRender(m_transform01);

        m_currentFileIndex = 0;
        m_renderer01.Load(m_FilePath01, 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");

        m_manager.AddCamera(m_camera01);
        m_manager.AddCamera(m_camera02);
    }

    private void OnDestroy()
    {
        m_manager.RemoveCamera(m_camera01);
        m_manager.RemoveCamera(m_camera02);
    }
}

Opmerking:

  • Secundaire camera's moeten worden geregistreerd nadat de LCC-scène is geladen, dus AddCamera wordt aangeroepen in de onComplete-callback.
  • De bestandsnaam van het script moet overeenkomen met de klassenaam (MultiCamera.cs komt overeen met class MultiCamera), anders kan het niet aan een GameObject worden toegevoegd.
  • De hoofdcamera wordt ingesteld via SetMainCamera en secundaire camera's worden toegevoegd via AddCamera; je kunt de hoofdcamera niet als secundaire camera toevoegen.

Stap 3: Het script toevoegen en eigenschappen instellen

  1. Voeg het MultiCamera.cs-script toe aan het LCCRenderer-GameObject in het Hiërarchie-venster.
  2. Sleep in het Inspector-venster het LCCManager-GameObject naar de eigenschap Manager van het script.
  3. Sleep de Camera01- en Camera02-GameObjects respectievelijk naar de eigenschappen Camera01 en Camera02 van het script.
  4. Vul het LCC-bestandspad in bij de eigenschap File Path01 van het script.
Voeg het MultiCamera-script toe en stel de eigenschappen in

Voeg het MultiCamera-script toe en stel de eigenschappen in de Inspector in

Stap 4: Uitvoeren

Klik op de knop Play in het Game-venster om het realtime renderingeffect van meerdere rendercamera's in de scène te zien.

Meerdere camera's die na het uitvoeren gelijktijdig renderen

Meerdere rendercamera's die na het uitvoeren gelijktijdig renderen

Belangrijkste stappen

De belangrijkste stappen voor het implementeren van multi-camera rendering:

  1. Zorg ervoor dat de scène zich in de volledige renderingmodus van één scène bevindt (SwitchRenderPass(ActiveRenderMode.SingleRender) en de gegevens door het Full Load-pad gaan).
  2. De hoofdcamera wordt ingesteld via SetMainCamera; secundaire camera's worden via AddCamera geregistreerd nadat de scène is geladen (in de onComplete-callback).
  3. Beheer het renderinggebied van elke camera op het scherm via de Viewport Rect.
  4. Verwijder secundaire camera's via RemoveCamera wanneer het object wordt vernietigd (OnDestroy) om bungelende verwijzingen te voorkomen.

Opmerkingen bij multi-camera rendering

  • Alleen de volledige renderingmodus wordt ondersteund. De LCC SDK ondersteunt multi-camera rendering momenteel alleen in de volledige renderingmodus binnen één scène. Voor prestatieoptimalisatie laadt en rendert de SDK in de chunked renderingmodus alleen de zichtbare gegevens binnen het camerafrustum; en om hoge prestaties na te streven zijn het filteren van de scèneknoopgegevens aan de CPU-zijde, de gegevensassemblage en de gegevensupload van CPU naar GPU allemaal asynchroon, zodat de SDK de gegevens voor meerdere camera's niet afzonderlijk binnen hetzelfde frame kan verwerken en renderen.

  • Zorg ervoor dat de scène zich in de volledige renderingstatus bevindt. Configureer de scène voor het gebruik van de volledige multi-camera renderingfunctie in de volledige renderingmodus (Full Load): gebruik ActiveRenderMode.SingleRender en schakel volledige rendering in op de Renderer (Renderer.SetRenderAll(true), dat van kracht wordt bij de volgende Load()). Zie Snelstartgids voor pc voor meer informatie over renderingmodi en prestatieparameters.

  • Hoe meer camera's, hoe hoger de prestatiekosten. Elke extra rendercamera voegt één volledige renderingpass toe, waardoor de prestaties navenant afnemen. Multi-camera rendering wordt aanbevolen op krachtige computerapparaten.

  • Alleen ondersteund op pc/Mac. AddCamera / RemoveCamera zijn alleen effectief op pc/Mac-platformen.

Multi-camera API's

De LCC Unity SDK biedt via LCCManager de volgende cameragerelateerde API's. Secundaire camera's moeten via AddCamera worden geregistreerd nadat de LCC-scène is geladen (dat wil zeggen in de onComplete-callback).

SetMainCamera

// Retourwaarde: void
public void SetMainCamera(Camera _cam)

Stelt de hoofdrendercamera in. LCC gebruikt deze camera voor frustum-culling, LOD-selectie, sortering en andere bewerkingen.

ParameterTypeBeschrijving
_camCameraHoofdrendercamera; geef null door om deze te wissen

Gebruiksvoorbeeld:

m_manager.SetMainCamera(Camera.main);

Opmerkingen:

  • Moet worden ingesteld vóór Renderer.Load().
  • Roep het opnieuw aan bij het wisselen van camera.
  • Alleen ondersteund op pc/Mac.
  • Geef null door om de hoofdcamera te wissen.

AddCamera

// Retourwaarde: void
public void AddCamera(Camera _cam)

Voegt een secundaire camera toe. Secundaire camera's nemen deel aan de rendering maar hebben geen invloed op de LOD-selectie.

ParameterTypeBeschrijving
_camCameraSecundaire camera

Gebruiksvoorbeeld:

m_manager.AddCamera(m_camera01);

Opmerkingen:

  • Alleen ondersteund op pc/Mac.
  • Je kunt de hoofdcamera niet als secundaire camera toevoegen.
  • De LOD-selectie wordt alleen bepaald door de hoofdcamera; secundaire camera's hergebruiken de door de hoofdcamera gefilterde gegevens voor rendering.

RemoveCamera

// Retourwaarde: void
public void RemoveCamera(Camera _cam)

Verwijdert een eerder toegevoegde secundaire camera.

ParameterTypeBeschrijving
_camCameraDe te verwijderen secundaire camera

Gebruiksvoorbeeld:

m_manager.RemoveCamera(m_camera01);

Opmerkingen:

  • Alleen ondersteund op pc/Mac.
  • Het wordt aanbevolen om het aan te roepen wanneer het object wordt vernietigd (OnDestroy) om de verwijzing naar de secundaire camera op te schonen.