Journaux et outils de débogage du rendu 3DGS
Cette page explique comment obtenir les informations de diagnostic et comment lire chaque outil. Pour un diagnostic par symptôme, voir Dépannage.
Consulter les journaux du plugin
Les journaux du plugin se répartissent en deux catégories :
| Catégorie | Origine |
|---|---|
LogLCC | Pipeline LCC et fonctionnalités communes (chargement, collision, licence, fonctions utilitaires) |
LogLCC2 | Spécifique à la pipeline LCC2 |
Dans l'éditeur
Ouvrez Window > Output Log. Pour vos propres recherches, saisissez LogLCC dans le champ de filtre afin de retrouver rapidement les messages du plugin, ou exécutez les commandes suivantes dans la console pour élever le niveau de journalisation :
log LogLCC Verbose
log LogLCC2 Verbose
Le fichier journal de l'éditeur se trouve ici :
<project directory>/Saved/Logs/<project name>.log
Dans un programme empaqueté
Lancez un build Development avec le paramètre -log pour faire apparaître une fenêtre de console. Le fichier journal se trouve ici :
<package directory>/<project name>/Saved/Logs/<project name>.log
Un build Shipping n'écrit pas de journal par défaut : utilisez un build Development pour les recherches de problèmes.
Joignez à votre demande le fichier journal complet de l'exécution qui a posé problème, pas seulement quelques lignes filtrées liées au plugin. Le contexte extérieur au plugin est souvent nécessaire pour localiser un problème.
Statistiques de rendu : stat XGrids
Exécutez stat XGrids dans la console, ou utilisez le bouton Stats de la catégorie Actions du panneau Details de l'Actor.
Consultez-les avec stat unit pour commencer par déterminer si le goulot d'étranglement se situe bien sur le 3DGS.
Compteurs de quantité
Les compteurs les plus consultés :
| Statistique | Signification |
|---|---|
Total Splats | Nombre total de Splats des données |
Level0 Splats | Nombre de Splats du Level 0 (précision la plus élevée) |
Current Render Splats | Nombre de Splats réellement rendus dans l'image courante ; c'est le compteur principal pour évaluer la charge de rendu |
Current Render Main Splats | Volume de données principales rendu dans l'image courante |
Current Render Environment Splats | Volume de données d'environnement rendu dans l'image courante |
Total Nodes | Nombre total de nœuds |
Current Render Nodes | Nombre de nœuds rendus dans l'image courante |
Visible Node Num | Nombre de nœuds visibles |
LCC Draw Call | Nombre de Draw Call produits par le plugin |
LCC Sort Num | Nombre de tris |
Camera Num | Nombre de caméras participant au rendu |
Comment s'en servir : quand Current Render Splats reste continuellement proche de la limite de Max Splat Num, c'est que la limite de quantité tronque déjà le rendu et que les détails de l'image sont dégradés. Relevez la limite (performances contre qualité d'image), ou ajustez Level Factor pour réduire le nombre de nœuds à la source.
Le volume total des données est également lisible par code, voir GetSplatNumber.
Compteurs de temps
Temps décomposé par étape, pour localiser l'étape bloquante :
| Statistique | Étape correspondante |
|---|---|
Render LCC | Temps de rendu total du plugin |
Traversal Time | Traversal des nœuds, qui décide quels nœuds sont rendus dans l'image |
Determine Nodes Level | Calcul du niveau de précision de chaque nœud |
Load Data To CPU | Lecture des données en mémoire |
Upload To GPU | Upload des données en mémoire vidéo |
Splat Sort | Tri des Splats (nécessaire au rendu semi-transparent) |
Node Sort | Tri des nœuds |
Build Mesh Batch | Construction des batches de dessin |
Wait Node Ready | Attente de la disponibilité des données de nœuds |
Component Update | Mise à jour des composants |
Update Camera Info | Mise à jour des informations de caméra |
Load Meta File | Chargement du fichier de métadonnées |
Load Index Data | Chargement des données d'index (pipeline LCC) |
Load Collision Data | Chargement des données de collision |
Load Environment Data | Chargement des données d'environnement |
Update Collision | Mise à jour de la collision |
Get Physics Trimesh Data | Génération du maillage de collision physique |
Release Memory | Libération de la mémoire |
Preload Node | Préchargement des nœuds |
Get From Cache | Récupération des données depuis le cache |
Create Thread | Création de threads |
Draw Node Box | Tracé des limites de nœuds (uniquement quand la visualisation de débogage est active) |
Comment s'en servir :
Splat Sortélevé : sur la pipeline LCC, augmentez Sort Factor pour réduire la fréquence de triWait Node Readyélevé : le chargement des données ne suit pas ; le disque est peut-être lent ou le nombre de threads insuffisantUpload To GPUélevé : le volume uploadé par image est important ; ajustez Level Factor ou Max Splat NumUpdate CollisionetGet Physics Trimesh Dataélevés : réduisez Max Load Collision Distance
Pour la démarche d'optimisation complète, voir Guide d'optimisation des performances.
Compteurs de mémoire et de mémoire vidéo
| Statistique | Signification |
|---|---|
CPU Usage | Mémoire occupée par le plugin |
GPU Usage | Mémoire vidéo occupée par le plugin |
Position Data(For Raycast) Usage | Occupation des données de position utilisées pour les tests de rayon |
Collision Data Usage | Occupation des données de collision |
CPU Occupy Percentage | Pourcentage d'occupation de la mémoire |
GPU Occupy Percentage | Pourcentage d'occupation de la mémoire vidéo |
Les compteurs en pourcentage correspondent aux seuils de libération des paramètres du projet. Un taux d'occupation qui reste durablement proche de Max GPU Usage Percetage For Free signifie que la récupération de ressources est déclenchée fréquemment, ce qui peut provoquer des saccades.
Pour les règles d'allocation de la mémoire vidéo et les limites de capacité, voir Rendu.
Compteurs de threads
| Statistique | Signification |
|---|---|
Collision Loader Thread Num | Nombre de threads de chargement de la collision |
Exporter Thread Num | Nombre de threads d'export |
Visualisation des limites de nœuds
Activez ou désactivez cette visualisation avec le bouton Debug Node Bound de la catégorie Actions du panneau Details de l'Actor, ou exécutez dans la console :
r.Xgrids.DrawNodeBox 1
Les nœuds actuellement chargés sont tracés sous forme de boîtes filaires. La couleur des boîtes correspond au Level du nœud : rouge, orange, jaune, vert, bleu et violet se succèdent progressivement ; le rouge correspond au Level le plus bas (précision la plus élevée) et le blanc au Level le plus élevé (précision la plus basse).
Pour les notions de nœud et de Level, voir Rendu.
Comment le lire :
- Des boîtes rouges encore rendues au loin indiquent une précision excessive et des performances gaspillées. Augmentez Level Factor
- Uniquement des boîtes de couleurs froides à proximité indique une précision trop réduite, avec une image floue. Baissez Level Factor ou vérifiez Start Level
- Un nombre de boîtes très supérieur aux attentes : vérifiez si Max Distance n'est pas réglé trop grand
Cette visualisation ne fonctionne que dans l'éditeur et dans les builds Development. L'interface de code correspondante est DebugNodeBound.
Visualisation de la collision
Activez ou désactivez cette visualisation avec le bouton Show Collision de la catégorie Actions du panneau Details de l'Actor, ou exécutez dans la console :
r.xgrids.DrawCollision 1
Les corps de collision chargés sont tracés en filaire.
Comment le lire :
- Aucun filaire du tout : les données ne contiennent pas de fichier de collision, ou
bEnableCollisionn'est pas activé ; voir prérequis de la collision - Des filaires uniquement à proximité : comportement normal, la collision est chargée en flux selon la distance et limitée par Max Load Collision Distance
- Des filaires décalés par rapport au contenu de l'image : les données de collision ne correspondent pas aux données de rendu, contactez le support technique
Activez cette visualisation en premier lors du diagnostic d'un rayon qui n'atteint rien ou d'un personnage qui traverse le sol, afin de vérifier si la collision est réellement chargée. Pour le mécanisme de chargement, voir Collision ; l'interface de code est ShowCollision.
Affichage de la fréquence d'images
Le bouton Show FPS de la catégorie Actions du panneau Details de l'Actor équivaut à l'exécution de stat fps dans la console. Associez-le à stat unit pour observer la répartition du temps entre les threads.
Tableau des messages de journal courants
Recherchez la signification et le traitement par le contenu du message. Les messages ci-dessous sont ceux réellement émis par le plugin.
Chargement
| Message de journal | Signification et traitement |
|---|---|
LCC file :<path> does not exist. | Le chemin n'existe pas. Vérifiez le chemin ; les chemins relatifs prennent Content comme référence |
meta.lcc file :<path> load error,Please check. | Échec de l'analyse du fichier de métadonnées LCC1, le fichier est peut-être corrompu |
Load Meta.lcc error,Please check your file! | Idem |
Read index.bin error,path:<path>. | Échec de la lecture du fichier d'index. Vérifiez que index.bin existe et n'est pas corrompu |
LCC4Unreal do not support this file format! | Format non pris en charge, vérifiez que l'extension fait partie des formats pris en charge |
The data file:<path> does not exist,Please check your file! | Fichier de bloc de données manquant, le répertoire de données est peut-être incomplet |
Collision
| Message de journal | Signification et traitement |
|---|---|
There is neither collision.bin nor collision.lci in the folder:<path>, please check. | Aucun fichier de collision dans le répertoire de données, la collision ne peut pas être activée pour ces données |
Failed to open file <path> | Échec de l'ouverture du fichier de collision, vérifiez les droits d'accès et l'intégrité du fichier |
Read collision data error,path:<path>. | Échec de la lecture des données de collision, le fichier est peut-être corrompu |
Invalid indices in collision data! | Contenu des données de collision anormal, contactez le support technique |
Rendu
| Message de journal | Signification et traitement |
|---|---|
r.PostProcessing.PropagateAlpha is 0. LCC4Unreal requires this to be enabled for correct rendering. | Cette option doit être activée, sinon le mélange alpha est incorrect. Le plugin affiche aussi un message |
Unlicensed: enabled clipping volumes limited to <N> ... | Le nombre de volumes de découpe dépasse le quota de l'édition gratuite, l'excédent n'est pas rendu. Voir Éditions et licences |
Unlicensed: enabled section planes limited to <N> ... | Idem, le nombre de plans de coupe dépasse le quota |
GIS
| Message de journal | Signification et traitement |
|---|---|
This lcc does not have RTK information! | Les données ne contiennent pas d'information géographique RTK, le placement géographique est impossible |
MetaInfo's Offset has no 3 elements! | Le champ de décalage des métadonnées est anormal, les données sont peut-être défectueuses |
Licence
| Message de journal | Signification et traitement |
|---|---|
ProjectID is invalid; generate one in Project Settings (Project/Description). Refusing authentication. | Le projet n'a pas de Project ID, générez-en un dans les paramètres du projet |
Failed to decode AppKey, please check. | Contenu de l'AppKey incomplet, copiez-le de nouveau |
Invalid AppKey, please check. | Format de l'AppKey incorrect |
Authorization has expired, please check. | Licence expirée, générez-en une nouvelle |
AppKey has expired. Please generate a new one. | Idem |
Authentication Failed: <message> | Motif d'échec renvoyé par le serveur, traitez selon le contenu du message |
HTTP request failed | Impossible de joindre le serveur de licences, vérifiez le réseau |
HTTP error! Status: <code> | Le serveur a renvoyé un code d'état d'erreur |
Signature Verification Failed | Échec de la vérification de signature, contactez le support technique |
Maillage proxy
| Message de journal | Signification et traitement |
|---|---|
has a null StaticMesh | L'Actor de maillage proxy n'a pas de StaticMesh assigné et n'aura aucun effet. Le message n'est émis qu'une fois par instance |
Que joindre à une demande de support
Rassemblez les éléments de cette liste : le diagnostic sera nettement plus rapide.
- Version du plugin et version du moteur. La version du plugin est visible en bas à droite du panneau du plugin, et aussi en recherchant LCC4Unreal dans la fenêtre
Edit > Pluginsdu moteur. - Fichier journal complet du moment où le problème est survenu. Fournissez directement le fichier
.loglui-même, sans filtrage et sans vous limiter à la ligne d'erreur. Le contexte du journal contient souvent les informations clés du diagnostic, qu'un filtrage fait justement perdre. Pour l'emplacement des journaux, voir Consulter les journaux du plugin. - Informations sur les données. Format, ordre de grandeur (Total Splats), présence ou non de collision.
- Étapes de reproduction. Le chemin de reproduction minimal, à partir d'un projet neuf, est le plus utile.
- Environnement matériel. Modèle de carte graphique, version du pilote, quantité de mémoire vidéo.
- Project ID. Nécessaire pour les problèmes de licence, visible dans
Project Settings > Project > Description.
Pour les coordonnées, voir Nous contacter.