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: 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> 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-)