# RenderMan

RenderMan ist eine fotorealistische 3D-Rendering-Software, die von den Pixar Animation Studios entwickelt wurde. RenderMan wird von Pixar für das Rendering der eigenen 3D-Animationsfilmproduktionen verwendet und auch als kommerzielles Produkt für Dritte angeboten.

## Geschichte

Die Ursprünge von RenderMan liegen in den 1970er Jahren an der University of Utah, wo der Pixar-Gründer Ed Catmull seine Doktorarbeit über Rendering-Probleme schrieb. Von dort ging es weiter zu Lucasfilm in Kalifornien, wo Catmull und einige andere Grafikforscher an Grafiksoftware für den speziellen Einsatz in der Filmindustrie arbeiteten.
Die Forscher hatten das ausdrückliche Ziel, komplexe, qualitativ hochwertige fotorealistische Bilder zu erstellen, die per Definition kaum von Live-Action-Filmen zu unterscheiden sind. Um dieses Ziel zu erreichen, begannen sie mit der Entwicklung einer Rendering-Engine, deren innovative Architektur von Grund auf neu konzipiert wurde und in die technisches Wissen aus früheren Forschungsarbeiten sowohl in Utah als auch am NYIT eingeflossen ist. Loren Carpenter implementierte Teile der Kern-Rendering-Engine, und Rob Cook schrieb das Shader-Subsystem. Pat Hanrahan arbeitete als leitender Architekt für das gesamte Projekt. Der Rendering-Algorithmus wurde REYES1 genannt, ein Name mit doppeltem Ursprung. Er wurde von Point Reyes inspiriert den Carpenter gerne besuchte. Für das Entwicklungsteam war der Name auch ein Akronym für Render Everything You Ever Saw.
Auf der SIGGRAPH Anaheim 1987 präsentierten Cook, Carpenter und Catmull ein Papier mit dem Titel „The Reyes image rendering architecture“, in dem die Funktionsweise der Rendering-Engine erläutert wurde. Später, auf der SIGGRAPH Dallas 1990, wurde die Schattierungssprache in einem Papier mit dem Titel. „A Language for Shading and Lighting Calculations“ von Hanrahan und Jim Lawson vorgestellt. 1989 wurde das Programm als RenderMan bekannt und begann, an CGI- und Animationsfirmen für visuelle Effekte lizenziert zu werden. Darüber hinaus wurde die CG-Abteilung von Lucasfilm 1983 in ein eigenes Unternehmen, Pixar, ausgegliedert und 1986 von Steve Jobs aufgekauft.
Obwohl RenderMan erst 1989 der Öffentlichkeit angeboten wurde, wurde die Software schon vorher intern bei Lucasfilm/Pixar verwendet, um visuelle Effekte für Filme, animierte Kurzfilme und Fernsehwerbung zu erstellen. Der Genesis-Effekt im Film Star Trek II: Der Zorn des Khan aus dem Jahr 1982 wurde mit einer früheren Version von RenderMan erstellt, ebenso der gläserne Ritter im Film Das Geheimnis des verborgenen Tempels aus dem Jahr 1985. Der erste Film, in dem RenderMan zum Einsatz kam, war der Kurzfilm Tin Toy.
Seit 2015 ist eine kostenlose nicht-kommerzielle Version von RenderMan verfügbar.
In der Vergangenheit verwendete RenderMan den Reyes-Algorithmus zum Rendern von Bildern mit zusätzlicher Unterstützung für erweiterte Effekte wie Raytracing und Global Illumination. Im Jahr 2016 wurde die Unterstützung für den Reyes-Algorithmus zugunsten der RIS-Architektur und die RenderMan Shading Language zugunsten von Open Shading Language aus RenderMan entfernt.

## Name

Um das Rendering zu beschleunigen, experimentierten die Ingenieure von Pixar mit parallelen Rendering-Computern unter Verwendung von Transputer-Chips in einem Pixar Image Computer. Der Name stammt vom Spitznamen einer kleinen Platine (6,4 × 13 cm), die einen Transputer enthielt und die der Ingenieur Jeff Mock in seine Tasche stecken konnte. Zu dieser Zeit war der Sony Walkman sehr populär, und Jeff Mock nannte seine tragbare Platine Renderman, woraus sich der Name der Software ergab.

### Terminologie

Der Name RenderMan kann Verwirrung stiften, da er für verschiedene Pixar-Entwicklungen verwendet wurde:
* RenderMan Interface Specification (RISpec), die technische Spezifikation von Pixar für ein Standard-Kommunikationsprotokoll (oder Schnittstelle) zwischen 3D-Computergrafikprogrammen und Rendering-Programmen.
* RenderMan Shading Language (RSL), die Skriptsprache, die alle Schattierungen spezifiziert, die RenderMan ausführt. Sie hat eine Syntax ähnlich der von C und enthält eine Reihe von eingebauten Funktionen, die direkt mit Grafiken und RenderMan zusammenhängen.
* PhotoRealistic RenderMan (PRMan), ein RenderMan-Rendering-Software-System, d. h. eine kompatible Implementierung, die von Pixar auf der Grundlage seiner eigenen Spezifikation entwickelt wurde.

## Technik
### RenderMan Interface Specification

Dies ist ein Standard für Modellierungs- und Rendering-Programme, die in der Lage sind, Bilder in fotorealistischer Qualität zu erzeugen. Ein Rendering-Programm, das die RenderMan-Schnittstelle implementiert, unterscheidet sich von einer Implementierung früherer Grafikstandards durch folgende Merkmale:
* Es muss eine reale Kamera mit ihren zahlreichen Attributen simulieren, die über Position und Blickrichtung hinausgehen.
* Es muss gekrümmte geometrische Primitive unterstützen, um nicht nur die Grundgeometrien genau darstellen zu können.
* Es muss in der Lage sein, die optischen Eigenschaften verschiedener Materialien und Lichtquellen zu simulieren.
Sie wurde entwickelt, um die für die Spezifikation eines fotografischen Bildes erforderlichen Informationen in kompakter und effizienter Form an verschiedene Rendering-Programme zu übermitteln. Die Schnittstelle selbst wurde so konzipiert, dass sie mit verschiedenen Hardware-Geräten, Software-Implementierungen und Rendering-Algorithmen umgehen kann.

### RenderMan Shading Language

Es handelt sich um eine starke Shading Language. Damit können Benutzer eigene Programme schreiben, sogenannte Shader. Damit können sie Oberflächen und deren Interaktion mit Lichtquellen komplett definieren. Diese Shader sind in verschiedene Kategorien unterteilt:

#### Oberflächen-Shader

Mit diesem Shader kann man die Farbe und Deckkraft der Oberfläche von Primitiven berechnen. Sie bewerten Textur, Reflexionen, Brechung und Beleuchtung (Lambert, Blinn usw.) eines Materials. Sie arbeiten mit den Licht-Shadern zusammen, um die Lichtmenge zu bestimmen, die auf die Oberfläche fällt, um das Objekt zu "beleuchten". Sie arbeiten auch mit den Volumen-Shadern zusammen, um die endgültige Farbe und Deckkraft der Oberflächenschattierung zu bestimmen.

#### Displacement-Shader

Mit dem Displacement-Shader können Oberflächenpunkte verschoben werden. Das passiert zur Renderzeit und die Oberflächennormalen werden neu berechnet. Diese bearbeiten auch Bump-Mapping, indem sie die Normalen neu berechnen, ohne den Oberflächenpunkt zu verschieben.

#### Volumen-Shader

Volumeneffekte wie Dunst, Rauch und Schatten können auf drei Arten erzeugt werden: als Umgebungs-, Innen- oder Außen-Shader. Ein Umgebungs-Shader macht Volumeneffekte zwischen der Kamera und den sichtbaren Oberflächenpunkten. Innere Shader werden innerhalb von teilweise transparenten Objekten ausgewertet, während äußere Shader ausgewertet werden, wenn Strahlen zwischen Objekten reflektiert oder gebrochen werden und atmosphärische Abschwächung ergeben.

#### Licht-Shader

Sie sind für die Schattenberechnung zuständig, indem sie entweder auf vorberechnete Schattenkarten zugreifen oder den Schatten direkt durch Raytracing berechnen. Sie können während der Ausführung von Oberflächen-Shadern und Atmosphären-Volumen-Shadern aufgerufen werden, um die Intensität und Beleuchtungsfarbe des aktuellen Schattenpunkts zu bestimmen.

### PhotoRealistic RenderMan

Dabei handelt es sich um eine integrierte Hochleistungs-Rendering-Engine, mit der komplexe 3D-Szenen dargestellt werden können. Sie liefert beeindruckende Ergebnisse und gilt heute als Hybrid-Engine, die die neuesten Fortschritte im Raytracing mit den traditionellen Bereichen, in denen sie ihre Stärken hat, verbindet. Sie wird von einigen Bildungseinrichtungen verwendet, um neue Konzepte im Bereich CGI zu testen.

## Auszeichnungen

RenderMan und die an der Entwicklung beteiligten Personen wurde von der Academy of Motion Picture Arts and Sciences bislang mit insgesamt vier Preisen ausgezeichnet.
1993 wurde Pat Hanrahan, Anthony A. Apodaca, Loren Carpenter, Robert L. Cook, Edwin Catmull, Darwyn Peachey und Tom Porter der Academy Scientific & Engineering Award für die Entwicklung von RenderMan („for development of "RenderMan" software providing the means to digitally create scenes or elements that may be composited with other footage“) verliehen.
Die zweite Preisverleihung fand im Rahmen der 73. Verleihung der Academy Scientific and Technical Awards am 3. März 2001 statt, das Board of Governors der Academy of Motion Picture Arts and Sciences ehrte Catmull, Carpenter und Cook mit einem Academy Award of Merit „for significant advances in film rendering, as demonstrated by Pixar's RenderMan“.
2010 wurden Per Christensen, Christophe Hery und Michael Bunnell für die Entwicklung von punktbasiertem Rendering für indirekte Beleuchtung und Ambient Occlusion („for the development of point-based rendering for indirect illumination and ambient occlusion“) mit einem Academy Scientific & Engineering Award ausgezeichnet.
Der vierte Preis ging 2011 an David Laur, der mit dem Gordon E. Sawyer Award ausgezeichnet wurde. Er erhielt außerdem 2000 den Coons Award. RenderMan ist das erste Softwareprodukt, das mit einem Oscar ausgezeichnet wurde.