Successivo

Magazine

Gli acceleratori per i rendering

Michele Braga | 13 Settembre 2016

Preview

Chi crea rendering per lavoro o anche solo per hobby sa molto bene che la potenza di calcolo del computer […]

Chi crea rendering per lavoro o anche solo per hobby sa molto bene che la potenza di calcolo del computer usato per generare tali immagini sembra non essere mai a sufficienza. La produzione di rendering fotorealistici richiede infatti tempo, tempo che può essere anche di parecchie ore se l’immagine è ad alta risoluzione e ha una qualità  visiva molto elevata. Se poi i rendering sono centinaia o migliaia perché ognuno di essi corrisponde a un fotogramma di un video, allora i tempi di calcolo si dilatano ancora di più e da alcune ore si passa bruscamente a settimane, se non addirittura a mesi. Esistono diverse soluzioni che permettono di accelerare questi processi e le affrontiamo in questo articolo.

di Nicola Martello

ICON_EDICOLAPer ridurre i tempi di calcolo di un rendering singolo o multimo, è prassi comune impiegare più computer in parallelo, collegati in rete e magari raccolti in un ambiente dedicato (rendering farm), che può anche essere remoto e accessibile via Internet. Ma il problema di fondo rimane sempre lo stesso: poter disporre di hardware il più possibile potente e veloce.

Per soddisfare questa esigenza, nel corso degli anni diverse aziende hanno proposto sistemi hardware specializzati nel rendere più veloci questi calcoli, sistemi chiamati acceleratori di rendering, e più performanti delle Cpu classiche, anche di quelle progettate per i sistemi workstation e server. Le Cpu, infatti, sono processori general purpose e per loro natura sono meno efficienti rispetto a un hardware dedicato; per di più i calcoli necessari alla generazione di un rendering utilizzano algoritmi – come il ray tracing – che sono molto efficaci nel riprodurre immagini fotorealistiche ma che richiedono elaborazioni intense e che beneficiano di sistemi di calcolo parallelo.

Storicamente, i primi acceleratori di rendering erano schede da inserire in uno slot della scheda madre del computer, dotate di molta memoria Ram – almeno per l’epoca – e di uno o due processori dedicati, di solito Fpga (Field Programmable Gate Array) o Asic (Application Specific Integrated Circuit) progettati ad hoc per eseguire algoritmi di calcolo ben specifici. I dispositivi che nel recente passato hanno avuto più successo sono stati RenderDrive di ArtVps e Caustic R2500 di Imagination Technologies.

I primi acceleratori di rendering

Nel primo decennio di questo secolo, l’azienda inglese ArtVps ha commercializzato gli acceleratori RenderDrive, server di rete dotati di una scheda, il vero cuore del sistema, con diversi processori specializzati nell’accelerazione ray tracing per il rendering batch delle immagini finali. Negli anni si sono succedute diverse versioni di RenderDrive, da RD2000 a RD6400, molto simili tra loro a parte la naturale evoluzione dell’hardware. RD2000 aveva 16 processori AR250 dedicati al ray tracing, che sviluppavano una potenza di calcolo pari a quella di 20 Pentium III. Il modello successivo, RD3000, disponeva di una Cpu Pentium III, 768 Mbyte di Ram e una scheda con 42 processori di ArtVps. Con RD5000 l’azienda presentava il nuovo processore AR350, impiegato anche nell’ultimo esemplare della serie, RD6400, disponibile con 16, 36 oppure 48 processori dedicati al ray tracing. AR350 era costituito da due core, ciascuno in grado di elaborare ogni secondo 66 milioni di intersezioni tra i raggi luminosi e le mesh 3D.

I RenderDrive erano completati da una sezione software che accettava in input i file 3D prodotti con 3ds Max e Maya di Autodesk. Per la conversione della scena 3D da mandare ai processori il prodotto usava il linguaggio Renderman di Pixar. A partire dal 2010, ArtVps non produce più RenderDrive e da allora si concentra solo sul software, più precisamente su Shaderlight, un motore di rendering ray tracing fisicamente corretto disponibile come plugin per SketchUp di Trimble.

Nel 2010 la società  Caustic Graphics, in seguito acquisita da Imagination Technologies, ha presentato CausticOne, una scheda di accelerazione per l’illuminazione globale e per il ray tracing, pensata per la visualizzazione realistica e interattiva della scena 3D, una vera e propria preview del rendering finale (non eseguibile con questo acceleratore). Il dispositivo funzionava solo con il supporto di Cpu e Gpu, dato che il processore dedicato si limitava a raggruppare i raggi luminosi in set con direzione angolare simile (gli algoritmi di global illumination generano raggi luminosi in maniera disordinata, praticamente orientati in tutte le direzioni). Questi gruppi di raggi con direzione simile erano poi elaborati in maniera molto più efficiente e veloce da un altro processore, per esempio la Gpu della scheda video. La Cpu era invece incaricata di applicare le texture e le ombre ai poligoni 3D, quindi non solo la Cpu ma anche la Gpu dovevano essere di potenza adeguata, dato che anche con CausticOne svolgevano compiti importanti.

All’inizio del 2013, Imagination Technologies ha iniziato la vendita delle schede di accelerazione ray tracing Caustic R2100 e R2500, evoluzione della CausticOne e funzionanti in base agli stessi principi. La prima era dotata di un processore Asic Rtu (Ray Trace Unit) Series 2 con 4 Gbyte di Ram Ddr2, la seconda montava due chip Rtu e 16 Gbyte di memoria Ddr2. A differenza del calcolo ray tracing basato unicamente sulla Gpu, che rende necessario che l’intera scena e le relative texture stiano nella memoria dell’adattatore video, le schede Caustic dovevano memorizzare solo la mesh 3D, quindi la Ram di cui erano dotate era sufficiente a gestire anche progetti molto ricchi di elementi. Secondo Imagination, la R2100 poteva lavorare su scene con 60 milioni di poligoni, cifra che raddoppiava nel caso della R2500.

Entrambe le schede lavoravano con le routine OpenRL, Api di basso livello per il ray tracing sviluppate da Imagination. Proprio come le OpenGL, anche le OpenRL erano multipiattaforma e aperte, così anche altre aziende potevano impiegarle per i propri prodotti. Le schede di accelerazione di Imagination hanno avuto un buon successo grazie anche ai plugin che consentivano di vedere le scene in maniera realistica e in tempo reale. Questi plugin erano Neon per McNeel Rhinoceros 5, RealView Plus per SolidWorks 2014 di Dassault Systèmes, Caustic Visualizer per 3ds Max e Maya. Nonostante le release più recenti dei plugin supportassero anche il rendering batch (oltre al canale alfa e al motion blur), oggi gli acceleratori Caustic non sono più prodotti. (…)

Trovate l’articolo completo su PC Professionale di settembre 2016