# RenderMan

RenderMan és tant un programari com una API desenvolupada per Pixar per a xarxes de renderització distribuït en complexes imatges tridimensionals que és emprat en granges de renderitzat amb molts equips client. Aquests equips client no requereixen targetes gràfiques 3D, encara que poden beneficiar-se d'aquestes si estan presents. En 1988, RenderMan va establir un estàndard obert per descriure dades 3D: l'especificació de la interfície RenderMan (RISpec). Des de llavors, Pixar ha desenvolupat contínuament RenderMan per superar els límits de la tecnologia central i, al mateix temps, ajudar a adoptar i promoure nous estàndards per a la creació d'efectes visuals i animació d'alta gamma. En els continus esforços d'avui, RenderMan admet molts estàndards oberts, entre ells: Alambí, OpenColorIO, OpenEXR, OpenSubdiv, OpenVDB, OSL, RSL, SeExpr, Ptex, UDIM, USD.

## Servidor RenderMan Pro

PhotoRealistic RenderMan (PRMan) és un sistema de renderitzat que genera imatges bidimensionals d'alta qualitat a partir de la informació de descripció d'escenes en 3D, normalment generada per un complement a una aplicació de creació de contingut com Autodesk Maya. Les descripcions d'escena es creen a través de la interfície RenderMan i generalment estan compostes per:
* Una descripció de la geometria present en l'escena com a teteres, alienígenes i esferes,
* Referències a funcions que descriuen com s'ha d'ombrejar la geometria creant coses com a vidre, fusta i pell,
* Especificacions de fonts de llum (tipus, posició i orientació)
* Una especificació de la càmera virtual a través de la qual s'ha de representar la imatge resultant.
La descripció de l'escena també pot especificar el destí de la imatge de sortida (per exemple, un arxiu o un búfer de quadres), així com diversos paràmetres que controlen el funcionament del sistema de renderitzat: quan esforç dedicar per evitar l'aliàsing, per exemple.
Les escenes no necessiten ser creades a mà utilitzant un editor, encara que poden ser llegides per humans. Es proporcionen complements per a aplicacions populars de creació de contingut per a un flux de treball eficient i amigable amb l'artista. El conjunt de complements de RenderMan permet a un artista centrar-se en la creació en lloc dels detalls tècnics. La documentació per a RenderMan cobreix moltes d'aquestes característiques i fluxos de treball en forma de tutorials i explicacions, i està en constant expansió.

## Procés

El renderitzat d'escenes i animacions raytracing que contenen:
* Reflexió/refracció òptica.
* Llums fotomètriques.
* Pèl.
* Pell.
* Efectes de lent.
Li pot prendre molt temps processar-los a una computadora normal, depenent de la complexitat i la grandària de les imatges individuals. Per a les animacions, el nombre de quadres per segon i el període total de la seqüència d'animació també poden estendre en gran manera el temps de renderització total.
El procés de render es pot accelerar mitjançant la subdivisió individual de les imatges en general, per exemple, fragments de 10 x 10 píxels i distribuir el càlcul de cada fragment a través d'una gran col·lecció d'altres equips client en la xarxa. Per a imatges molt complexes i servidors granja molt grans, els píxels individuals es poden distribuir per ser processats per cada client.
Les empreses i universitats poden utilitzar computadores d'oficina o de laboratori per fer renderitzats nocturns intensos quan els equips es troben inactius. També es pot fer de forma contínua com un procés en segon pla de baixa prioritat en els equips d'oficina i laboratori.

## Història

RenderMan té els seus orígens en la Universitat de Utah durant la dècada de 1970, on el fundador de Pixar Ed Catmull va fer el seu treball de doctorat sobre problemes de renderització. A partir d'aquí, l'escena va canviar a Lucasfilm a Califòrnia, on Catmull i alguns altres investigadors gràfics van arribar per a treballar en programari de gràfics per al seu ús específic en el cinema (una part de Lucasfilm més tard es va convertir a Pixar).
Els investigadors tenien l'objectiu explícit de ser capaços de crear imatges fotorealistes complexes i d'alta qualitat, que eren, per definició, pràcticament indistingibles de les imatges d'acció filmades en viu. Van començar a crear un motor de renderització per ajudar-los a aconseguir aquesta meta que tenia una arquitectura innovadora dissenyada des de zero, amb la incorporació dels coneixements tècnics adquirits a partir de les recerques realitzades al passat tant a Utah com a NY. Loren Carpenter, va implementar peces del nucli del motor de renderització, i Rob Cook, va escriure el subsistema d'ombrejat. Pat Hanrahan va treballar com a arquitecte principal de tot el projecte. L'algorisme de renderitzat es va denominar REYES, un nom amb doble origen. Es va inspirar en Point Reyes, un lloc pintoresc en la costa de Califòrnia que a Carpenter li agradava visitar. Per a l'equip de desenvolupament el nom era també un acrònim de Render Everything You Ever Saw (renderitzà tot el que hagis vist mai) una frase convenient per resumir la seva ambiciosa empresa.
En la conferència SIGGRAPH de 1987, Cook, Carpenter i Catmull van presentar un document anomenat The Reyes Rendering Architecture (L'Arquitectùra de renderitzàt Reyes) que explicava com funcionava el motor de renderitzat. Més tard en el SIGGRAPH en 1990, el llenguatge d'ombrejat va ser presentat en un article titulat A Language for Shading and Lighting Calculations (Un llenguatge per a càlculs d´ombrejat i il·luminació) per Hanrahan i Jim Lawson. En 1989 el programa va arribar a ser conegut com a RenderMan i va començar a tenir una llicència per a efectes visuals en CGI i companyies d'animació. A més, la divisió de Lucasfilm CG va ser escindida en la seva pròpia companyia, Pixar en 1983 i va ser comprat per Steve Jobs en 1986.
Malgrat que l'oferta pública de RenderMan no va ocórrer fins a 1989, el programari s'utilitza internament en Lucasfilm/Pixar molt abans d'açò, per crear efectes visuals de pel·lícules, curts d'animació i anuncis de televisió. En 1982, l'efecte de Gènesi en la pel·lícula Star Trek II: La ira de Khan es va crear usant una versió anterior de RenderMan, com era el cavaller de vidre de la pel·lícula El Jove Sherlock Holmes estrenada l'any 1985.
Avui dia, els principals estudis d'animació i efectes visuals de tot el món utilitzen rutinàriament RenderMan gràcies al seu historial sense igual - és ràpid, estable, eficient quan es tracta de manejar grans escenes amb geometria complexa, les aparences superficials i la il·luminació. L'eixida és una imatge d'alta qualitat, utilitzable per si (per exemple. En pel·lícules de dibuixos animats) o llestos per a la composició amb imatges existents (per exemple, en les pel·lícules d'acció en viu).
Històricament, la primera encarnació de RenderMan va ser com un programa per a Macintosh que s'executa en els processadors Motorola 68000/68030, Sistema 6 i LocalTalk. Els càlculs de la granja de renderització eren mostrats individualment; per exemple, un ràpid Macintosh ES / 30 amb eixida monocromàtica podia participar en la renderització d'imatges a tot color, enviant els resultats de tornada a un Macintosh II més lent però amb capacitat de color.

## Tecnologia

La tecnologia RIS en RenderMan és un paradigma de renderitzat que canvia el joc, un marc altament optimitzat per representar la geometria, el cabell, els volums i la irradiància pesats amb eficiència de classe mundial en una sola passada. Aquesta evolució en la tecnologia ofereix el millor de la seva classe en renderització per a VFX i animació de llargmetratges. Avui RenderMan és l'eina més flexible, potent i confiable per a renderitzar imatges cinemàtiques.
El marc RIS de RenderMan es va dissenyar des del principi per rastrejar els rajos el més ràpid possible. Amb un nou marc que consta d'integradors, BRDF (escrit en C ++) i serveis intel·ligents d'il·luminació, RIS estableix nous estàndards per a la velocitat i l'eficiència de la memòria al renderizar escenes de producció complexes.

## Compatibilitat i hardware

Hardware Requisits UPC (CPU processador) tindre el conjunt d'instruccions: SSE4 introduït el 2007. GPU Ús de la GPU Denoise requereix CUDA 7.0 (capacitat de càlcul 2.0 o posterior) i una targeta gràfica NVIDIA amb suport. Altrament, Denoise recorrerà automàticament a la CPU. Memoria RenderMan necessita un mínim de 4 GB de RAM. Per a millor actuacio recomanem 8G de RAM. La RAM màxima depèn de la complexitat de l'escena. DCC Compatibilitat Maya Compatible amb 2018, 2017, 2016.5, 2016, 2015 Houdini Inclòs amb la versió 15 i més enllà Katana Compatible amb 2.0 a 2.6 Licuadora Compatible amb la versió 2.76 o superior :
| Hardware | Requisits |
| UPC | (CPU processador) tindre el conjunt d'instruccions: SSE4 introduït el 2007. |
| GPU | Ús de la GPU Denoise requereix CUDA 7.0 (capacitat de càlcul 2.0 o posterior) i una targeta gràfica NVIDIA amb suport. Altrament, Denoise recorrerà automàticament a la CPU. |
| Memoria | RenderMan necessita un mínim de 4 GB de RAM. Per a millor actuacio recomanem 8G de RAM. La RAM màxima depèn de la complexitat de l'escena. |

## Terminologia

El nom RenderMan pot causar confusió, ja que s'ha utilitzat per a referir-se a diferents desenvolupaments de Pixar:
* RenderMan Interface Specification (RISpec), especificació tècnica de Pixar per a un protocol de comunicacions estàndard (o interfície) entre els programes de gràfics 3D per computadora i programes de renderització.
* RenderMan Shading Language (RSL), el llenguatge de scripts que especifica tot l'ombrejat que realitza RenderMan. Té una sintaxi similar al C i conté un conjunt de funcions incorporades directament relacionats amb els gràfics i RenderMan.
* PhotoRealistic RenderMan (PRMan), un sistema de programari de renderització RenderMan, és a dir una implementació compatible, desenvolupada per Pixar sobre la base de la seva pròpia especificació.
* RenderMan, també s'utilitza comunament per referir-se a altres motors de rendertizació que compleixen amb l'estàndard RenderMan, com per exemple Pixie.

## RenderMan Interface Specification (RISpec)

És un estàndard entre programes de modelatge i renderització capaços de produir imatges de qualitat fotorealiste. Un programa de renderitzat que implementa la interfície RenderMan difereix d'una implementació d'anteriors estàndards gràfics en què:
* Ha de simular una càmera real i els seus molts atributs, a més de només la posició i adreça de la vista.
* Ha d'acceptar primitives geomètriques corbes de manera que no solament pugui visualitzar amb precisió la geometria bàsica.
* Ha de ser capaç de simular les propietats òptiques de diferents materials i fonts de llum.
Va ser dissenyat de manera que la informació necessària per a especificar una imatge fotogràfica es pot passar a diferents programes de renderitzat de forma compacta i eficient. La interfície en si va ser dissenyada per manejar diferents dispositius de hardware, implementacions de programari i algorismes de representació. La versió de l'especificació actual és la 3.2.1.

## RenderMan Shading Language (RSL)

És un llenguatge d'ombrejat de gran abast que permet als usuaris escriure programes personalitzats anomenats shaders per a definir completament les superfícies i la seva interacció amb les fonts de llum. Aquests shaders es divideix en:

### Shaders de superfície

Maneja el càlcul de color i opacitat de la superfície de les primitives. Avalua la textura, reflexos, refracció, i el model d'il·luminació (Lambert, Blinn, etc.) d'un material. treballen en conjunt amb els shaders de llum per a determinar la quantitat de llum incident sobre la superfície per "il·luminar" l'objecte. També treballen amb els shaders de volum per a determinar quant color volumètric i opacitat s'afegeix al color i l'opacitat final de l'ombrejat de la superfície.

### Shaders de desplaçament

Mou els punts de superfície en temps de render i recalcula noves superfícies normals. Aquests també s'encarreguen de bump mapping amb només recalcular la normal sense moure el punt de la superfície.

### Shaders de volum

Crear efectes volumètrics com boirina atmosfèrica, fum, ombres atmosfèriques, etc., es poden utilitzar de tres maneres: com shaders d'ambient, shaders interiors o shaders exteriors. Un shader d'ambient renderitza els efectes de volum entre la càmera i els punts de la superfície visible (al llarg dels rajos de la càmera). Els shaders interiors són avaluats a l'interior dels objectes parcialment transparents mentre que els shaders exteriors s'avaluen quan els rajos es veuen reflectits o refractats entre objectes i donen l'atenuació atmosfèrica.

### Shaders de llum

Són responsables dels càlculs d'ombra ja sigui accedint a mapes d'ombres precalculades o calculant ombres directament per raytracing. Poden ser cridats durant l'execució de shaders de superfície i shaders de volum d'atmosfera per a determinar la intensitat i el color d'il·luminació del punt d'ombreig actual.

## PhotoRealistic RenderMan (PRMan)

És un motor de renderitzat integrat d'alt rendiment utilitzat per a abordar complicades escenes 3D. Ofereix resultats impressionants i actualment es considera un motor híbrid que barreja els últims avanços en el traçat de rajos, amb les àrees tradicionals que han sigut els punts forts. És utilitzat per algunes institucions educatives per provar nous conceptes en CGI.

## RenderMan

Hi ha múltiples motors de renderització que es basen en les RISpec, tant comercials com el propi Renderman Pro Server,7 o 3 dlight, així com de codi obert Pixie RenderMan.

## Referències

* Raghavachary, Saty. «A Brief Introduction To RenderMan» (HTML) (en inglés). USA: Pixar. Consultado el 13 de octubre de 2014.
* Volver arriba↑ «The RenderMan Interface Specification» (HTML) (en inglés). USA. Consultado el 12 de octubre de 2014.
* ↑ Saltar a:$^a$ $^b$ «Writing and Compiling a Simple Shader» (HTML) (en inglés). EUA. Consultado el 12 de octubre de 2014.
* ↑ Saltar a:$^a$ $^b$ $^c$ $^d$ $^e$ «Intro to Shading» (HTML) (en inglés). EUA. Consultado el 2 de diciembre de 2017.
* ↑ Saltar a:$^a$ $^b$ «Pixie open source RenderMan» (HTML) (en inglés). USA. Consultado el 2 de diciembre de 2017.
* ↑ Saltar a:$^a$ $^b$ $^c$ «The RenderMan Interface Version 3.2.1» Arxivat 2015-05-23 a Wayback Machine. (PDF) (en inglés). USA. noviembre de 2005. Consultado el 2 de diciembre de 2017.
* ↑ Saltar a:$^a$ $^b$ «RenderMan» (HTML) (en inglés). USA. Consultado el 2 de diciembre de 2017.
* Volver arriba↑ Cyrus Jam; Mike Bailey (2005). «Using Photorealistic RenderMan for High-Quality Direct Volume Rendering». San Diego Supercomputer Center, University of California San Diego (en inglés).
* Volver arriba↑ «Overview - 3Delight» Arxivat 2014-09-22 a Wayback Machine. (HTML) (en inglés). USA. Consultado el 2 de diciembre de 2017

## Enllaços externs

* RenderMan
* Especificación: The RenderMan Interface Arxivat 2015-05-23 a Wayback Machine.