Jump to content

Recommended Posts

Sto provando ad esportare il lavoro fatto, al momento per PC

Ho un problema che il video non risulta fluido anche se nell'editor ho gli fps a 120, essendo poi una scena semplice la rtx4000 che sto usando non dovrebbe dare problemi. Posto un video di quello che intendo...

video

Link to post
Share on other sites

Ciao, dal video non si vede moltissimo mi pare ci sia un piccolo rallentamento quando giri la visuale potrebbe essere il fenomeno dello stuttering che con unreal engine è facile sperimentare. E' un qualcosa di noto. Se cerchi UE4 micro stuttering escono mille discussioni.

 

Comunque tendenzialmente è dato dal fatto che carica in background in modo dinamico  il flusso di dati della scena.

Un modo per ottimizzare questo aspetto è ridurre i così detti "draw calls"

Quote

Draw Calls. Now the GPU doesn't render on its own – it has the CPU telling it what to render and how, through the process of a draw call. A draw call is 'A group of polygons sharing the same properties' or in Unreal terms – 'a group of polygons sharing the same material'.

 

Per far ciò  idealmente bisogna evitare che una mesh sia fatta da tante parti separate se non necessario (con tanti materiali assegnati)..  però dipende. Non è che sia in assoluto sbagliato che una mesh sia fatta di parti separate. Se ad esempio prevedi che una parte si debba staccare possono anche essere due mesh.

Viceversa se non c'è ragione che un singolo oggetto sia fatto di tante parti separate.. è bene unirle in una singola mesh e attribuire all'oggetto intero un singolo materiale (con tutte le variazioni di proprietà dettate dalla mappa UV) . Questo perchè un oggetto fatto di 6 parti separate corrisponde a 6 draw call (anche di più forse adesso non ricordo) ... quindi quando quell'oggetto viene richiamato e caricato dinamicamente, in pratica è come se venisse messo in una lista, una fila di elementi che devono essere caricati.

Ora.. metti conto che il processore ne carica ad ogni ciclo, un certo tot. E' un po' come un negozio che fa entrare 12 persone alla volta. Se siamo in 6 e prima di noi sono entrati 10 persone.. ne entrano solo 2 e 4 restano fuori quindi il nostro oggetto non è caricato e deve aspettare il turno dopo. Se il nostro oggetto è una singola entità, "passa" con  quel gruppo di 12 essendo l'11 esimo.

 

Usare "merge Actors tool" aiuta a ridurre i draw calls.  Anche fare il baking (sempre dentro ad Unreal) delle texture sull'oggetto (ad es. quelli piccoli di cui non è necessario avere un calcolo dinamico ad esempio delle riflessioni e va bene un approssimazione).

Un altra cosa che pesa un po' sulla cpu sono le luci del tipo dinamico. Idealmente dovresti usare luci statiche per fare un illuminazione generale della scenta e singole luci dinamiche là dove ha un senso il fatto che siano dinamiche. Non bisogna insomma abusare di dinamiche.

Oltre a questo a mio parere è molto raccomandabile il fatto di assicurarsi che il vsync sia attivato anche tramite script in UE e limitare il frame rate a quello idealmente desiderato.

 

 

1472314926_2020-06-01(2).png.a8bc8f1a99381a89a69a9713b865cef2.png

 

 

In generale invece nel pc  impostare opzioni risparmio energia in "prestazioni elevate" ha un impatto notevole. Un disco veloce SSD facilmente renderà questi caricamenti meno visibili.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Link to post
Share on other sites

In realtà non credo sia un problema di stuttering, dal video precedente non si capisce bene, posto un altro video in cui si vede meglio, tra l'altro mi sono accorto che se uso un programma di registrazione del monitor la navigazione è molto più fluida, il video che posto di seguito è registrato col cellulare e si capisce meglio il problema.

Tra l'altro ho provato su due pc differenti e in entrambi i casi quando uso il programma che registra il monitor il video viene fluido

Video

Link to post
Share on other sites

Sì..il fatto che il video faccia sembrare tutto fluido purtroppo è così.. infatti non si riesce bene a vedere dal video.

Comunque se pensi che sia un problema di frames per secondo.. tanto vale controllarli.   Nella demo premi il tasto \ per aprire la console comandi e scrivi stat fps.

Link to post
Share on other sites

Probabilmente non mi sono spiegato bene io, il problema sono queste "scalettature" (in rosso sulla foto) che si vedono in situazione di navigazione della scena.

Gli fps rimangono sempre attorno ai 50

 

000.jpg

Link to post
Share on other sites

Ok mi pare di capire che devo smanettare con le impostazioni della scheda grafica, adesso provo a cercare se trovo qualche impostazione per amd, ho provato ad attivare il vsync e qualcosa è migliorato, ma non ancora del tutto.

Intanto grazie

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

Per garantire la migliore esperienza di navigazione possibile questo sito utilizza cookie tecnici, statistici e di terze parti. Chiudendo questo banner, scorrendo questa pagina o cliccando qualunque suo elemento acconsenti all'uso dei cookie. Privacy Policy - Cookie Policy