RenderMan Interface Specification

RenderMan Interface Specification , eller RISpec i korthet, är ett öppet API utvecklat av Pixar Animation Studios för att beskriva tredimensionella scener och förvandla dem till digitala fotorealistiska bilder. Det inkluderar RenderMan Shading Language .

Som Pixars tekniska specifikation för ett standardkommunikationsprotokoll ( eller gränssnitt ) mellan modelleringsprogram och renderingsprogram som kan producera bilder av fotorealistisk kvalitet, är RISpec ett liknande koncept som PostScript men för att beskriva 3D- scener snarare än 2D-sidlayouter. Således kan modelleringsprogram som förstår RenderMan Interface - protokollet skicka data till renderingsprogramvara som implementerar RenderMan Interface, utan att bry sig om vilka renderingsalgoritmer som används av den senare.

Gränssnittet publicerades första gången 1988 (version 3.0) och designades för att vara tillräckligt framtidssäkert för att omfatta tekniska framsteg under ett betydande antal år. Den nuvarande versionen är 3.2.1, släppt i november 2005.

Det som skilde RISpec från andra standarder på den tiden var att det gjorde det möjligt att använda geometriska primitiver på hög nivå, som quadrics eller bikubiska lappar, för att ange geometriska primitiver implicit, snarare än att förlita sig på en modelleringsapplikation för att generera polygoner som explicit approximerar dessa former i förväg. En annan nyhet som introducerades av RISpec vid den tiden var specifikationen av ett skuggspråk .

RenderMan -skuggningsspråket tillåter materialdefinitioner av ytor att beskrivas inte bara genom att justera en liten uppsättning parametrar, utan på ett godtyckligt komplext sätt genom att använda ett C -liknande programmeringsspråk för att skriva skuggningsprocedurer , vanligtvis kända som procedurtexturer och shaders . Belysning och förskjutningar på ytan är också programmerbara med hjälp av skuggspråket. Skuggningsspråket tillåter att varje sats exekveras på ett SIMD- sätt, men insisterar inte på det. En annan funktion som skiljer renderare baserade på RISpec från många andra renderare är möjligheten att mata ut godtyckliga variabler som en bild: ytnormaler, separata belysningspass och i stort sett allt annat kan matas ut från renderaren i ett enda pass.

RenderMan har mycket gemensamt med OpenGL (utvecklat av det numera nedlagda Silicon Graphics ), trots att de två API:erna är inriktade på olika uppsättningar användare (OpenGL till maskinvaruassisterad rendering i realtid och RenderMan till fotorealistisk offline-rendering). Båda API:erna har formen av en stackbaserad tillståndsmaskin med (konceptuellt) omedelbar rendering av geometriska primitiver. Det är möjligt att implementera endera API i termer av den andra.

Nödvändiga förmågor

För att en renderare ska kalla sig "RenderMan-kompatibel", måste den implementera åtminstone följande funktioner:

  • Ett komplett hierarkiskt grafiktillstånd, inklusive attribut- och transformationsstaplar och den aktiva ljuslistan.
  • Ortografiska och perspektiviska transformationer.
  • Djupbaserad eliminering av dold yta .
  • Pixelfiltrering och rumslig kantutjämning .
  • Gammakorrigering och vibrering före kvantisering .
  • Utdata av bilder som innehåller valfri kombination av RGB, A och Z. Upplösningarna för dessa filer måste vara som specificerats av användaren.
  • Alla de geometriska primitiva som beskrivs i specifikationen och tillhandahåller alla primitiva standardvariabler som är tillämpliga på varje primitiv.
  • Möjligheten att utföra skuggberäkningar genom användarprogrammerbar skuggning
  • Möjligheten att indexera texturkartor, miljökartor och skuggdjupskartor
  • De femton standardljuskällor, yta, volym, förskjutning och bildskärmar som krävs enligt specifikationen. Eventuella ytterligare shaders, och eventuella avvikelser från standard shaders som presenteras i denna specifikation, måste dokumenteras genom att tillhandahålla motsvarande shader uttryckt i RenderMan shading-språket .

Valfria avancerade funktioner

Dessutom kan renderaren implementera någon av följande valfria funktioner:

Vidare läsning

  •    Apodaca, Anthony A. ; Larry Gritz; Ronen Barzel (1999). Advanced RenderMan: Skapa CGI för filmer . San Francisco: Morgan Kaufmann Publishers. ISBN 1-55860-618-1 . OCLC 42621055 .
  •    Ebert, David S .; F. Kenton Musgrave ; Darwyn Peachey; Ken Perlin ; Steven Worley (2003). Texturering och modellering: a procedural approach, 3:e upplagan . Burlington, MA: Morgan Kaufmann Publishers. ISBN 1-55860-848-6 . OCLC 52689816 .
  •    Raghavachary, Saty (2005). Rendering för nybörjare: Bildsyntes med RenderMan . Burlington, MA: Focal Press . ISBN 0-240-51935-3 . OCLC 57670361 .
  •    Stephenson, Ian (2002). Essential RenderMan Fast . London, New York: Springer. ISBN 1-85233-608-0 . OCLC 50494960 .
  •    Upstill, Steve (1990). The RenderMan Companion: En programmerares guide till realistisk datorgrafik . Läsning, mässa: Addison-Wesley . ISBN 0-201-50868-0 . OCLC 19741379 .
  •   Cortes, Rudy; Saty Raghavachary (2007). Språkguiden för RenderMan Shading . Kurs Teknik PTR. ISBN 978-1-59863-286-6 .

Se även

externa länkar