RenderMan
Historia

RenderMan julkaistiin toukokuussa vuonna 1988.
Pixar käyttää ohjelmistoa itse ja lisensoi sitä kaupallisesti ja ei-kaupallisesti.
RenderMania ennen oli Reyes (Renders Everything You Ever Saw) pyyhkäisyviiva-algoritmi (scanline), jonka kehittivät Lucasfilmillä Loren Carpenter, Robert L. Cook ja Ed Catmull.
Ensimmäinen RenderManiä käyttävä elokuva oli Tin Toy (1988). Vuotta myöhemmin Pixar julkaisi ensimmäisen kaupallisen version ohjelmistosta.
RenderMan Shading Language on kehitetty ajatuksesta ohjelmoitavasta varjostuksesta, joka esiteltiin 1980-luvun alkupuolella.
Aiemmin Carpenter oli kehittänyt fraktaaleihin perustuvan proseduraalisen mallinnuksen realistisien maastojen tekemiseen. Catmull oli kehittänyt Z-puskuroinnin Utahin yliopistossa 1970-luvun alussa ratkaistakseen näkyvät pinnat. Tämän jälkeen hän oli kehittänyt pinnan esityksen sen materiaalin mukaan luoden teksturoinnin. Cook kirjoitti Cornellin yliopistossa artikkelin miten heijastuvan värin on muututtava pinnan mukaan: aiemmin tietokoneella luodut kuvat näyttivät muovisilta koska ne jäljittelivät muovisen pinnan heijastusta. Kolme henkilöä päätyivät Lucasfilmille, jossa he aloittivat ohjelman kehityksen.
Ohjelman kehityksessä oli tavoitteena, että elokuvaa tekevät taiteilijat voivat hallita sekä valaistusta että varjostusta. Lisäksi tavoitteena oli käsitellä 80 miljoonaa polyognia kuvaa kohden. Tuohon aikaan olemassa olevat ohjelmat käsittelivät 100 000 polygonia. Suuren määrän valinnassa oli syynä että se pakottaisi ajattelemaan koko prosessia uudestaan. Ohjelma toteutettiin VAX 11/780 tietokoneella, jonka suorituskyky oli 1 MIPS.
Catmull, Carpenter ja Cook pitivät leikkimielistä kilpailua parhaan ratkaisun kehittämiseksi. Catmullin menetelmä oli tarkka ja elimoinoi ”kulmikkaan” näköiset reunat, mutta oli laskennallisesti vaativa. Carpenterin ja Cookin menetelmä kehitti Monte Carlo -tekniikkaan perustuvan pisteiden näytteistyksen ja sovelsi näytteiden minimietäisyyksiä, jolloin yhdellä algoritmilla pystyi ratkaisemaan monta ongelmaa. Perusalgoritmin valinnan jälkeen Carpenter suunnitteli ohjelman arkkitehtuurin, joka perustui aiempaan Reyes-ohjelmaan. Cook kirjoitti lopullisen ohjelman, jonka nimi oli Lucasfilm Renderer ja nimi muuttui RenderManiksi kun ohjelmaa myyttiin talon ulkopuolelle.
Renderöinti käytti stokastista näytteistystä ja pikselit jaettiin alipikseleihin (tyypillisesti 16:een), joita oli näytekohtaa kohden.
Ohjelmassa yhdistettiin Catmullin teksturointi, Carpenterin fraktaalit ja Cookin ohjelmoitava varjostuskieli Shade Trees. Vuonna 1990 Pat Hanrahan sai valmiiksi rajapintamäärittelyn RenderManille ja osana määrittelyä Cookin kieli kirjoitettiin uudestaan. Cookin alkuperäisenä ajatuksena oli että kielellä tehdyt ohjelmat olisivat enintään 10 tai 20 riviä pitkiä, mutta Luxo Jr. oli sata riviä. Myöhemmin ohjelmat kasvoivat satoihin tuhansiin riveihin ja niitä on erilaisia jokaiselle pinnalle. Hanrahanin määrittelyn virallinen nimi oli ”PhotoRealisticRenderMan” mutta se tuli tunnetuksi nimellä RenderMan. Hanrahanin määrittelyyn kuuluivat RenderMan Interface sekä RenderMan Shading Language (RSL).
Osa RenderManiksi tulevasta ohjelmasta oli ensi kertaa käytössä vuoden 1982 elokuvassa Star Trek II: The Wrath of Khan ”Genesis Sequence” -nimisessä kohtauksessa. Ensimmäinen julkisesti esitetty elokuva, joka käytti valmista ”Lucasfilm Renderer” -ohjelmaa oli vuoden 1984 SIGGRAPH-tapahtumassa esitetty The Adventures of Andre and Wally B.. Vuonna 1986 esitetty Luxo Jr. oli menestys ja kyse ei ollut enää tietokoneanimaatiosta eikä selkeästä erikoistehosteesta. Samaan aikaan Lucasfilmin tietokonegrafiikan osastosta tehtiin erillinen yhtiö, josta tuli Pixar.
Ohjelma on ollut jatkuvassa kehityksessä ja merkittäviä laajennuksia ovat esimerkiksi säteenseuranta. Ohjelma on myös kirjoitettu uudestaan polunseurantatyyppiseksi uudella RIS-arkkitehtuurilla, joka esiteltiin versiossa 19. Aiempi RenderMan Shading Language käsitteli sekä materiaaliominaisuudet että ohjasi säteiden seurantaa. RIS-arkkitehtuurissa toiminnot jaetaan valon välitykseen (säteet ja globaali valaistus), Bxdfs pinnan heijastuksien laskentaan ja pinnan parametrien käsittelyyn. Muutokset jakamiseen on tehty paremmalle tuelle fysiikaperusteisille materiaaleille sekä realistiselle valon välitykselle. RIS mahdollistaa interaktiivisen reaaliaikaisen renderöinnin ja muutoksien tekemisen renderöinnin aikana. Kaksisuuntainen polunseuranta mahdollistaa saa tulokset nopeammin ja toimii tilanteissa joissa yksisuuntainen ei toimi.
Vaikka Pixar työskenteli omien elokuvien parissa (kuten Toy Story) RenderMan päätettiin julkaista myös kaupallisena ohjelmistona ja ensimmäinen asiakas oli Industrial Light & Magic. Merkittäviä elokuvia tämän jälkeen olivat Terminator 2 ja Jurassic Park, jotka vähensivät vastustusta uudelle suuntaukselle.
RenderMan-ohjelmiston versiossa 21 poistettiin eräitä vanhoja ominaisuuksia kuten Reyes-renderöinti sekä parannettiin tukea ominaisuuksille kuten fysiikkaperusteiselle renderöinnille. Myös RenderMan Shading Language on merkitty vanhentuneeksi uudemman avoimen standardin Open Shading Languagen (OSL) hyväksi.
Ohjelmaan on myös lisätty BRDF-tuki.