Welcome!
You
have found the web pages for the Lightwave3D plugin project
called "Shades". Shades was started in July, 1998 by Marvin
Landis and then turned over to Gordon Miller in Sept. 1999.
It is an attempt to create a collection of Lightwave shader
plugins contributed by authors from all over the web. Hopefully
the project will serve as educational material for beginning
and intermediate plugin programmers, as well as provide some
interesting shaders for Lightwave animators to use and enjoy.
The original shaders in this package were manually converted
into Lightwave C plugins from shaders written using the RenderMan
Shading Language. Hopefully many other RenderMan shaders will
also be converted, as well as original shaders written by clever
Lightwave programmers. Many ideas, techniques, and code used
in this project came from the book "Texturing and Modeling:
A Procedural Approach" by Ebert, Musgrave, Peachey, Perlin,
and Worley. You can find more links and information about procedural
texturing on the "Writing a Shades Shader" page.
This
is an experimental project that I hope will get some support
from other Lightwave plugin programmers, including both experienced
plugin writers as well as people wanting to learn how to write
their first Lightwave plugin. First let me discuss a few of
the reasons for starting this experiment, and what I hope can
be accomplished with it.
What
is Shades all about?
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.).
Do you want to know more?
First
look at the Shades documentation to see what kinds of features
are supported in many of these plugins. Then download the plugins,
install them and try them out. If we have any images that have
been given to the project by Shades users, they can be found
on the Shades gallery page. If you are interested in doing anything
at all for the project, please visit the web page that describes
how to contribute. There are many ways that you can assist with
this project, we'll consider any ideas that you might have.
If you want to contribute to the programming part of the project,
download the source code for machine and compiler. Once you've
submitted your contribution, your name will be added to the
list of contributors so others will know of your good deed :-).
Have
fun, learn something new, and contribute whatever you can to
improve this little project.
(Lightwave
3D and Lightwave are registered trademarks of NewTek, Inc.)
(RenderMan
is a registered trademark of Pixar)