Newsgroups: comp.graphics
Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!van-bc!ubc-cs!news.UVic.CA!csr!bcorrie
From: bcorrie@csr (Brian  Corrie)
Subject: Re: Shading Language (was: AT&T Pixel machine)
Message-ID: <bcorrie.670616022@csr>
Keywords: RenderMan, Shading Language
Sender: news@sol.UVic.CA
Nntp-Posting-Host: csr.uvic.ca
Organization: University of Victoria
References: <1991Mar18.191838.3220@pixar.com> <kV0kZ1w163w@dorsai.com>
Date:  2 Apr 91 18:13:42 GMT

parnoux@dorsai.com (patrick arnoux) writes:

>aaa@pixar.com (Tony Apodaca) writes:
>> 
>> have a ".sl" file extention.  The RenderMan Interface Specification
>> describes both parts in even more gory detail.  They are both publicly
>> available formats.
>> 	It turns out that the renderer Pixar sells (PhotoRealistic-RenderMan)
>> has a run-time interpreter of sorts which processes the shading language.
>> It can't read the source code directly, instead it reads a "predigested"
>> version which is typically stored in a ".slo" file.  The .slo file is
>> some bizarre private format used by that interpreter.  However, that is
>> not important.  A different renderer might read the source code directly,
>> or might compile it into a "real .o" file and dynamically link it.
>> Whatever works.
>> 	If some renderer cannot accept shader files, it is because writing
>> a renderer which supports user-programmable shading is REALLY HARD,
>> not because .slo files are somehow magical or secret.  The magic is in
>> the renderer!
>> 

>In order to be compatible with PhotoRealistic-RenderMan (c)Pixar

(My two cents - Warning, I have never even seen PhotoRealistic-RenderMan,
but I do have some thoughts on this topic)

    If I understand things correctly, PhotoRealistic-Renderan is an
implementation of the RenderMan Standard (by Pixar). One does not
want to be compatible with it, but the RenderMan Interface itself.

>it is necessary to implement a renderer which also understand ".slo"
>files. In a production environement, where you have a couple or a dozen
>Macs and/or PC clones feeding RIB/shader files to the Pixel Machine
>(via the Sun or whatever host being used) rolling your own is not
>an option, unless the modeling packages being used on the Macs/PCs
>were modified. The idea is to have a Standard environement across
>all the platforms, so that I can use all the modelers out there
>that generate RIB files and use the shaders that they are using
>and use all the shaders that have not been provided in source form.
>In short I believe in taking the long term view and global approach.
>Before any images can be generated, they have to be modelled and
>the complete picture requires that the entire process be taken
>into account, from generating the objects to the final image.

>        Therefore I disagree that the magic is in the renderer as you
>put it. Even though the RIB and shading language formats are described
>in excedingly "gory details" the format of the shader compiler which
>outputs that "predigested" ".slo" file is not. And that same ".slo"
>file is the one used by the modellers and which is sometimes not
>provided in source format.

    .slo files are not part of the standard, and it sounds like (as Tony says),
they are just compiled versions of the shader descriptions (which are part
of the interface). It is the shader descriptions that are part of the standard.
I don't feel that they have any obligation to share their secrets in the .slo
files, as they represent research that give them an advantage over other
vendors. The fact that the ideas behind most of the secrets are published
(See Hanrahan & Lawson, Computer Graphics, Volume 24, Number 4, August 1990)
make it a matter of a vendor implementing those ideas.

    The fact that Pixar has done the pioneering work in this area gives them a
``small'' advantage in the sense that they have had access to this stuff for
years, and therfore their technology is more advanced. It seems the only magic
in the .slo files is how they perform the optimizations to make the
interpretation of the shader description fast and efficient.

    On the other hand, I think it is important that the shader descriptions
are avaialable for everyone to see and use. The shader descriptions are the
components that should be used by the modeller and the renderers. I would
assume that one can create a shader in the modeller, save it as a shader,
compile it to get a .slo file, and then use the renderer. This implies
that Pixar provides both the PhotoRealistic-RenderMan renderer and the
shader compiler together. Is this true????? If you can not
save the shader description as specified by the standard, then I would
agree that this is a serious limitation, as that shader can not be used
on other architectures or by other renderers. That kinda defeats the purpose
of having a standard, now doesn't it! Again, because I don't actually use
these beasties, I need enlightenment in that regard.

>        If one were to work in a stand-alone environement then the
>outside world would not matter and "Whatever works" would be fine.
>But in order to function in the real world, one has to interface
>to the real world, and rolling your own does not always work.
>                parnoux (patrick arnoux)

Thats all for now.....

	B

--
                  Brian Corrie (bcorrie@csr.uvic.ca)
Under the most rigorously controlled conditions of pressure, temperature,
volume, humidity and other variables, the organism will do as it damn well
pleases. Sounds like some of the code I have written......  8-)
