Newsgroups: comp.graphics
Path: utzoo!news-server.csri.toronto.edu!rpi!uupsi!pixar!aaa
From: aaa@pixar.com (Tony Apodaca)
Subject: Re: Shading Language (was: AT&T Pixel machine)
Message-ID: <1991Mar18.191838.3220@pixar.com>
Summary: The ".slo format" is a red herring.
Keywords: RenderMan, Shading Language
Sender: news@pixar.com (Usenet Newsmaster)
Nntp-Posting-Host: woody
Organization: Pixar -- Point Richmond, California
References: <12303@ur-cc.UUCP> <J0Vky1w163w@dorsai.com> <bcorrie.668714394@csr>
Date: Mon, 18 Mar 1991 19:18:38 GMT

In article <bcorrie.668714394@csr> bcorrie@csr (Brian  Corrie) writes:
>parnoux@dorsai.com (patrick arnoux) writes:
>
>>CAVSoftware in New York City has a renderer running on the Pixel Machine
>>which reads RIB files (RenderMan Interface Bytestream). The implementation
>>is fairly complete (Just read Steve Upstill's book, all the information
>>is there). But while it is possible to generate images from Dimension,
>>Macromind, Strata, Swivel, and most other modelers that output RIB, the
>>program cannot deal with "shader files". Pixar does not release the
>>format of the .slo files, therefore only a limited number of preset
>>shader types are built into the program....
>
>Can anyone fill me in on just what a .slo file is? I am playing/thinking
>about RenderMan and the shading language, but do not have access to any
>RenderMan renderers, so don't know how they work. Is the shading language
>interpreted at run/render time, or do they do dynamic loading of the
>shader descriptions some how, with the .slo files the executables for
>the shader??

	I might be able to clear up some confusion here....
A geometric model described with the RenderMan Interface comes in
two parts: the "shape" description (the RIB file) and the "shade"
description (the shader files).  Steve's book describes both the
C interface to the shape library, as well as the RenderMan Shading
Language (a C-like language).  Shading Language programs typically
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!

	I am glad to hear that there is a RenderMan-compatible renderer
available for the AT&T Pixel Machine (I had not heard of it before).
Does anyone out there have any experience with it they could share?

	P.S.  Steve will be glad to know you liked his book! ;-)
-- 
UUCP:		{sun,ucbvax}!pixar!aaa			Tony Apodaca
ARPA:		aaa@pixar.com				Chief Architect
US Snail:	1001 W Cutting, Richmond, CA 94804	RenderMan Interface
