Motors de renderització, tractaments de llum en 3D



Ja fa temps que, en major o menor mesura, les produccions audiovisuals del tipus que siguin fan servir elements o efectes virtuals. És a dir, elements que no són a escena, sinó dintre dels programes capaços de generar-los. Això no serviria de gaire si no fos possible “moure” aquests personatges, objectes, escenaris o efectes especials, de l’ordinador a les pantalles.

Podem tenir models 3D modelats correctament, texturats i animats, però generar una pel·lícula amb aquests elements requereix una eina que molts cops està integrada dintre dels paquets de software amb què es realitzen aquestes pel·lícules, però el seu funcionament no és tan evident, encara que, sense ella, no hi hauria animació en 3D, ni FX digitals a les pel·lícules, ni videojocs. Estem parlant dels motors de renderització, el software que s’encarrega de fer els càlculs que ens permeten veure aquestes imatges sintètiques, escenaris i personatges digitals en un format amb un acabat estètic.

Per tal de generar imatges, a partir d’objectes 2D o 3D, ja siguin fixos o animacions, necessitem un motor de renderització, que és el programari o software que s’encarrega de fer els càlculs de les dades que hi ha a una escena, facilitades pel programari d’edició (com ara llums, càmeres, geometria, shaders, textures…), per tal de generar-les.

Davant la càmera digital hi ha un escenari, uns personatges i una il·luminació que són, com passa al món real, el que ens permet veure aquest món digital. Ara bé, aquesta llum interactua amb els objectes, generant ombres i, alhora, aquests objectes estan “fets” d’uns materials que també reaccionen a la llum segons les seves característiques; donant valors de difusió, reflexió i refracció de la llum, que les suavitzen o les tinten.

Per molt senzilla que sigui l’escena que tenim al davant, pot generar uns càlculs molt costosos, en termes de temps i, per descomptat, econòmics. Per això els enginyers de les empreses que dissenyen aquest software, tracten d’implementar als seus motors algoritmes capaços de fer aquests càlculs, de la manera més ràpida i eficient possible. Al mateix temps, es persegueix la simulació del comportament físic de la llum al més acuradament possible.

Així, renderitzar un píxel de l’escena implica que el motor ha d’interpretar les diferents dades dels elements que hi ha i comunicar-les a la GPU (Graphics Processing Unit).

També és possible el processament d’aquestes dades directament a la CPU (Central Processing Unit), és a dir, al processador de l’ordinador; però es una solució, en termes de rendiment, poc òptima.

Recentment, han aparegut motors de renderització que permeten un processament híbrid d’aquestes dades fent servir al mateix temps CPU i GPU de l’ordinador, que és l’encarregada del processament d’aquestes dades per a l’obtenció d’imatges, ja siguin fotorealistes o no.

Els motors més potents són els anomenats físics, o PBR (Physically Based Renderers), que permeten nivells de realisme cada vegada més indistingibles dels reals enregistrats per una càmera.

Els motors físics o PBR (Physically Based Rederers) estan basats en models i materials que simulen els comportaments reals de la llum. Amb aquestes tècniques d’il·luminació pretenen aconseguir renderitzacions molt acurades i fotorealistes.

Actualment, gairebé tots els motors de renderització comercials són motors físics, també coneguts com a PBR. Aquests estan basats en algoritmes que simulen las lleis físiques que afecten la llum i les reaccions dels materials dels objectes amb què la llum es troba:

  • Pel que fa als models de simulació de la llum, els nous algoritmes PBR tracten de seguir correctament les lleis físiques i els patrons de distribució que la llum segueix en el món real; com ara la llei de la conservació de l’energia, que ens diu que, per exemple, en el cas dels reflexos especulars, no poden reflectir més llum de la que els arriba.
  • Pel que fa al material dels objectes, estan definits de manera curosa perquè també reaccionin a la llum de tal com ho farien a la realitat. Els PBR distingeixen bàsicament entre dos tipus de materials: metàl·lics i no metàl·lics. Aquest últims estan reforçats per uns mapes que veurem més endavant, que són principalment, els Diffuse o Albedo Map, l’Specular, el Normal i el Metallic.

Trobareu més informació sobre els mapes Diffuse, Specular, Bump, Normal i Ambient Occlusion, en el punt “Espais de colors, textures i materials”, d’aquest mateix apartat.

Aquest tipus de mapes s’acostumen a generar des de programaris com el Substance Designer, el Substance Painter o el Quixel. Aquest sistema no només s’està fent servir actualment a les pel·lícules, sinó que també és molt utilitzat als videojocs.

Arnold, un motor d'Oscar

En aquesta materials treballareu amb Arnold, un motor de renderització del tipus PBR desenvolupat per l’empresa espanyola Solid Angle, i que es caracteritza pel realisme que aconsegueix, la seva rapidesa i la facilitat d’ús, cosa que afavoreix la seva elecció davant d’altres motors que s’adoptaven tradicionalment.


Arnold va guanyar l’Oscar tècnic el 2017 i s’ha fet servir a produccions com Gravity, Blade runner 2049, Guardians of the Galaxy vol.2, i a sèries com ara Game of Thrones, Westworld o Trollhunters.

A causa dels conceptes tècnics que acostuma a fer servir el renderitzador, ajustar els paràmetres per tal d’obtenir la màxima qualitat en el menor temps possible ha sigut una tasca feixuga i en ocasions complexa, tot i que es van simplificant els ajustos amb cada nova versió del motor.

Caldrà que coneixeu i domineu certs conceptes i eines, com el Linear workflow, que és l’espai de color on treballa el renderitzador. O el Sampling, que consisteix en definir els paràmetres per tal d’optimitzar la presa de dades de l’escena i fer una interpretació final en forma d’imatge. A nivell de renderització, ambdós determinen altres conceptes importants, com Diffuse, Specular, Transmission o SSS; que ens permeten el control del nivell de soroll, ja sigui en materials translúcids o reflectits.

Classificació dels motors de renderització

Una primera classificació seria pel tipus de processament; és a dir, caldria tenir en compte si el motor fa:

  • Un preprocessament. Propis de les produccions audiovisuals i la visualització arquitectònica o de producte.
  • La renderització en temps real. Aquells que estan integrats als Game engines (com Unity, Unreal, CryEngine…) i es fan servir a les produccions de videojocs.

També es poden classificar pel tipus d’algoritme que fan servir per al càlcul de la llum a l’escena. La majoria dels motors que hi ha actualment al mercat fan servir majoritàriament tres tècniques:

  • Rasterització: consisteix únicament en la projecció de la geometria de l’escena a un pla 2D; és un mètode ràpid de representar elements 3D en una imatge 2D, però el càlcul de llums i ombres no és massa acurat.
  • Ray Casting: calcula la trajectòria dels raigs llençats des de la càmera fins que interseca amb la superfície d’un objecte, i determina, així, quins objectes són visibles. Aquest mètode no permet el càlcul de raigs recursius (rebots de raigs de llum o reflexos, per exemple). Va ser un dels mètodes de renderització als primers videojocs en 3D.
  • Ray Tracing: és una evolució del Ray Casting, on els raigs llençats des de la càmera intersequen amb els objectes de l’escena; però té en compte efectes com la reflexió i la refracció de la llum, traçant rajos secundaris que permeten un càlcul més acurat i l’obtenció d’imatges fotorealistes. Aquest mètode serveix de base per a altres de més complexos, com el Photon Mapping, que permet el càlcul d’efectes com el de les càustiques. Aquesta precisió de càlcul té el cost de temps de renderització més llargs, i això fa que sigui un mètode que només fan servir els motors que treballen mitjançant la prerenderització.

Les càustiques

Les càustiques són els efectes de la llum reflectida o refractada per superfícies corbes, o translúcides, quan es projecten sobre altres superfícies (per exemple, la llum que travessa un got de vidre i es projecta sobre la seva ombra, o els reflexos de la llum al travessar la superfície de l’aigua en una piscina, al fons).

D’altra banda, els motors també es poden classificar per la seva ubicació. Aquests poden ser externs (aquells que funcionen com un programa a part del programari de modelatge en 3D, i que obliguen a exportar l’escena), o integrats com a plug-ins dintre del programari de modelatge:

  • Motors externs:
    • KeyShot (www.keyshot.com). Com a característiques principals té el fet de ser un motor físic (PBR) que fa servir el mètode de ray tracing en temps real, i es pot fer servir per il·luminar escenes d’imatges HDRI (High Dynamic Range Images) i llums físiques (Area, Point, i IES Lights).
    • Marmorset (www.marmoset.co/toolbag). El Marmorset Toolbag és un motor físic independent o PBR, és a dir, no està integrat com a plug-in, sinó que està basat en l’algoritme Global Illumination i fa les renderitzacions en temps real, i com a principal característica té la seva facilitat d’ús.
    • Arnold (www.solidangle.com). És el PBR que fareu servir al llarg de la unitat. És el motor de producció afegit actualment a Maya, que ha substituït el Mental Ray. Destaca per ser relativament fàcil de configurar, i molt flexible i ràpid en termes generals.
  • Motors integrats (plug-ins):
    • V-Ray (www.chaosgroup.com). La principal característica del V-Ray és la seva flexibilitat: pot fer servir diferents mètodes de càlcul de la llum, dona la possibilitat de personalitzar el nivell de mostreig dels diferents elements de l’escena, i en l’última versió ha implementat la possibilitat de fer el càlcul híbrid (CPU/GPU).
    • Maxwell Render (www.nextlimit.com/maxwell). Es tracta d’un motor del tipus Ray Tracing Unbiased, que fa servir un algoritme Global Illumination i es caracteritza per un alt nivell de realisme; tot i que els temps de renderització acostumen a ser llargs.

Imatges HDRI

Les imatges HDRI (High Dynamic Range Images) són imatges en 32 bits de profunditat de color, captades mitjançat tècniques específiques, que permeten copsar informació lumínica, des de les ombres més fosques d’una escena fins als punts més lluminosos. En el context de la renderització en 3D, es poden utilitzar per il·luminar una escena virtual, simulant un moment lumínic real. Una de les seves utilitats és il·luminar objectes 3D que després s’han d’integrar en la mateixa escena copsada per la càmera digital.

Llums físiques

Les llums dintre dels programes 3D tracten de simular tipus de llums reals. Així, per exemple, les area lights generen una llum més difusa, simulant la llum natural de les finestres, o bé la de les finestres d’estudi. També hi ha les point lights, que simularien més aviat llums com les que generen les bombetes; o les spot lights, que són llums puntuals. Hi ha també la possibilitat de fer servir llums fotomètriques, que admeten la utilització de perfils d’il·luminació IES, que són perfils facilitats pels fabricants d’il·luminació i que simulen els seus productes als renderitzadors. Per a més informació sobre els perfils IES, vegeu: www.ies.org.

Si abans fèiem una classificació segons l’algoritme, ara en descrivim una altra, basada en l’optimització o no dels algoritmes anteriors, per tal d’agilitzar els temps de renderització. Per tant, segons l’optimització de l’algoritme que facin servir per fer el càlcul, hi ha dos tipus de motor:

  • Unbiased renders: és a dir, sense marge de tolerància. En el cas d’Arnold, aquest fa servir un algoritme anomenat Brute Force, que en principi és dels que més temps de renderització necessiten (tot i que en el cas d’Arnold es pot optimitzar); ja que fan un càlcul de la il·luminació global a tots els píxels del frame.
  • Biased renders: fan servir algoritmes de càlcul (com ara Global Illumination, Final Gathering, Irradiance…) que es basen en un mostreig de la imatge; és a dir, fan el càlcul sense tenir en compte tots els píxels del frame. Aquest mostreig acostuma a ser ajustable. Això fa que aquest motors siguin mes ràpids, però menys precisos, en principi.

Una altra característica del Brute Force és que l’únic artefacte que haurem de corregir mitjançant l’ajust del Sampling serà la reducció del soroll (gra a la imatge); mentre que en els sistemes amb mostreig tenim, a més del soroll, altres tipus d’artefactes.

Com funciona un motor de renderització?

El que fan bàsicament els motors de renderització és, mitjançant el que s’anomena Ray Tracing (traçat de raigs), enviar uns rajos des de la càmera (el punt de vista) per cada píxel de la imatge cap a l’escena. Cada cop que un d’aquests rajos es troba amb algun dels objectes presents a l’escena, es fan una sèrie de càlculs determinats per l’algoritme emprat a cada motor de renderització, que retornen informació relativa a l’objecte (valors lumínics, color, tonalitat…) al píxel de la imatge corresponent.

El nombre de rajos que s’envia de la càmera a l’escena es pot anar variant fins que obtingueu la qualitat de renderització necessària. Com més rajos s’envien a l’escena, més precís serà el resultat; a expenses d’un major temps de renderització.

En Arnold, aquest procés de mostreig s’anomena sampling, i es fa en funció de diferents paràmetres relatius al comportament de la llum a la realitat.

Així, per dur a terme una renderització, haureu de seguir un ordre de valors:

  1. El primer valor que haurem de tenir en compte és el Camera (AA), que realment no afecta el càlcul de llum, sinó que és el valor d’Anti-Aliasing, que suavitza l’efecte de dents de serra (Aliasing). Aquest es dona a totes les imatges constituïdes per píxels (com és el cas) i té una incidència important en la qualitat final de la renderització. D’altra banda, el valor que donem a aquest paràmetre vindrà determinat per la quantitat de mostres (samples), que, alhora, es corresponen amb el quadrat d’aquest. És a dir, si tenim un valor de Camera Sampling (AA) de 2, el nombre de mostres que el motor prendrà de l’escena serà 4 (2×2).
  2. El Camera Sampling (AA) multiplica també el valor de les mostres de la resta de paràmetres de l’apartat Sampling de Render Settings (Diffuse, Specular, Transmission, Sub Surface Scattering –o SSS– i Volume Indirect):
    • Per exemple, si tenim un valor de 3 al Camera Sampling (AA) i un valor de Diffuse de 2, llavors tenim 9 mostres de Camera Sampling (3×3) i hauríem de tenir-ne 4 de Diffuse (2×2); però com que el Camera Sampling actua com a multiplicador de la resta de paràmetres, en realitat les mostres de Diffuse són 36 (9×4).
  3. A continuació, anirem ajustant la resta de paràmetres.

Trobareu més informació sobre com ajustar els paràmetres de sampling en aquest mateix apartat.

En motors anteriors, els algoritmes s’aplicaven a totes les circumstancies lumíniques. Ara, l’avantatge de poder fer el mostreig d’aquesta manera és que es pot aïllar més fàcilment quin és l’element que ens genera el soroll:

  • Es pot fer més èmfasi en aquella circumstància concreta d’una escena donada.
  • Provoca un soroll a la imatge més significatiu.
  • Permet, en un moment donat, no tenir en compte altres sorolls que no es donen, o es donen de manera poc significativa a l’escena.

És a dir, en funció del tipus d’il·luminació de l’escena, ens podem trobar amb un o diversos tipus de soroll (Diffuse, Specular, Transmission…). Així, es poden ajustar únicament aquests paràmetres i deixar els altres a valors més baixos, i alleugerir el càlcul.

Interfície i configuració del programari de renderització

Abans de començar a fer proves de renderització (i d’anar ajustant el paràmetres que ens permetran anar polint la renderització final), s’han d’ajustar els paràmetres generals; que definiran, entre d’altres aspectes, la mida i la resolució de la imatge o seqüència final. També podrem ajustar el rendiment en funció de l’ordinador amb què estiguem treballant.

El primer pas serà configurar els menús per a la renderització, dins del programari Autodesk Maya. Anirem al Menu Set i escollirem l’opció Rendering (vegeu la figura).

Figura Configuració dels menús per a la renderització a Autodesk Maya

Això farà aparèixer, dins del Menu Bar, els menús relatius al procés de renderització; des d’aquesta secció, podem controlar-ne els paràmetres (vegeu la figura).

Figura ‘Render Menu Bar’, on trobarem totes les eines endreçades per apartats

Per accedir al menú Render Settings podem fer-ho des de Render/ Render Settings (vegeu la figura). O bé, clicant a la icona Render Settings que hi ha a Status Line (vegeu la figura).

Figura Podem accedir als ‘Render Settings’ des del menú ‘Render’
Figura També podem accedir als ‘Render Settings’ des de ‘Status Line’

Qualsevol de les dues opcions obrirà la finestra flotant amb les opcions de renderització (vegeu la figura). Dintre d’aquesta finestra, tenim diferents apartats relatius a diferents aspectes de la renderització. Podem escollir quin motor de renderització volem fer servir, en cas que tinguem diversos motors instal·lats com a plug-ins (vegeu la figura). En el vostre cas fareu servir el motor actiu per defecte, que es Arnold.

Figura Opcions de renderització organitzades per pestanyes
Figura Escollir el motor de renderització

Arnold, un motor flexible, ràpid i robust

Un cop hem triat Arnold com a motor de renderització, dins d’Autodesk Maya, veureu una finestra amb diverses pestanyes; aquestes us permetran, entre d’altres:

  • Establir uns paràmetres generals pel que fa al format de sortida i resolució d’imatge que volem; així com quina ha de ser la localització on volem guardar els frames de la renderització (pestanya Common).
  • Configurar els recursos de hardware, per tal d’optimitzar el rendiment de l’ordinador (pestanya System).
  • Determinar la qualitat del mostreig i de la llum (pestanya Arnold Render).

Arnold té com a principals característiques l’optimització del seu algoritme, que el fa més ràpid en les mateixes condicions de qualitat que d’altres motors. Tanmateix, és un motor robust que suporta càlculs extensius i exigents.

Pestanya 'Common', característiques generals de la imatge

El que farem en primer lloc és donar un nom a la imatge. Per fer-ho, anireu a la pestanya Common, apartat File Output, a la secció File name prefix (vegeu la figura). A partir d’aquest moment, si teniu fet correctament el Set Project, en el moment que feu una renderització, aquesta es guardarà de forma automàtica a una carpeta /tmp, dintre de la carpeta Images del projecte amb el nom que li heu donat.

'Set Project'

El Set Project és, una vegada obert Maya, des del menú File/Set Project, dirigir el programa a la carpeta del projecte on estem treballant, per tal que les escenes, textures, renderitzacions… es guardin al lloc correcte i siguin fàcils de localitzar.

Carpeta /tmp

En el moment que feu una renderització, aquesta es guardarà de forma automàtica a una carpeta /tmp, dins d’una ruta semblant a E:l\IOC\AOVs_3\images\tmp. Aquesta carpeta amb aquest nom la crea de forma automàtica Maya, tot i que es pot personalitzar on volem guardar les renderitzacions.

Figura Donar un nom a la imatge

A continuació, a la secció Image Format, escollireu el format d’imatge més adient, per al destí final de la renderització; com ara una composició, una animació, una impressió… (vegeu la figura). A la secció Format, podreu escollir la profunditat de color (vegeu la figura). La secció Color Space, en principi, la deixareu com ve per defecte, amb l’opció Use View transform, que ens mantindrà l’espai de color en sRGB.

Figura Escollir el format d’imatge
Figura Escollir la profunditat de color

La secció Frame/Animation ext ens permet configurar la nomenclatura amb què es guardarà cada frame durant el procés de renderització; per tal de mantenir un alt nivell d’organització del projecte (vegeu la figura). A continuació, tenim l’opció per definir quins seran, en el cas d’una animació, els frames que volem renderitzar. Podem establir tot el Timeline, o bé alguns frames concrets (vegeu la figura).

Figura Anomenar l’arxiu
Figura Establir el ‘Timeline’ o si la renderització és un únic ‘frame’

En una escena podem tenir més d’una càmera i, a l’hora de fer la renderització, haureu d’escollir quina és la que voleu fer servir. Podeu escollir-la desplegant el menú de la secció Renderable camera, on sortiran llistades totes les càmeres de l’escena (vegeu la figura).

Figura Establir la càmera que voleu renderitzar

A la secció File Size heu d’escollir la resolució de la renderització; podem definir un format personalitzat (vegeu la figura), o bé escollir entre alguns dels presets dels formats més habituals (vegeu la figura).

Figura Escollir la resolució de la renderització
Figura Opció d’escollir entre alguns dels ‘presets’

Pestanya 'System', optimitzar temps i rendiment

La pestanya System ens permet establir una sèrie de paràmetres per tal d’optimitzar una mica els temps de renderització i el rendiment del nostre ordinador (vegeu la figura). La primera cosa que heu de fer és desactivar l’opció Progressive Refinement, que està activada per defecte. Aquesta opció fa uns precàlculs de renderització que n’augmenten el temps; en principi, per fer les renderitzacions prèvies de prova, podem obviar-los (vegeu la figura).

Figura La pestanya ‘System’ de ‘Render Settings’
Figura Desactivar l’opció ‘Progressive Refinement’

A continuació, aneu a l’opció Autodetect Threads, de la secció Render Settings, que està activa per defecte, i el que fa és fer servir el 100% de la potència de càlcul de l’equip per a la renderització, ja que acostuma a ser una bona pràctica deixar algun dels nuclis del processador lliures; ja sigui per a altres aplicacions o per evitar el sobreescalfament del processador, que podria fer que la renderització finalitzés de forma inesperada abans d’haver acabat el càlcul de l’escena. Així doncs, desactiveu aquesta opció (vegeu la figura). A sota hi trobareu l’opció Threads; hi heu d’escriure ”-1”, per tal que Arnold deixi lliure un nucli dels que incorpori l’equip, a l’hora de renderitzar (vegeu la figura).

Figura Desactivar l’opció ‘Autodetect Threads’
Figura ‘Render Settings’. Ajustar el valor de ‘Autodetect Threads’

Pestanya 'Arnold renderer', la qualitat de l'arxiu de sortida

A Arnold, els paràmetres de qualitat de la llum s’ajusten des de les mateixes llums de l’escena. Això, tot i ser un avantatge, implica que pots tenir llums de qualitat a l’escena, però, si els ajustos de sampling de la pestanya Arnold Renderer no són correctes, l’escena quedarà pobrament enregistrada, tindrà soroll.

Dins de la finestra Render Settings, trobareu la pestanya Arnold Render, que inclou, entre d’altres, les opcions de Clamping, Filter, Ray Depth, Environment, Motion Blur… I les opcions de Sampling, en les quals us heu de fixar especialment (vegeu la figura).

Figura Render Settings. Valor del mostreig per cada paràmetre de la renderització

Opcions de 'sampling'

El sampling és un mostreig de la imatge, per tal d’optimitzar els temps i la qualitat de la renderització. Bàsicament consisteix a fer que el motor calculi un nombre de mostres determinat, pels rajos per píxel llençats des de la càmera, en funció del nivell de precisió, qualitat i netedat de la imatge requerida. Com més rajos, millor serà el mostreig, més precís el càlcul i més qualitat tindrà la renderització, però també serà més llarg el temps de renderització.

Per fer les renderitzacions de prova prèvies a la versió final, s’acostuma a mantenir els valors que venen per defecte o, fins i tot, més baixos, ja que, conforme aquests augmenten, els temps de renderització s’allarguen exponencialment.

Us heu de fixar, en un primer moment, en els tres primer paràmetres, ja que són els de caràcter més general: Camera (AA), Diffuse i Specular (vegeu la figura).

Figura ‘Render Settings’. Els paràmetres ‘Camera (AA)', ‘Diffuse’ i ‘Specular’

El primer d’ells, Camera (AA), defineix el nombre de rajos que s’envien des de la càmera a l’escena, per tal (com hem dit abans) de prendre mostres amb les quals fer el càlcul. Aquí teniu un exemple de l’efecte que té sobre la imatge el valor que establim en aquesta secció:

  • Amb un Camera (AA) de 2, el temps de renderització és gairebé instantani (depenent de la mida de la imatge, i la potència de l’equip), però es genera molt soroll (vegeu la figura).
Figura ‘Render Settings’. El paràmetre ‘Camera (AA)' amb un valor 2
  • Si augmentem aquest valor de Camera (AA) a 4, el nivell de soroll de la imatge millora; però també augmenta el temps de renderització (vegeu la figura).
Figura ‘Render Settings’. El paràmetre ‘Camera (AA)' amb un valor 4
  • Si apugem una mica més aquest valor, per exemple a 6, veureu que, tot i que millora el nivell de soroll de la imatge, hi ha zones, com l’ombra sota els objectes (vegeu la figura), on encara s’aprecia un cert nivell de soroll i, encara que augmentem el mostreig d’AA, no millora de forma notable.
Figura ‘Render Settings’. El paràmetre ‘Camera (AA)' amb un valor 6

En aquelles zones on la llum és més difusa, degut al rebot dels raigs de llum, les imatges necessiten més mostres, per tal de refinar el resultat i eliminar aquest soroll que hi ha a zones com les ombres. Per a aquest tipus de zones fareu servir el valor Diffuse, que es defineix com el nombre de rajos que es tenen en compte per calcular la llum indirecta, generada pel rebot dels rajos de llum:

Augmentar el nombre de mostres

El nombre de mostres és el que establim quan variem els valors del paràmetres de la pestanya Arnold Renderer (Camera AA, Diffuse, Specular…), i en situacions on la llum no és directa; com per exemple la llum del sol quan entra per una finestra: els raigs de llum es dispersen i reboten sobre les superfícies que hi hagi al voltant, i es tornen a dispersar i rebotar. Així, en aquesta situació s’amplia el nombre de mostres per tal de copsar un nombre significatiu d’aquests rebots, és a dir, per tal de reduir el soroll a la imatge.

  • Si, per exemple, apugeu el valor a 2, obtenim unes ombres més suaus i amb menys soroll a la nostra escena; a expenses, és clar, d’augmentar el temps de renderització (vegeu la figura).
Figura ‘Render Settings’. El paràmetre ‘Camera (AA)' amb un valor 6 i ‘Diffuse’ 2
  • Si apugem el valor de Diffuse a 4, aconseguim unes zones d’il·luminació difusa prou netes, però augmentant exponencialment el temps de renderització (vegeu la figura).
Figura ‘Render Settings’. El paràmetre ‘Camera (AA)' amb un valor 6 i ‘Diffuse’ 4

El següent paràmetre és l’Specular, que determina el nombre de mostres que s’han de prendre dels reflexos especulars, per tal de reduir el soroll en aquestes zones. Per norma general, el valor per defecte es 2 i acostuma a funcionar prou bé (vegeu la figura). Però hi ha situacions on aquest valor s’ha d’augmentar; de nou, a expenses d’augmentar també el temps de renderització (vegeu la figura).

Figura Valor de l’‘Specular’ 2, a la pestanya ‘Arnold Renderer’
Figura Valor de l’‘Specular’ 6, a la pestanya ‘Arnold Renderer’

A continuació, trobem el valor Transmission. Les irregularitats a nivell microscòpic, en les superfícies dels objectes, s’anomenen microfacets i fan que els rajos de llum es dispersin. El càlcul d’aquesta dispersió pot generar soroll a la imatge per manca de mostreig (vegeu la figura). En aquest casos, el paràmetre Transmission us permetrà controlar el valor de mostreig. El soroll de Transmission es pot confondre amb el soroll generat per l’Specular (per aquest motiu, malauradament, de vegades s’han de fer proves; per exemple: s’abaixa el valor de Transmission i s’apuja el d’Specular i es fa una renderització de prova; si el soroll disminueix, vol dir que és aquest el valor on s’ha d’incidir; en cas contrari, abaixaríem el valor de l’Specular i apujaríem el de Transmission i tornaríem a fer una renderització de prova). En principi, com en el cas anterior, el valor per defecte, que és 2, acostuma a funcionar bé en la majoria dels casos (vegeu la figura).

Figura Valor del paràmetre ‘Transmission’ 2, a la pestanya ‘Arnold Renderer’
Figura Valor del paràmetre ‘Transmission’ 6, a la pestanya ‘Arnold Renderer’

El següent paràmetre és el SubSurface Scattering (SSS), que s’encarrega d’establir el nombre de mostres necessàries, per fer el càlcul de com la llum es reflecteix o penetra dispersant-se; en un cas molt concret, com són les superfícies translúcides (com, per exemple, la cera o la pell). En aquest cas, sí que, en funció de les necessitats de l’objecte, s’hauran de fer proves per tal de definir correctament aquest valor, i no confondre’l amb el soroll provinent d’altres paràmetres. Com passa anteriorment: a valors més alts, més temps de renderització.

El paràmetre Volume Indirect controla el mostreig per tal de calcular correctament la dispersió de la llum en situacions on tenim fum, llums volumètriques, FX… Aquest valor està lligat al paràmetre Volume, de la secció Ray Depth, que ha de tenir com a mínim un valor 1 perquè el càlcul es produeixi (vegeu la figura).

Figura Paràmetre ‘Volume Indirect’, utilitzat per a llums volumètriques i VFX com fum o explosions

Aquests són els principals Render Settings que haureu d’ajustar en la majoria de situacions. Tot i que, depenent de l’escena, les condicions de llum i els shaders amb els quals esteu treballant, podeu necessitar alguns paràmetres més específics.

Opcions de 'Clamping'

En els paràmetres de la pestanya Arnold Renderer, també trobem la secció Clamping (vegeu la figura). Aquesta opció permet atenuar l’aparició de píxels brillants que es mouen, de frame a frame, en una animació.

Figura Opcions de ‘Clamping’, per tal de netejar l’aparició de píxels brillants

Opcions de 'Filter'

La secció Filter ens permet escollir un dels diferents sistemes de subsampling. El subsamplig és una forma de fer mitjana dels valors de cada mostra; fet que genera un cert blur a la imatge (desenfocament). Per tal de millorar l’Anti Aliasing (desenfocament mitjançant filtres de mostreig), la documentació d’Arnold recomana fer servir el filtre Gaussian o el Blackman-Harris (vegeu la figura).

L’aliasing és l’efecte de dents de serra a la vora dels objectes, produït a les imatges digitals.

Figura El ‘Render Filter’. Opcions de ‘subsampling’ per tal de refinar més el resultat final

Opcions de 'Ray Depth'

El següent apartat és Ray Depth, que ens permet establir la quantitat de rebots de cada un dels rajos (Diffuse, Specular, Transmission, Volume). Això genera imatges amb il·luminacions més realistes, però també amb temps de renderització més llargs (vegeu la figura).

Figura Opcions de ‘Ray Depth’, per definir el nombre de raigs que es tenen en compte en el càlcul

Per tal d’intentar la millor renderització en el menor temps possible, acostuma a ser una bona pràctica compensar el valor de Camera Sampling (AA) (de la secció Sampling) amb el del paràmetre on tenim el soroll.

Opcions d''Environment'

Des de la secció Environment podem assignar dues opcions a l’escena:

  • Atmosphere, on afegim a l’escena un shader que simula un tipus de dispersió de la llum; Arnold ens presenta dues variants:
    • L’aiAtmosphere Volume, que simula la dispersió que es produeix a les capes altes de l’atmosfera, on aquesta és més prima, fet que produeix ombres volumètriques i feixos de llum.
    • L’aiFog, que simula les condicions de llum que es produeixen a la boira; és a dir, que els objectes apareixen més difusos en funció de la distància de càmera i es dona una situació lumínica de baix contrast.
    • Background (Legacy), que ens permet assignar un fons a l’escena; que pot ser un shader o una textura.

Opcions de 'Motion Blur'

L’apartat Motion Blur permet afegir, al moviment de les vostres escenes, l’efecte del mateix nom, que és el rastre que deixa el moviment d’un objecte en una seqüència animada (vegeu la figura).

Figura Opcions de la secció ‘Motion Blur’

Opcions de 'Lights'

L’opció Lights ens permet controlar com Arnold tindrà en compte les llums de l’escena a l’hora de fer els càlcul de renderització. Podem definir un llindar, per sota del qual el motor no tindrà en compte aquestes llums. Això permet accelerar una mica la renderització.

Una altra opció interessant d’aquesta secció és la possibilitat de vincular llums i ombres a objectes de l’escena; per tal que només afectin aquests objectes (vegeu la figura).

Figura Opcions de la secció ‘Lights’

Opcions de 'Textures' i 'Subdivision'

Arnold, internament, no treballa amb formats d’imatge o espais de color no-linears (com ara el sistema de color sRGB dels monitors); per fer-ho, recorre a l’Hypershade de Maya. Dit d’una altra manera, l’algoritme d’Arnold treballa amb dades linears, i després, si cal, en fa la conversió.

La manera com Arnold treballa amb les textures és una de les característiques tècniques diferenciades d’aquest motor. Així, dintre de la secció Textures tenim activada per defecte l’opció Auto-convert Textures to TX, que automàticament converteix els arxius d’imatge a format .tx. En principi, aquesta és la millor manera de treballar amb Arnold, ja que, en cas contrari, les textures es veurien de forma incorrecta al renderitzador. Tanmateix, tenim la possibilitat de fer aquesta conversió de forma personalitzada, des de les opcions d’aquesta secció (vegeu la figura).

Figura Opcions de ‘Textures’

Trobareu més informació sobre espais de color, textures, shaders, així com de l’ús de l’Hypershade de Maya, en aquest mateix apartat.

Finalment, tenim la secció Subdivision, que controla el nivell de tessel·lació dels objectes; és a dir, com es suavitzen els models 3D durant la renderització.

Tipus d'il·luminació

Arnold té el seu propi joc de llums que us permetrà il·luminar l’escena que hàgiu de renderitzar (vegeu la figura); consta de les següents llums:

Figura Arnold Lights
  • Area Light: aquesta llum tracta de simular la llum provinent d’una finestra, o les finestres dels estudis fotogràfics. Per això, inicialment són punts de llum en forma de quadrat, tot i que poden també adoptar altres formes com cilindres i discs.
  • Skydome: aquesta llum simula la il·luminació provinent d’una semiesfera, s’acostuma a fer servir per a exteriors. Se li poden assignar imatges HDRI per fer-la servir com a IBL (Image Based Lightning).
  • Mesh Light: en situacions on les formes de les altres llums no són el que es necessita, podeu fer servir la Mesh Light, que ens permet convertir qualsevol malla 3D en un punt de llum.
  • Photometric Lights: les llums fotomètriques ens permeten carregar perfils Ies (que són els perfils d’il·luminació que faciliten els fabricants de sistemes d’il·luminació al món real, com Phillips, Osram, Ercro, i que simulen els seus productes als renderitzadors).
  • Light Portal: es fa servir per il·luminar entrades de llum, com ara finestres; també s’utilitza per reduir el nivell de soroll dels Skydome.
  • Physical Sky: es tracta d’un shader que, per si mateix, no pot il·luminar l’escena. Per fer-ho, caldrà associar-lo a un Skydome, des de l’Hypershade (vegeu la figura).
Figura Associació del ‘shader’ ‘Physical Sky’ a un ‘Skydome’

Carregar perfils d'il·luminació

Per tal de poder fer renderitzacions simulant il·luminacions com les de Photometric Lights, es poden carregar perfils des d’un visualitzador de perfil, a pàgines com Visual-3D (/bit.ly/2Elejwh).

A l’opció Background de la secció Environment, dels Render Settings (vegeu la figura), podem accedir a uns paràmetres que ens permetran simular condicions de llum (vegeu la figura), tenint en compte condicions atmosfèriques (Turbidity, Ground Albedo, Sky Tint, Sun Tint), així com astronòmiques o relatives a la posició solar (Azimuth, Elevation).

Figura Des de l’opció’Background (Legacy)' podem accedir als paràmetres atmosfèrics del ‘shader’
Figura Paràmetres atmosfèrics del ‘shader’ a l’‘Attribute Editor’

Aquest shader ens dona una il·luminació molt natural, i funciona molt bé per a situacions d’exteriors ja que ens dona la capacitat de simular moments del dia o de l’any (vegeu la figura i figura)

Figura Renderització d’una escena amb el ‘Physical Sky’ aplicat
Figura Diferents condicions de llum variant els paràmetres atmosfèrics del ‘shader’

Alhora, Arnold també pot fer servir algunes de les llums estàndards de Maya (vegeu la figura); amb l’excepció d’Ambient Light i Volume Light.

Figura Opcions de l’apartat ‘Lights’, a Maya

Al següent videotutorial podreu veure un exemple de com establir uns paràmetres bàsics per la realització del render d´una escena senzilla.

V-Ray, un motor precís per a acabats fotorealistes

En aquest punt tractarem, de manera molt general, un altre motor de renderització de característiques similars a Arnold; es tracta de V-Ray, i es pot afegir com a plug-in a Maya. Si us registreu a la pàgina de Chaos Group (www.chaosgroup.com), podreu descarregar-vos una versió de prova.

En principi, l’èxit d’Arnold recau en que és fàcil d’adaptar a qualsevol producció i és ràpid. V-Ray, en canvi, és un motor de renderització que es caracteritza per la seva potència de càlcul, i la possibilitat de treballar amb diferents algoritmes (Brute Force, Photon Map, Irradiance Map, Light Cache). Així, gràcies a la seva precisió en els càlculs, aconsegueix uns acabats fotorealistes d’una gran qualitat, però també és més lent.

Eines pròpies i estàndard

Igual que en el cas d’Arnold i de tots el motors de renderització, V-Ray també treballa amb els seus propis materials i llums, encara que pot fer servir alguns dels materials estàndard o llums pròpies de Maya.

Una vegada instal·lat V-Ray, ens hem d’assegurar que està carregat. Per fer-ho, hem d’anar al menú Windows/ Settings/Preferences / Plug-in Manager (vegeu la figura). Aquest us obrirà una finestra on comprovareu que estiguin seleccionades totes les opcions de V-Ray (vegeu la figura).

Figura Càrrega de V-Ray des del ‘Plugin Manager’ de Maya.
Figura Activació de V-Ray al ‘Plugin Manager’ del Maya

Heu de prémer el botó Refresh i, seguidament, obriu la finestra de ‘Render Settings’. Des de la secció Render Using, seleccioneu V-Ray (vegeu la figura). Com podeu comprovar, una vegada s’obren les opcions de la secció Common de V-Ray, no es veuen massa diferenciades respecte a les d’Arnold (vegeu la figura). Des d’aquí, podeu establir el nom de l’arxiu, el format de la imatge, la càmera de renderització (en cas de tenir-ne diverses), la resolució…

Figura Selecció de V-Ray al ‘Render Settings’
Figura Pestanya ‘Common’ de V-ray

Passeu ara a la secció V-Ray. La primera opció que trobareu és l’elecció entre la CPU o la GPU, com a component que farà els càlculs de la renderització (vegeu la figura).

Figura Selecció de la CPU o GPU com a unitat de càlcul

Seguidament, teniu les seccions Image Sampler i DMC Sampler, que és l’equivalent a la secció Sampling d’Arnold. A V-Ray, Image Sampler s’encarrega del càlcul del raigs primaris, que són el que es llencen des de la càmera a l’escena; mentre que la secció DMC Sampler calcula els rajos rebotats per la superfície dels objectes a l’escena (vegeu la figura).

Figura Pestanya V-Ray al ‘Render Settings’

Finalment, trobem la secció Color Mapping, que controla si estem treballant a sRGB o Linear (vegeu la figura).

Figura Selecció de l’espai de color (‘Color Mapping’)

V-Ray, pestanya 'Global Illumination'

Des de la pestanya Global Illumination (GI) podreu controlar els paràmetres relatius a les llums indirectes; és a dir, llums difuses, ombres, càustiques… (vegeu la figura). Com Arnold, V-Ray també fa servir l’algoritme Brute Force per fer el càlcul de renderització; però, en l’opció Engine, també podem escollir-ne d’altres (vegeu la figura).

Figura Pestanya ‘Global Illumination’
Figura Selecció de l’algoritme de càlcul

En principi, aquests algoritmes són més ràpids, però menys precisos quant al càlcul; tot i que pel que fa al resultat final, es poden obtenir molt bons resultats ajuntant els seus paràmetres degudament.

A continuació, teniu la secció Setting, que es on podem optimitzar el rendiment del hardware, on podem determinar quanta memòria o quants nuclis del processador volem dedicar a la renderització (vegeu la figura); és similar a les opcions que trobem al System d’Arnold.

Figura Opcions d’optimització del rendiment del ‘hardware’

Tenim també la secció Overrides, que ens permet deshabilitar característiques d’elements de l’escena, sense haver d’anar fent-ho de forma individual; per tal d’optimitzar els temps de renderització, o fer diagnosi de l’escena (vegeu la figura)

Figura Pestanya ‘Overrides’ a V-Ray

V-Ray, els 'Render Elements'

Les opcions de la secció Render Elements us permetran definir en quins Render Passes voleu descompondre la imatge final, per tal d’editar-la després en programes com Photoshop si es tracta d’una única imatge, o After Effects o Nuke, si es tracta d’una animació.

Els passes o opcions més habituals (figura) són Diffuse, per fer difuminar els objectes; Lightning, per donar-los llum; Shadow, per donar-los ombres; Specular, per donar-los reflexos lumínics; i l’Object ID, que serveix per fer màscares de cada objecte, per tal de treballar-los per separat a la composició, sense haver de fer màscares manuals (vegeu la figura, figura, figura, figura i figura).

Figura V-Ray, opcions de la secció ‘Render Elements’

Trobareu més informació dels Render passes a l’apartat “Realització de la separació de capes i efectes de renderització”, d’aquesta mateixa unitat.

Figura L’opció ‘Diffuse Pass’ només té en compte el color que reflecteixen els objectes
Figura El ‘Lightning Pass’ ens mostra la interacció de la llum amb els objectes
Figura El ‘Shadow Pass’ ens permet visualitzar la contribució de les ombres a la renderització

Figura ‘Specular Pass’ separa els reflexos especulars que generen les diferents superfícies
Figura El resultat final és la combinació que resulta dels ‘Render Passes’ anteriors

V-Ray, 'Interactive Photorealistic Render' (IPR)

La secció IPR (Interactive Photorealistic Render) és una de las característiques de Maya que ens permet veure de forma immediata qualsevol canvi que fem a l’escena. Podem controlar els seus paràmetres des de l’apartat IPR. Aquests paràmetres fan referència a si volem que el càlcul el faci la CPU o la GPU, la resolució de la renderització, el nombre de raigs que volem al càlcul, etc., per tal de definir el nivell de precisió que volem, sense afectar massa el rendiment de l’equip (vegeu la figura).

Figura V-Ray, ‘Interactive Photorealistic Render’ o IPR

Al següent videotutorial podreu veure un exemple de com establir uns paràmetres bàsics per la realització del render d´una escena senzilla, fent servir un altre motor de render, en aquest cas el VRay.

Espais de colors, textures i materials

Un cop tenim clars els Render Settings, és el moment de començar a explorar els Render Concepts. A les escenes que haureu de renderitzar, hi haurà diferents elements que participaran al càlcul del motor, com ara llums, shaders, textures… I és possible que cadascun d’aquest elements treballi a diferents espais de color.

En termes generals, podríem dir que hi dos espais de color:

  • El linear, que bàsicament és un espai de color on cada número, que representa un valor lumínic, té amb aquest una relació “1:1”. Això vol dir que si doblem aquest número, tindrem el doble d’intensitat lumínica. Des d’un punt de vista de processament de la informació, aquest sistema és òptim, però la visió humana no és capaç de copsar tota aquesta informació, per això van aparèixer espais de color non linears.
  • El non linear, també conegut com a logarítmic. Entre aquest espai de color, el més utilitzat és el sRGB, ja que és el que fan servir majoritàriament els monitors. Aquests espais de color apliquen una correcció, anomenada Gamma, als valors lineals; per poder comprimir-los i així visualitzar aquests valors lumínics.

Tot i que, internament, els motors treballen a l’espai de color linear, pel que fa als arxius de textures, ens podem trobar alguns arxius d’imatge (com els ”.jpg”, ”.jpg”, ”.tga”.) que estan en espais de color non linear (com el sRGB); o d’altres que sí treballen en linear (com els arxius ”.EXR”). Cal tenir-ho en compte per tal d’evitar renderitzacions incorrectes.

En el cas del motor de renderització Arnold, si tenim textures amb el perfil de color sRGB, quan les assignem a un shader, automàticament es generen un fitxers ”.Tx”, que interpreten la informació de color en l´espai Linear.

Els 'shaders', simulació de materials

Cada motor de renderització, tot i que en alguns casos poden acceptar-ne d’aliens, acostumen a treballar amb els seus propis materials o shaders, que simulen les propietats dels materials físics davant la llum. Dit d’una altra manera, aquests shaders tenen informació, entre d’altres, de color, especularitat, refracció, reflexió… Poden ser shaders molt senzills o poden simular comportaments de la llum molt complexos (efectes de boira, foc o fum). L’editor de materials per defecte d’Autodesk Maya és Hypershade (vegeu la figura).

Figura ‘Hypershade’, l’editor de materials de Maya

Què és un 'shader'?

Un shader és un script, una peça de codi, que entre d’altres possibilitats (hi ha shaders de càmera, per exemple) simula les característiques físiques dels materials, en les representacions gràfiques d’aquests (no ho hem de confondre amb una capa). És a dir, detalla com ha de reaccionar una superfície a la llum, encara que també es poden aplicar per simular efectes de llum (Volume light). Trobareu més informació a: goo.gl/TM1fFv.

Des d’Hypershade podeu ajustar els valors dels paràmetres que defineixen el comportament del material en el moment de rebre la llum (vegeu la figura i figura).

Figura ‘Hypershade’. Paràmetres relatius a les característiques del material
Figura ‘Hypershade’. ‘Material Viewer’, on podem veure l’efecte de les variacions als paràmetres del material de forma interactiva

Per exemple, si canviem el valor del paràmetre Metalness, el material canvia i ja no sembla un metall (vegeu la figura i figura).

Figura ‘Hypershade’. Paràmetre ‘Metalness’
Figura ‘Hypershade’. Efecte a la superfície de la variació al paràmetre ‘Metalness’

Alhora, es pot canviar el valor de Roughness, i l’especularitat de la superfície de l’objecte varia. Si aquest valor és més proper a “1”, l’objecte és menys reflexiu (vegeu la figura i figura). I com més proper a “0”, més especular es torna l’objecte (vegeu la figura i figura).

Figura ‘Hypershade’. Paràmetre ‘Roughness’
Figura ‘Hypershade’. Efecte a la superfície de la variació al paràmetre ‘Roughness’
Figura ‘Hypershade’. Tornem a variar el paràmetre ‘Roughness’
Figura ‘Hypershade’. Efecte a la superfície de la variació al paràmetre Roughness, fent el material més reflexiu

Jugant amb els paràmetres de l’apartat Transmission, que controlen la capacitat de les superfícies per deixar passar la llum, travessant-les, podem treballar amb superfícies com, per exemple, el vidre o l’aigua (vegeu la figura i figura).

Figura ‘Hypershade’. Paràmetre ‘Transmission’, que permet l’ajust de superfícies translúcides
Figura Efecte a la superfície de la variació al paràmetre ‘Transmission’

En aquest cas, també podem tenir en compte el gruix de l’objecte. Des dels apartats Thin Film i Geometry. Des de thin Film, també podem modificar l’IOR, l’índex de refracció de la nova superfície (vegeu la Ffigura i figura).

Figura ‘Hypershade’. Els paràmetres ‘Thin Film’ i ‘Geometry’ permeten definir el gruix d’un objecte transparent, sense afectar-ne la geometria
Figura ‘Hypershade’. Efectes a la superfície, després de variar els paràmetres ‘Thin Film’ i ‘Geometry’

Mapes per a 'shaders'

Per tal de reforçar, o per adaptar, el shader a les necessitats específiques de l’objecte, podem assignar diferents tipus de mapes als shaders de Maya. L’ús d’aquests mapes li permet reproduir amb més fidelitat l’aparença d’un material concret. Els mapes més habituals són els següents:

  • Diffuse Maps: es fan servir per “pintar” l’objecte, ja sigui amb colors, textures, o patrons (vegeu la figura).
Figura Exemple de ‘Texture Map’
  • Specular Maps: són imatges en escala de grisos, que indiquen al shader el nivell d’especularitat de les zones de l’objecte (vegeu la figura).
Figura Exemple d’‘Specular Map’
  • Bump Maps: són mapes en escala de grisos que simulen irregularitats a la superfície dels objectes, mitjançant una tècnica que desvia les normals de la geometria segons com hi incideix la llum de l’escena (vegeu la figura). Un cas especial de bump Map és els displacement map, que en varia efectivament la geometria del objecte.
Figura Exemple de ‘Bump Map’
  • Normal Maps: són mapes que també simulen irregularitats i detalls a la superfície d’un objecte sense canviar la seva geometria, partint, en principi, d’una versió en alta resolució de l’objecte (anomenada Low Poly); tot i que es poden generar Normal Maps a partir d’una imatge (vegeu la figura).
Figura Exemple de ‘Normal Map’
  • Ambient Occlusion Maps: també coneguts com AO Maps, són mapes que generen les ombres difuses a zones on la llum arriba de manera indirecta, com per exemple cavitats a la superfície de l’objecte, o les zones on uns objectes reposen sobre d’altres (vegeu la figura).
Figura Exemple d’‘Ambient Occlusion Map’
Anar a la pàgina anterior:
Referències
Anar a la pàgina següent:
Activitats