In questo paragrafo sono descritte alcune tecniche di ottimizzazione software per il rendering delle scene.

Scene Graph

Lo Scene Graph è una struttura ad albero gerarchica che contiene le informazioni sugli oggetti presenti sulla scena, codificandoli come posizione e rotazione rispetto al nodo parent. La codifica avviene tramite una serie di matrici di trasformazione rototraslazionali.

Negli engine odierni spesso è possibile trovare sia trasformazioni globali (rispetto al pivot della scena) che locali (rispetto al parent).

Perché utilizzare lo Scene Graph?
Senza SG se si volesse modificare la posizione di un liquido rispetto al bicchiere che si muove si dovrebbe computare lo spostamento del liquido e del bicchiere separatamente. Usando lo scene graph invece, il movimento del bicchiere implica il movimento dell’acqua (se questa è posizionata in uno strato più interno del grafo) in quanto l’informazione sulla posizione del liquido è codificata rispetto al bicchiere, non al centro della scena.

Il rendering tramite Scene Graph permette di parallelizzare le operazioni (nodi alla stessa profondità sono indipendenti) e quindi di velocizzare il rendering.

Infine rende la gestione della scena più semplice da visualizzare per gli sviluppatori

Link to original

Image Based Rendering

L’image based rendering usa un insieme di immagini, ognuna che codifica diverse informazioni sulla texture applicata, per definire il rendering dei modelli. Questo include:

  • Normal map
  • Color map
  • Ambient Occlusion Map
  • Roughness Map
  • Metalness Map
  • Light map
  • Height map
Link to original

Billboards

Le billboards vengono usate molto nel campo dell’ottimizzazione delle scene.
Sostanzialmente sono delle immagini 2D che vengono sostituite ad un modello 3D quando la visuale è abbastanza lontana dall’oggetto, che tipicamente seguono la rotazione della visuale per essere sempre coerenti e non apparire piatte.

Quindi si può dire che è una forma estrema di LOD, in quanto renderizzare un’immagine è molto più facile di renderizzare delle mesh.

Le billboard vengono usate molto per oggetti ambientali come alberi e nuvole. In realtà è importante che lo swap da billboard a oggetto 3D non avvenga troppo vicino al giocatore in quanto è molto più visibile di uno swap di LOD.

Dato che i billboard sono particolarmente efficaci nella prospettiva in cui sono stati realizzati inizialmente esiste una tecnica detta “Impostor Billboards” che permette di creare dei billboard al volo in base alla prospettiva del giocatore.

Link to original

Level of Detail

Il Level of Detail (LOD) nei modelli 3D è un concetto utilizzato in grafica computerizzata per adattare la complessità dei modelli 3D in base alla distanza dell’osservatore. Le sue principali funzioni includono:

  1. Ottimizzazione delle risorse: Riducendo il dettaglio dei modelli man mano che si allontanano dal punto di vista dell’osservatore, il LOD permette di risparmiare memoria e potenza di calcolo, migliorando l’efficienza del rendering.
  2. Qualità visiva: Spesso le variazioni di dettaglio non sono percepibili dall’osservatore, mantenendo una qualità visiva accettabile anche a distanza.
  3. Tecniche di gestione: LOD può essere implementato tramite metodi discreti (DLOD), creando versioni multiple di un modello con diversi dettagli, o metodi continui (CLOD), che permettono di variare dinamicamente il dettaglio.

Questa tecnica è ampiamente utilizzata in videogiochi, modelli 3D in GIS (Sistemi Informativi Geografici), e software di rendering per ottimizzare le prestazioni.

Un’alternativa è quella di modificare la trasparenza di un oggetto man mano che si allontana dalla visuale del giocatore fino a renderlo del tutto trasparente, o sostituirlo con delle Billboards.

Link to original