the lightwave shades project

[welcome]

[download]

[documentation]

[gallery]

[how to contribute]

[writing shaders]

[contributors]

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)

 

 

 

s i t e d e s i g n - v i s u a l e y e s