I have been writing Lightwave plugins since version 4.5 was released for the SGI
platform. Newtek releases very little plugin source with their SDK, and trying to figure
out how to accomplish certain things within the restraints of the SDK can involve many
rounds of "trial and error" programming. There are very few freely distributable
plugins available with source that demonstrate a "substantial" use of things
such as LWPanels, LWItemIDs, envelopes, and other features of the SDK and the global
plugins distributed with Lightwave. So one of the primary reasons for deciding to start a
project like this was to provide a little more source and a basic tutorial for
inexperienced plugin programmers.
So, why a shader plugin project? Last semester, a researcher I work with wanted to
convert a RenderMan scene he had created several years earlier, into Lightwave. Converting
the object and scene information was fairly simple, but he had several custom shaders that
couldn't be duplicated easily with Lightwave's default shaders. So I learned to write
Lightwave shader plugins, and discovered that converting simple (emphasis on simple)
RenderMan shaders into a C version of a Lightwave shader was fairly straightforward. So
the ground work for a Lightwave Shader project was complete, and by adding a common
LWPanels interface and support for envelopes, I felt this project might provide
educational (and hopefully useful) shader plugins. And because of the visual nature of
shaders, they are just plain fun to write and test, especially when you see the first
visual rendering of your shader code.
Well, that's the rationalization for this project. I hope you are interested in
contributing in whatever manner interests you. I hope there are programmers willing to
write their own shaders, others that will improve the interface (shader previews right in
the shader panel, color envelope previews, etc.), and still others that will improve some
of the algorithms needed for better shaders (multiple types of falloff, support for more
RenderMan Shading Language features, etc.).