XGRIDSDocumentation
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • 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
  • 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

ALCCLoadVolume : volume de chargement

Hérite de AVolume, affiché dans le panneau sous le nom LCC Load Volume.

La différence essentielle avec un volume de découpe ou un plan de coupe tient à l'étape à laquelle il agit : la découpe et la coupe ne modifient que le résultat final du rendu, les données étant chargées et envoyées en mémoire vidéo comme d'habitude ; le volume de chargement agit pendant le traversal des nœuds, et les nœuds rejetés ne sont jamais lus. C'est donc le seul des trois qui réduise le volume chargé et l'occupation de la mémoire vidéo.

En-têteTools/LCCLoadVolume.h
Classe de baseAVolume
BlueprintBlueprintable / BlueprintType
LicenceFonctionnalité de l'édition Pro, sans effet sans licence

Un même volume de chargement peut agir simultanément sur plusieurs LCC Actors de la scène.

Propriétés

PropriétéTypeDescription
bEnabledboolActivation
ModeELoadRegionInside (ne charger que l'intérieur) ou Outside (exclure l'intérieur)
VolumeTypeELoadVolumeTypeBox (boîte) ou Sphere (sphère)

La signification des valeurs figure dans ELoadRegion et ELoadVolumeType.

Aucune des trois propriétés n'a de Setter, il suffit de les affecter directement. Le filtrage s'applique au moment du chargement, une modification impose donc de recharger les données.

Précision de la bordure

Le test se fait par nœud et non par splat, la bordure est donc plus grossière que celle d'un volume de découpe : un nœud proche du bord est entièrement écarté dès qu'il ne satisfait pas la condition.

Les deux modes utilisent des tests différents :

ModeConditionComportement de la bordure
InsideUn nœud n'est chargé que s'il se situe entièrement dans le volumeL'étendue réellement conservée est légèrement plus petite que le volume
OutsideUn nœud est exclu dès qu'il chevauche le volumeL'étendue réellement exclue est légèrement plus grande que le volume

Les deux côtés sont volontairement conservateurs, afin de garantir la stabilité lors des changements de LOD. Dans un octree, la boîte englobante d'un nœud enfant se trouve toujours à l'intérieur de celle de son parent, et le LOD passe de l'enfant au parent lorsque la caméra s'éloigne. Si Inside utilisait un test d'intersection, le nœud parent serait chargé du fait d'un chevauchement partiel, ramenant des zones que les enfants avaient déjà exclues : visuellement, un bloc de contenu apparaîtrait brusquement en s'éloignant. Avec un test d'inclusion, Outside présenterait le problème symétrique.

Quand une bordure précise est nécessaire, superposer un volume de découpe sur la même transformation : le volume de chargement réduit le volume chargé et le volume de découpe affine le bord.

Création à l'exécution

ALCCLoadVolume* Volume = GetWorld()->SpawnActor<ALCCLoadVolume>(
    ALCCLoadVolume::StaticClass(), Location, FRotator::ZeroRotator);

Volume->VolumeType = ELoadVolumeType::Box;
Volume->Mode = ELoadRegion::Inside;
Volume->bEnabled = true;
Volume->SetActorScale3D(FVector(20.0f, 20.0f, 10.0f));

Component->AddLoadVolume(Volume);
Component->Load(Path);   // must be configured before loading

L'ordre est important : le filtrage a lieu pendant le chargement, donc ajouter ou retirer un volume de chargement ou modifier une propriété après Load() ne change rien aux données déjà chargées ; un rechargement est nécessaire.

// Reload after changing the filtered range
Volume->SetActorLocation(NewLocation);
Component->Refresh();   // internally UnLoad then Load

Refresh() coûte autant qu'un rechargement complet, voir ALCCActorBase::Refresh.

Choisir entre ce volume et un volume de découpe

BesoinLequel utiliser
Extraire une petite partie d'une grande scène en économisant la mémoire vidéo et le temps de chargementVolume de chargement
Percer des ouvertures, ouvrir une enveloppe, avec une bordure préciseVolume de découpe
Économiser la mémoire vidéo et obtenir une bordure préciseSuperposer les deux, avec la même transformation
Activer et désactiver fréquemment l'effet à l'exécutionVolume de découpe (modifier bEnabled prend effet à l'image suivante, sans rechargement)

Voir aussi

  • ALCCClippingVolume : volume de découpe
  • ALCCSectionPlane : plan de coupe
  • AddLoadVolume : les méthodes d'ajout et de retrait côté Component
  • Édition de scène - Volumes de chargement : étapes d'utilisation et illustrations
  • Éditions et licences : périmètre de la licence
Précédent
ALCCSectionPlane
Suivant
ULCCUtilLibrary