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

    • LCC Studio

      • Prise en main
      • Version et mises à jour
      • Téléchargement et installation
      • Aperçu de l’interface et navigation
      • Avant la reconstruction
      • Reconstruction du modèle
      • Reconstruction d’un modèle unique
      • Fusion cartographique
      • Fusion aérienne-terrestre
      • Reconstruction aérienne
      • Mes modèles
      • Autres fonctionnalités
      • Paramètres et compte
      • Convertisseur
      • Reconstruction vidéo
      • Questions fréquentes
    • LCC Scene Editor

      • Version et mises à jour
      • Compte et connexion
      • Présentation du produit et accueil
      • Interface de l’éditeur
      • Modes de navigation de scène
      • Fichier
      • Paramètres
      • Opérations d’édition
      • Fenêtre
      • Barre d’outils globale
      • Ressources et propriétés
      • Barre d’outils gauche
      • Points de vue
      • Portail
      • Skybox
      • Annotations
      • Mesure
      • Parcours
      • Rapport de scène
      • 3D Layout
      • Mini-carte
      • Mode Prévisualisation, Viewer
      • Aide
      • FAQ
      • Point d’apparition
    • LCC Model Editor

      • Version et mises à jour
      • Guide de l’utilisateur
      • Aperçu et interface
      • Opérations sur les fichiers
      • Sélecteurs
      • Modification des modèles
      • Mesure
      • Réglage des couleurs
      • Gestion des ressources
      • Paramètres et aide
      • Questions fréquentes
    • Bonnes Pratiques

      • Fusion de plusieurs modèles 3DGS de grande taille
  • Plugin & SDK

    • Unreal

      • Introduction
      • Démarrage rapide - Windows
      • Démarrage rapide - Linux
      • Démarrage rapide - Quest3
      • Éditions et licences
      • Rendu
      • Rastérisation Tiled (expérimental)
      • Réglages visuels
      • Normales et éclairage
      • Édition de scène
      • Paramètres de performance
      • Guide d'optimisation des performances
      • Intégration avec les plugins tiers et moteur
      • Maillage proxy
      • Animation de chargement
      • Collision
      • Prise en charge du système de navigation
      • Prise en charge de l'eau à couche unique
      • Localisation
      • Questions fréquentes
      • Dépannage
      • Journaux et diagnostics
      • Nous contacter
      • Bonnes pratiques

        • Rééclairer un 3DGS avec un maillage LixelStudio
      • Référence API

        • ALCCActorBase
        • ULCCComponentBase
        • ULCCComponent
        • ULCC2Component
        • Actors SOG / SPZ / PLY
        • ALCC2ProxyMesh
        • ALCCClippingVolume
        • ALCCSectionPlane
        • ALCCLoadVolume
        • ULCCUtilLibrary
        • Enums
        • Structs
      • Journal des modifications

        • 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

      • Introduction au SDK Unity
      • Fonctionnalités techniques
      • Exigences de l'environnement de développement
      • Guide de démarrage rapide PC
      • Guide d'optimisation des paramètres de projet
      • Guide de développement Pico 4 Ultra
      • Guide de streaming PC du Pico 4 Ultra
      • Guide de développement Quest 3
      • Guide de streaming PC du Quest 3
      • Guide de développement OpenXR
      • Guide Business Streaming du Pico 4 Ultra
      • Glossaire
      • FAQ
      • Nous contacter
      • Guide de développement des fonctionnalités

        • Guide de développement du rendu mixte multi-scènes
        • Guide de développement de la réception des ombres
        • Guide de développement de l'éclairage en temps réel
        • Guide de développement du rendu multi-caméras
        • Guide de développement du rendu d'images haute résolution
        • Guide de développement de la compatibilité des formats de données LCC et LCC2
        • Guide de développement de l'effet de chargement
        • Guide de développement du basculement du mode de rendu Mip
        • Guide de développement de l'accrochage aux arêtes et aux coins
        • Guide de développement du décalque projeté
        • Guide de développement du décalque projeté vidéo
        • Guide de développement du surlignage
        • Guide de développement de la découpe en temps réel
        • Guide de développement du réglage des couleurs
        • Guide de développement de l'obtention des données Mesh de la scène
        • Guide de développement du mode éditeur
        • Guide de configuration des paramètres de performance de rendu
        • Guide de développement du co-packageage de l'application et des données
        • Guide de développement du système de collision
        • Guide des problèmes d'autorisation de développement macOS
        • Guide de développement de la compilation et du packageage sur appareil iOS
      • Référence de l'API

        • LCCManager
        • Renderer
        • Types de données
      • Journal des modifications

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

Guide de développement du rendu mixte multi-scènes

Le rendu mixte multi-scènes consiste à créer plusieurs scènes LCC en même temps et à mélanger leur rendu en temps réel pour obtenir une occlusion et un mélange corrects. Pour contrôler indépendamment chaque scène LCC qui participe au rendu, vous devez créer plusieurs Renderers et attacher chaque Renderer à un GameObject indépendant, de sorte que le Transform de chaque scène LCC puisse être contrôlé indépendamment.

Étape 1 : Créer la scène et les GameObjects

Créez une toute nouvelle scène dans Unity. Unity crée Caméra principale et Lumière directionnelle par défaut.

Créer LCCManager

Faites un clic droit dans une zone vide de la fenêtre Hiérarchie, sélectionnez Créer vide dans le menu contextuel pour créer un GameObject vide, nommez-le LCCManager, normalisez son Transform, et ajoutez-y le script LCCManager via Ajouter un composant.

Créer le GameObject LCCManager et ajouter le script LCCManager

Créer le GameObject LCCManager et ajouter le script LCCManager

Créer LCCRenderer01

Faites un clic droit dans une zone vide de la fenêtre Hiérarchie, sélectionnez Créer vide pour créer un GameObject vide, nommez-le LCCRenderer01, et définissez son Transform sur Rotation.x = -90 et Scale.x = -1.

Créer LCCRenderer01 et définir son Transform

Créer LCCRenderer01 et définir son Transform (Rotation.x = -90, Scale.x = -1)

Créer LCCRenderer02

Créez un autre GameObject vide de la même manière, nommez-le LCCRenderer02, et définissez également son Transform sur Rotation.x = -90 et Scale.x = -1.

Créer LCCRenderer02 et définir son Transform

Créer LCCRenderer02 et définir son Transform (Rotation.x = -90, Scale.x = -1)

Remarque :

Les réglages de Transform du GameObject LCCRenderer (Rotation.x = -90, Scale.x = -1) l'alignent avec le système de coordonnées des données LCC. Pour plus de détails sur l'alignement du système de coordonnées, voir « Système de coordonnées des données LCC » dans Introduction au SDK Unity.

Étape 2 : Écrire le script de rendu multi-scènes

Créez un nouveau script C# nommé MultiRenderer.cs avec le code suivant :

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);
        // Passer en mode MultiRender pour permettre à plusieurs Renderers d'être actifs et mélangés en même temps
        m_manager.SwitchRenderPass(ActiveRenderMode.MultiRender);

        Debug.Log("Démarré ");
        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] progression du chargement du fichier {m_currentFileIndex} : {_progress:P1}");
    }

    private void onComplete()
    {
        Debug.Log($"[LCCRenderer] fichier {m_currentFileIndex} chargé");
    }
}

Étape 3 : Attacher le script et configurer les propriétés

  1. Attachez le script MultiRenderer.cs au GameObject LCCManager dans la fenêtre Hiérarchie.
  2. Dans la fenêtre Inspecteur, assignez les références et les chemins selon le tableau ci-dessous :
Propriété du scriptAssignation
ManagerFaites glisser le GameObject LCCManager sur cette propriété
Transform01Faites glisser le GameObject LCCRenderer01 sur cette propriété
Transform02Faites glisser le GameObject LCCRenderer02 sur cette propriété
File Path01Chemin de la première source de données LCC
File Path02Chemin de la deuxième source de données LCC
Configurer les références et les chemins de données du script MultiRenderer dans l'Inspecteur

Configurer les références et les chemins de données du script MultiRenderer dans l'Inspecteur

Étape 4 : Exécuter

Cliquez sur le bouton Play dans la fenêtre Jeu, et vous verrez les deux scènes LCC rendues et mélangées simultanément. Modifiez les valeurs de Transform du GameObject LCCRenderer01 ou LCCRenderer02, et chaque scène rendue se met à jour en temps réel.

Deux scènes LCC rendues et mélangées simultanément après l'exécution

Deux scènes LCC rendues et mélangées simultanément après l'exécution

Points clés

Il existe deux points clés pour développer le rendu mixte multi-scènes LCC :

  1. Passer en mode MultiRender : utilisez m_manager.SwitchRenderPass(ActiveRenderMode.MultiRender); pour permettre à plusieurs scènes LCC d'être mélangées. Le mode par défaut est SingleRender, qui ne permet pas de mélanger plusieurs scènes LCC.
  2. Attacher chaque Renderer à un GameObject indépendant : utilisez GetRender(Transform) pour lier chaque Renderer à un GameObject indépendant, de sorte que le Transform de chaque scène LCC puisse être contrôlé indépendamment.