Profilatore Oggetti
Sicuramente conoscete gli effetti delle scene più grandi e complesse: possono diventare piuttosto lente in termini di gestione, navigazione, animazione, tempi di preparazione per il rendering, ecc. Spesso è difficile riconoscere esattamente dove si trova il problema: quale oggetto o quale tag è quello che richiede più tempi di calcolo? (vedi anche Perché usare un Profilatore Oggetti).
Questo compito viene ora svolto dal Profilatore Oggetti. Questo strumento misura i tempi di calcolo dei singoli oggetti e dei tag e li visualizza in modo chiaro. In questo modo possiamo riconoscere a prima vista gli elementi che richiedono tempi molto lunghi per il calcolo.
Ecco come potrebbe apparire:
Nell'esempio precedente, possiamo vedere a colpo d'occhio chi è il colpevole: l'oggetto Booleano consuma la maggior parte dei tempi di calcolo con un ampio margine.
Nella parte superiore della finestra possiamo vedere il tempo di calcolo totale (qui 3057,3 millisecondi ≈ 3 secondi). Nella finestra stessa, che è una Gestione Oggetti semplificata, sono elencati tutti gli oggetti e i tag con i rispettivi tempi di calcolo. Gli elementi sono ordinati in base al tempo di calcolo. In alto troverete quelli che richiedono più tempo. Gli elementi possono essere disattivati o riattivati con il segno di spunta verde o la crocetta rossa.
Perché usare un Profilatore Oggetti?
In molti casi è davvero importante, o almeno istruttivo, sapere per chi viene speso il prezioso tempo di calcolo. Naturalmente è bello e gratificante aver costruito una scena completamente parametrica che richiede solo 400 kB di memoria sul disco rigido, ma che crea un oggetto estremamente complesso nella vista. Tuttavia, se la frequenza dei fotogrammi nella visualizzazione crolla a 1 fotogramma al secondo e la navigazione è paragonabile ad una proiezione di diapositive, questo è semplicemente impraticabile. Il Profilatore Oggetti può aiutarci ad identificare gli sprechi di tempo maggiori; inoltre ci permette di:
- disattivare degli elementi,
- ad esempio, simulazioni di particelle o di Corpi Rigidi.
- aggiungere impostazioni più semplici e veloci da calcolare.
- creare un flusso di lavoro diverso.
- convertire in oggetti poligonali, ecc.
Importante da sapere
- Il Profilatore Oggetti non misura i processi che vengono eseguiti sulla scheda grafica/GPU (ad esempio, le simulazioni) o che avvengono durante il rendering. Inoltre, alcuni deformatori e un certo numero di tag non vengono misurati (ad esempio, tag Hair, tag Phong, ecc.)
- Notare che finché il Profilatore Oggetti è aperto, continua le sue misurazioni. Tuttavia, poiché consuma relativamente poche risorse, non dovrebbe avere un effetto negativo evidente sulle prestazioni della scena.
- Non prendete per buoni tutti i valori qui riportati: Cinema 4D non ricalcola costantemente tutto internamente! Se, ad esempio, immaginate un oggetto Estrudi che crea poligoni da una spline mediante displacement, la mesh poligonale creata viene salvata e conservata internamente in una cache. E il più a lungo possibile! Ciò significa che i tempi di calcolo per la generazione dell'oggetto Estrudi viene utilizzato solo durante il caricamento della scena, mentre non è necessario alcun altro tempo di calcolo per una misurazione nel frame 15 (a meno che non si modifichi la spline, ad esempio, e quindi si riattivi un ricalcolo). La cache interna degli oggetti avviene in innumerevoli aree di Cinema 4D. L'utente è decisamente all'oscuro di quando esattamente queste cache vengono aggiornate. Per questo motivo il Profilatore Oggetti non può riflettere correttamente il tempo di calcolo effettivo, cioè massimo, per ogni elemento, in ogni momento! Tuttavia, potete utilizzare i vari modi Profilo nel menu Vista per influenzare questo aspetto, ad esempio eseguendo l'animazione e facendo sì che il Profilatore Oggetti visualizzi sempre e solo il valore massimo misurato fino a quel momento.
- Poiché il Profilatore Oggetti offre una vista semplificata della Gestione Oggetti, non è necessario descriverlo nel dettaglio. I dettagli sulla Gestione Oggetti sono disponibili qui.
Comandi e impostazioni del Profilatore Oggetti
Qui vengono trattati solo i comandi e le impostazioni non disponibili in Gestione Oggetti. Tutto il resto funziona allo stesso modo.
Menu Vista
I valori misurati possono essere visualizzati anche direttamente in Gestione Oggetti se attivate questa opzione. Tuttavia, questi sono visibili solo se anche il Profilatore Oggetti è aperto!
Ma perché si vedono due colonne in Gestione Oggetti? In parole povere, hanno il seguente significato:
- La colonna di sinistra mostra le misure dell'oggetto, compresi i tag.
- La colonna di destra mostra le misure dell'oggetto, compresi gli oggetti figli e i loro tag. Inoltre, è incluso anche il tempo che l'oggetto può trascorrere in altri oggetti. Cosa si intende con questo? Immaginate un oggetto Clona che viene influenzato dall'Effettuatore Python. Il tempo di calcolo dell'Effettuatore Python viene quindi incluso nell'oggetto Clona stesso.
Modalità Profilo
La modalità di profilo è forse il parametro più importante del Profilatore Oggetti. Cercate di comprendere al meglio queste 4 impostazioni, in modo da sapere cosa misura effettivamente il Profilatore Oggetti. Dobbiamo approfondire bene questo aspetto.
Anche un semplice clic nella Gestione Oggetti fa sì che Cinema 4D calcoli una scena per tutti gli oggetti (esecuzione della scena). Questo è ovviamente eccessivo nel caso di oggetti invariati e già calcolati: se non abbiamo inserito nuovi parametri (sia manuali che animati), non è necessario ricalcolare nulla. E questo infatti non accade, perché tali oggetti normalmente sanno se devono essere ricalcolati o meno e lo trasmettono a Cinema 4D: l'oggetto viene quindi recuperato dalla cache già calcolata. Tuttavia (e qui arriva il grande ma) il Profilatore Oggetti non sa se il tempo misurato per l'oggetto si riferisce alla semplice verifica di un oggetto invariato o al suo completo ricalcolo! Per questo motivo esistono le quattro modalità descritte di seguito.
Esempio
Caricate la scena seguente e aprite il Profilatore Oggetti).
Attivate l'opzione Ultima Esecuzione nel .
Una serie di generatori lavora nella scena per creare una sorta di corona frastagliata da una spline circolare: un deformatore Spostare trasforma una spline circolare in una frastagliata, che crea una mesh poligonale con l'aiuto di un oggetto Sweep. Un Costruttore Volume converte questa mesh poligonale in voxel, li leviga leggermente e un Generatore Mesh Volume genera infine la mesh finale.
Ciò significa che una serie di processi computazionalmente complessi vengono eseguiti uno dopo l'altro.
Ora cliccate più volte in un'area vuota in Gestione Oggetti - o del Profilatore Oggetti - e osservate i tempi misurati nel Profilatore Oggetti (immagine a sinistra).
Quindi premete più volte il pulsante A (immagine a destra). I tempi seguenti sono stati ottenuti con un PC di fascia media (2024):
Qui i tempi sono radicalmente diversi. Perché?
Cliccando sulla gestione, viene eseguita una scena tenendo conto di tutte le cache e delle misure risparmia-tempo. Questo avviene molto rapidamente. Nel secondo caso (pulsante A = ridisegna), viene avviata un'esecuzione completa della scena, in cui ogni oggetto viene ricalcolato. Questo avviene automaticamente, ad esempio, quando si carica una scena; Cinema 4D non può ancora accedere a nessuna cache (a meno che non sia stata salvata esplicitamente in precedenza), ma deve prima calcolare tutto.
Questo solo per illustrare quanto possano essere diversi i tempi di misurazione.
In questa modalità, viene visualizzata la durata dell'esecuzione dell'ultima scena. Questo avviene praticamente in tempo reale, cioè quando cliccate su un punto o vi spostate semplicemente sulla scena nella vista, oppure ogni volta che Cinema 4D esegue una nuova scena, questa viene visualizzata direttamente. Ciò significa che i valori possono cambiare continuamente e che l'unica misurazione importante per voi potrebbe essere persa. Si veda anche l'esempio in cui viene utilizzata questa modalità.
Questa modalità si applica per ogni fotogramma (di animazione). Delle possibili numerose esecuzioni di scene che avvengono per ogni fotogramma, viene visualizzato solo il risultato con il tempo di calcolo più lungo; quelli più lenti vengono sovrascritti direttamente. Se si cambia il fotogramma (di animazione), il tempo massimo precedente viene cancellato e il processo ricomincia dall'inizio.
Il problema sorge se modifichiamo la Dimensione Voxel di un Generatore Volume, ad esempio, per verificare come questo influisce sui tempi di calcolo. In modalità Frame Corrente, non viene visualizzato un tempo più breve. A tal fine, passate alla modalità successiva:
Funziona in modo simile a Frame Corrente, ma ogni volta che si apporta una modifica a un oggetto o a un giorno, la misurazione viene ripetuta. Ciò significa che è consigliabile utilizzare questa modalità se desiderate studiare l'influenza delle modifiche dei parametri, poiché, a differenza dell'opzione precedente, vengono visualizzati anche i tempi di riduzione.
In definitiva, questa modalità permette di scoprire le riduzioni di tempo in un'intera animazione. Lasciate che l'animazione si riproduca completamente (vedi anche il suggerimento seguente).
I tempi massimi di calcolo degli elementi per schermata sono determinati in modo continuo (come accade con Frame Corrente per il tempo attuale), ma il Profilatore Oggetti visualizza sempre e solo il massimo determinato fino a quel momento. Se l'animazione riparte, viene ripristinato anche il valore massimo visualizzato.
Immaginate che un Remesher precedentemente disattivato sia riattivato dall'animazione nel Frame 67. Naturalmente, il tempo di calcolo non viene visualizzato nelle schermate 0-66. È quindi necessario misurare l'intera animazione in modo da tenere conto di tutto.
- Impostare il modo di Riproduzione (ad esempio, nel ) su
Semplice in modo che l'animazione si fermi all'ultimo fotogramma; se l'animazione parte dall'inizio, i tempi già misurati saranno cancellati. - Impostare il frame rate (ad esempio, nel ) su
Tutti i Fotogrammi, in modo che nessun fotogramma di animazione sia saltato e i relativi risultati di misurazione siano mancanti nel Profilatore Oggetti.
Unità
Definite qui il modo in cui visualizzare le misurazioni del tempo di calcolo.
I tempi sono visualizzati in ms (millisecondi = millesimi di secondo).
I singoli elementi vengono sempre visualizzati come percentuale del tempo di misurazione totale.
Qui i tempi vengono visualizzati in ms (millisecondi = millesimi di secondo) o µs (microsecondi = milionesimi di secondo). Se il display in µs ha quattro cifre, passerà automaticamente a ms.
