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

    • PortalCam P1

      • Przegląd produktu
      • Podstawowa obsługa
      • Korzystanie z aplikacji LCC Scan
      • Konserwacja i pielęgnacja
      • FAQ
  • Seria Lixel K

    • Lixel K1

      • Przegląd produktu
      • Podstawowa obsługa
      • Aktywacja i połączenie urządzenia
      • Przebieg skanowania
      • Pozyskiwanie danych chmury punktów ze współrzędnymi bezwzględnymi
      • Fuzja map
      • Zalecenia dotyczące planowania trasy dla typowych scen
      • Środki ostrożności
      • FAQ
    • Lixel K2

      • Przegląd produktu
      • Podstawowa obsługa
      • Aktywacja i połączenie urządzenia
      • Przebieg skanowania
      • Pozyskiwanie danych chmury punktów ze współrzędnymi bezwzględnymi
      • Fuzja map
      • Zalecenia dotyczące planowania trasy dla typowych scen
      • Środki ostrożności
      • FAQ
  • Seria Lixel L

    • Lixel L2 Pro

      • Przegląd produktu
      • Podstawowa obsługa
      • Aktywacja i połączenie urządzenia
      • Proces skanowania
      • Pozyskiwanie danych chmury punktów ze współrzędnymi bezwzględnymi
      • Punkt pomiarowy
      • Dodatek
      • FAQ
    • Lixel L3

      • Przegląd produktu
      • Podstawowe funkcje urządzenia
      • Aktywacja i połączenie urządzenia
      • Przechwytywanie danych
      • Przechwytywanie współrzędnych bezwzględnych
      • Dodatek
  • Akcesoria

    • Stick Light

      • Przewodnik instalacji
      • Podstawowa obsługa
      • Często zadawane pytania
  • Lixel Studio

    • Wersja i prawa autorskie
    • Instalacja i aktywacja
    • Interfejs oprogramowania
    • Operacje na plikach
    • Przetwarzanie projektu
    • Narzędzia
    • Rysowanie 2D
    • Zastosowania
    • Ustawienia
    • Połączenie z urządzeniem
  • 07-plugin-sdk

    • Unity

      • Wprowadzenie do Unity SDK
      • Funkcje techniczne
      • Wymagania środowiska deweloperskiego
      • Przewodnik szybkiego startu dla PC
      • Przewodnik optymalizacji ustawień projektu
      • Przewodnik deweloperski dla Pico 4 Ultra
      • Przewodnik strumieniowania PC dla Pico 4 Ultra
      • Przewodnik deweloperski dla Quest 3
      • Przewodnik strumieniowania PC dla Quest 3
      • Przewodnik deweloperski dla OpenXR
      • Przewodnik Business Streaming dla Pico 4 Ultra
      • Słownik
      • Często zadawane pytania (FAQ)
      • Skontaktuj się z nami
      • Przewodnik programowania funkcji

        • Przewodnik mieszanego renderowania wielu scen
        • Przewodnik odbierania cieni
        • Przewodnik oświetlenia w czasie rzeczywistym
        • Przewodnik renderowania wielokamerowego
        • Przewodnik renderowania obrazów wysokiej rozdzielczości
        • Przewodnik zgodności formatów danych LCC i LCC2
        • Przewodnik efektu ładowania
        • Przewodnik przełączania trybu renderowania Mip
        • Przewodnik przyciągania do krawędzi i narożników
        • Przewodnik dekala projekcyjnego
        • Przewodnik wideo dekala projekcyjnego
        • Przewodnik podświetlania
        • Przewodnik przycinania w czasie rzeczywistym
        • Przewodnik korekcji kolorów
        • Przewodnik pobierania danych siatki sceny
        • Przewodnik trybu edytora
        • Przewodnik konfiguracji parametrów wydajności renderowania
        • Przewodnik współpakowania aplikacji i danych
        • Przewodnik systemu kolizji
        • Przewodnik problemów z uprawnieniami w deweloperstwie na macOS
        • Przewodnik kompilacji i pakowania na urządzenia iOS
      • Dokumentacja API

        • LCCManager
        • Renderer
        • Typy danych
      • Dziennik zmian

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

Przewodnik renderowania wielokamerowego

LCC Unity SDK obsługuje renderowanie wieloma kamerami jednocześnie w trybie pełnego renderowania pojedynczej sceny. Poniżej na przykładzie jednej kamery głównej i dwóch kamer pomocniczych opisano kompletne kroki implementacji renderowania wielokamerowego.

Krok 1: Utwórz scenę i GameObjects

Utwórz zupełnie nową scenę w Unity. Unity domyślnie tworzy Kamerę główną i Światło kierunkowe.

Skonfiguruj Kamerę główną

Wybierz Kamerę główną w oknie Hierarchia i ustaw jej właściwości w oknie Inspektor, jak pokazano poniżej.

Ustaw właściwości Kamery głównej

Ustaw właściwości Kamery głównej

Utwórz LCCManager

Kliknij prawym przyciskiem myszy pusty obszar w oknie Hierarchia, wybierz Utwórz pusty z menu podręcznego, aby utworzyć pusty GameObject, nazwij go LCCManager, znormalizuj jego Transform i dodaj do niego skrypt LCCManager przez Dodaj komponent.

Utwórz GameObject LCCManager i dodaj skrypt LCCManager

Utwórz GameObject LCCManager i dodaj skrypt LCCManager

Utwórz LCCRenderer

Kliknij prawym przyciskiem myszy pusty obszar w oknie Hierarchia, wybierz Utwórz pusty, aby utworzyć pusty GameObject, nazwij go LCCRenderer i ustaw jego Transform na Rotation.x = -90 i Scale.x = -1.

Utwórz LCCRenderer i ustaw jego Transform

Utwórz LCCRenderer i ustaw jego Transform (Rotation.x = -90, Scale.x = -1)

Uwaga:

Ustawienia Transform GameObject LCCRenderer (Rotation.x = -90, Scale.x = -1) wyrównują go z układem współrzędnych danych LCC. Szczegóły wyrównania układu współrzędnych znajdziesz w sekcji „Układ współrzędnych danych LCC" w Wprowadzenie do Unity SDK.

Utwórz pomocnicze kamery renderujące

Kliknij prawym przyciskiem myszy pusty obszar w oknie Hierarchia, aby utworzyć dwie dodatkowe kamery renderujące, nazwij je odpowiednio Camera01 i Camera02, i ustaw właściwości tych dwóch kamer, jak pokazano poniżej.

Ustaw właściwości Camera01

Ustaw właściwości Camera01

Ustaw właściwości Camera02

Ustaw właściwości Camera02

W tym przykładzie Prostokąt widoku dwóch kamer jest skonfigurowany tak, aby umieścić je odpowiednio w lewym dolnym rogu i prawym dolnym rogu głównego okna renderowania.

Krok 2: Napisz skrypt wielokamerowy

Utwórz nowy skrypt C# o nazwie MultiCamera.cs z następującym kodem:

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("Uruchomiono ");
        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] plik {m_currentFileIndex} postęp ładowania: {_progress:P1}");
    }

    private void onComplete()
    {
        Debug.Log($"[LCCRenderer] plik {m_currentFileIndex} załadowany");

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

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

Uwaga:

  • Kamery pomocnicze muszą być zarejestrowane po zakończeniu ładowania sceny LCC, więc AddCamera jest wywoływane w wywołaniu zwrotnym onComplete.
  • Nazwa pliku skryptu musi być zgodna z nazwą klasy (MultiCamera.cs odpowiada class MultiCamera), w przeciwnym razie nie można go dołączyć do GameObject.
  • Kamera główna jest ustawiana przez SetMainCamera, a kamery pomocnicze są dodawane przez AddCamera; nie możesz dodać kamery głównej jako kamery pomocniczej.

Krok 3: Dołącz skrypt i ustaw właściwości

  1. Dołącz skrypt MultiCamera.cs do GameObject LCCRenderer w oknie Hierarchia.
  2. W oknie Inspektor przeciągnij GameObject LCCManager na właściwość Manager skryptu.
  3. Przeciągnij GameObjects Camera01 i Camera02 odpowiednio na właściwości Camera01 i Camera02 skryptu.
  4. Wpisz ścieżkę pliku LCC we właściwości File Path01 skryptu.
Dołącz skrypt MultiCamera i ustaw jego właściwości

Dołącz skrypt MultiCamera i ustaw jego właściwości w Inspektorze

Krok 4: Uruchom

Kliknij przycisk Odtwórz w oknie Gra, aby zobaczyć efekt renderowania w czasie rzeczywistym wielu kamer renderujących w scenie.

Wiele kamer renderujących jednocześnie po uruchomieniu

Wiele kamer renderujących renderuje jednocześnie po uruchomieniu

Kluczowe kroki

Kluczowe kroki implementacji renderowania wielokamerowego:

  1. Upewnij się, że scena jest w trybie pełnego renderowania pojedynczej sceny (SwitchRenderPass(ActiveRenderMode.SingleRender) i dane przechodzą przez ścieżkę Full Load).
  2. Kamera główna jest ustawiana przez SetMainCamera; kamery pomocnicze są rejestrowane przez AddCamera po zakończeniu ładowania sceny (w wywołaniu zwrotnym onComplete).
  3. Steruj obszarem renderowania każdej kamery na ekranie przez jej Prostokąt widoku.
  4. Gdy obiekt jest niszczony (OnDestroy), usuń kamery pomocnicze przez RemoveCamera, aby uniknąć zawieszonych odniesień.

Uwagi dotyczące renderowania wielokamerowego

  • Obsługiwany jest tylko tryb pełnego renderowania. LCC SDK obecnie obsługuje renderowanie wielokamerowe tylko w trybie pełnego renderowania w ramach pojedynczej sceny. Dla optymalizacji wydajności w trybie renderowania fragmentami SDK ładuje i renderuje tylko widoczne dane wewnątrz frustum kamery; a w dążeniu do wysokiej wydajności filtrowanie danych węzłów sceny po stronie CPU, składanie danych i przesyłanie danych z CPU do GPU są asynchroniczne, więc nie może przetwarzać i renderować danych dla wielu kamer osobno w tej samej klatce.

  • Upewnij się, że scena jest w stanie pełnego renderowania. Aby użyć kompletnej funkcji renderowania wielokamerowego, skonfiguruj scenę w trybie pełnego renderowania (Full Load): użyj ActiveRenderMode.SingleRender i włącz pełne renderowanie na Rendererze (Renderer.SetRenderAll(true), co zadziała przy następnym Load()). Szczegóły trybów renderowania i parametrów wydajności znajdziesz w Przewodnik szybkiego startu dla PC.

  • Im więcej kamer, tym wyższy koszt wydajności. Każda dodatkowa kamera renderująca dodaje jeden kompletny przebieg renderowania, więc wydajność odpowiednio spada. Renderowanie wielokamerowe jest zalecane na wydajnych urządzeniach komputerowych.

  • Obsługiwane tylko na PC/Mac. AddCamera / RemoveCamera działają tylko na platformach PC/Mac.

API wielokamerowe

LCC Unity SDK udostępnia poniższe API powiązane z kamerami przez LCCManager. Kamery pomocnicze muszą być zarejestrowane przez AddCamera po zakończeniu ładowania sceny LCC (czyli w wywołaniu zwrotnym onComplete).

SetMainCamera

// Wartość zwracana: void
public void SetMainCamera(Camera _cam)

Ustawia główną kamerę renderującą. LCC używa tej kamery do odrzucania frustum, wyboru LOD, sortowania i innych operacji.

ParametrTypOpis
_camCameraGłówna kamera renderująca; przekaż null, aby ją wyczyścić

Przykład użycia:

m_manager.SetMainCamera(Camera.main);

Uwagi:

  • Musi być ustawiona przed Renderer.Load().
  • Wywołaj ponownie przy przełączaniu kamer.
  • Obsługiwane tylko na PC/Mac.
  • Przekaż null, aby wyczyścić główną kamerę.

AddCamera

// Wartość zwracana: void
public void AddCamera(Camera _cam)

Dodaje kamerę pomocniczą. Kamery pomocnicze uczestniczą w renderowaniu, ale nie wpływają na wybór LOD.

ParametrTypOpis
_camCameraKamera pomocnicza

Przykład użycia:

m_manager.AddCamera(m_camera01);

Uwagi:

  • Obsługiwane tylko na PC/Mac.
  • Nie możesz dodać kamery głównej jako kamery pomocniczej.
  • Wybór LOD jest określany tylko przez kamerę główną; kamery pomocnicze ponownie używają danych przefiltrowanych przez kamerę główną do renderowania.

RemoveCamera

// Wartość zwracana: void
public void RemoveCamera(Camera _cam)

Usuwa wcześniej dodaną kamerę pomocniczą.

ParametrTypOpis
_camCameraKamera pomocnicza do usunięcia

Przykład użycia:

m_manager.RemoveCamera(m_camera01);

Uwagi:

  • Obsługiwane tylko na PC/Mac.
  • Zaleca się wywołanie przy niszczeniu obiektu (OnDestroy), aby oczyścić odniesienie do kamery pomocniczej.