Rendering con Azure

Il rendering è il processo di acquisizione di modelli 3D e la conversione in immagini 2D. I file di scena 3D vengono creati in applicazioni come Autodesk 3ds Max, Autodesk Maya e Blender. Le applicazioni di rendering come Autodesk Maya, Autodesk Arnold, Chaos Group V-Ray e Blender Cycles producono immagini 2D. A volte vengono create singole immagini dai file della scena. Tuttavia, è comune modellare ed eseguire il rendering di più immagini e quindi combinarle in un'animazione.

Il carico di lavoro di rendering viene usato principalmente per gli effetti speciali (VFX) nel settore Media and Entertainment. Il rendering viene usato anche in molti altri settori, ad esempio pubblicità, vendita al dettaglio, petrolio e gas e produzione.

Il processo di rendering è a elevato utilizzo di calcolo; possono essere presenti molti fotogrammi/immagini da produrre e il rendering di ogni immagine può richiedere molte ore. Il rendering è quindi un carico di lavoro di elaborazione batch perfetto che può usare Azure per eseguire molti rendering in parallelo e usare un'ampia gamma di hardware, incluse le GPU.

Perché usare Azure per il rendering?

Per molti motivi, il rendering è un carico di lavoro perfettamente adatto per Azure:

  • I processi di rendering possono essere suddivisi in più parti che possono essere eseguite in parallelo usando più macchine virtuali:
    • Le animazioni sono costituite da molti fotogrammi e ogni fotogramma può essere sottoposto a rendering in parallelo. Più macchine virtuali sono disponibili per elaborare ogni fotogramma, più velocemente è possibile produrre tutti i fotogrammi e l'animazione.
    • Alcuni software di rendering consentono di suddividere singoli fotogrammi in più parti, ad esempio riquadri o sezioni. Il rendering di ogni pezzo può essere eseguito separatamente, quindi combinato nell'immagine finale al termine di tutti i pezzi. Maggiore è il numero di macchine virtuali disponibili, più veloce è possibile eseguire il rendering di un frame.
  • I progetti di rendering possono richiedere una scalabilità enorme:
    • I singoli fotogrammi possono essere complessi e richiedono molte ore per il rendering, anche su hardware di fascia alta; le animazioni possono essere costituite da centinaia di migliaia di fotogrammi. È necessaria una grande quantità di calcolo per eseguire il rendering di animazioni di alta qualità in un periodo di tempo ragionevole. In alcuni casi, vengono usati oltre 100.000 core per eseguire il rendering di migliaia di fotogrammi in parallelo.
  • I progetti di rendering sono basati su progetti e richiedono quantità variabili di calcolo:
    • Allocare capacità di calcolo e archiviazione quando necessario, aumentarlo o ridurre in base al carico durante un progetto e rimuoverlo al termine di un progetto.
    • Pagare la capacità quando è allocata, ma non pagare quando non è presente alcun carico, ad esempio tra progetti.
    • Gestire i picchi dovuti a cambiamenti imprevisti; scalare verso l’alto se si verificano cambiamenti imprevisti nelle fasi finali di un progetto e tali cambiamenti devono essere gestiti in tempi stretti.
  • Scegliere tra un'ampia gamma di hardware in base all'applicazione, al carico di lavoro e all'intervallo di tempo:
    • È disponibile un'ampia gamma di hardware in Azure che può essere allocato e gestito con Batch.
    • A seconda del progetto, il requisito potrebbe essere per il miglior prezzo/prestazioni o le migliori prestazioni complessive. Diverse scene e/o applicazioni di rendering possono avere requisiti di memoria diversi. Alcune applicazioni di rendering possono usare GPU per ottenere prestazioni ottimali o determinate funzionalità.
  • Le macchine virtuali spot con priorità bassa o Azure riducono i costi:
    • Le macchine virtuali spot e con priorità bassa sono disponibili per uno sconto elevato rispetto alle macchine virtuali standard e sono adatte per alcuni tipi di processo.

Ambiente di rendering locale esistente

Il caso più comune è che esista una farm di rendering locale esistente gestita da un'applicazione di gestione del rendering, ad esempio PipelineFX Qube, Royal Render, Thinkbox Deadline o un'applicazione personalizzata. Il requisito consiste nell'estendere la capacità della farm di rendering locale usando Azure macchine virtuali.

L'infrastruttura e i servizi di Azure vengono utilizzati per creare un ambiente ibrido in cui Azure viene utilizzato per integrare la capacità on-premise. Per esempio:

  • Usare un Rete virtuale per posizionare le risorse Azure nella stessa rete della farm di rendering locale.
  • Usare Avere vFXT per Azure o Cache HPC di Azure per memorizzare nella cache i file di origine in Azure per ridurre l'uso e la latenza della larghezza di banda, ottimizzando le prestazioni.
  • Assicurarsi che il server licenze esistente si trova nella rete virtuale e acquistare altre licenze in base alle esigenze per soddisfare la capacità aggiuntiva basata su Azure.

Nessuna farm di rendering esistente

Le workstation client potrebbero eseguire il rendering, ma il carico di rendering aumenta e richiede troppo tempo per usare esclusivamente la capacità della workstation.

Sono disponibili due opzioni principali:

  • Distribuire un gestore di rendering locale, ad esempio Royal Render, e configurare un ambiente ibrido da usare Azure quando è necessaria ulteriore capacità o prestazioni. Un gestore di rendering è appositamente progettato per il rendering dei carichi di lavoro e include plug-in per le applicazioni client più diffuse, consentendo un semplice invio di processi di rendering.

  • Soluzione personalizzata che usa Azure Batch per allocare e gestire la capacità di calcolo e fornire la pianificazione dei processi per eseguire i processi di rendering.

Passaggi successivi

Altre informazioni sulle funzionalità di rendering di Azure Batch.