| |
Shades
Documentation
You
should find the Shades plugins very easy to use if you have any familiarity
with Lightwave texture mapping. Most of the Shades interfaces look
similar to the one shown below. The top two areas of the interface
contains parameters very similar to the standard Texture Mapping panel
(chapter 5 of the Lightwave 5.5 Reference Manual). The main difference
is that all of the float and 3-vector requesters in the Shades interface
have optional envelope values that can be assigned to the parameter.
You will want to consult the Lightwave 3D Reference Manual, chapter
14 for documentation on how to use the Lightwave envelope editor.

A
new section of parameters have been added to many of the shaders in
this new release. This set of parameters will be referred to as the
"Common Shading Attributes" section. A screen capture
of this section appears below.

This
section of the plugin should need very little explanation as well.
It allows you to modify the surface attributes of a part of the texture
independently of the underlying surface's attribute. The attributes
can be animated over time using envelopes, and the value used for
these attributes can be filtered with a gradient before modification
of the surface attribute actually takes place. There is a toggle button
in front of every attribute which allows the user to select which
attributes will be chosen to modify the surface.
The
Color attribute will allow the specified part of the texture
to determine the color of the point currently being rendered. If the
texture's value at a particular point is 0, the underlying surface
color will be used. If the value is 1, the Color value will be used.
Values in between will blend the two colors appropriately.
Color
is the only attribute that does not have envelope capability (I didn't
see an easy way to combine both envelope and gradient access to vectors).
However, the color can be animated over time by using the Color's
Gradient. Click on the G button next to the Color requester. Now pull
down the menu labelled "Input Parameter" and choose
"Time" rather than "Shader Value".
This only allows the Color attribute to be one color per frame, but
that color is animated through the gradient based on the time of the
current frame.
The
other surface attributes (Luminous, Diffuse, Specular,
Reflectivity, Transparency, and IOR) can be modified
based on time and gradient filtering of the shader function's results.
Make sure the toggle button in front of the attribute is checked for
the modifications to be enabled for that attribute. Also note that
these values are NOT percentages like they are in Lightwave's main
surface atrribute panel. Instead of values in the range of 0 - 100%,
you should be using values in the range of 0 - 1. But don't be afraid
to try values outside of that range as well.
If both
the Envelope (E) button and the Gradient (G) button
are NOT active, the value in the requester will be multiplied by the
basis function's return value. The result of that multiplication will
be used as the new value for that attribute.
If the
Envelope (E) button is active, the value in the requester will
be ignored, and the value used for the multiplication described above
will be evaluated from the Envelope, based on the current frame/time.
If the
Gradient (G) button is active, the basis function's return
value will be used to look up the filtered value from the Gradient.
That filtered value will then be multiplied by the requester value
or the Envelope value, depending on whether the Envelope is active
or not. The result of that multiplication is used for the new surface
attribute.
The
Gradient and Envelope capability of the Bump Amp. parameter
works in the same way as the other surface attributes. The final value
returned from the evaluation of the envelope and gradient will be
used to increase or decrease the amplitude of the bump vector.
- Shades
individual shader parameters
-
-
AF_Cyclone3D

AF_PuffyClouds3D

AF_Strata3D

EE_Gloss
EE_Oren_Nayer
GM_Apple_Skin

GM_Blue_Marble

GM_Eroded

GM_EyeBall2D

GM_Fractal_Marble

GM_Green_Marble

GM_Marble_2

GM_MetalReflect
GM_Perlin_Marble

GM_Saturn
GM_SaturnRings
GM_Screen2D

GM_SideReflectivity
GM_SoftReflections
GM_Specular_Color
GM_Stars_And_Moons
GM_Stucco3D

GM_SuperDents
GM_Velvet
GM_Venus
GM_Wood1_2D
GM_Wood2_2D

ML_Brick2D

ML_Coriolis3D

ML_Dented3D

ML_Fire2D

Time
Factor - The time factor is used to control the speed of the
animated flame. 1.0 was chosen to be a good speed for 30 frame per
second animation. Larger values will speed up the frame, smaller
values will slow it down.
Top, Midtop, Midlow, and Low Colors - The colors that make
up the flame, from top to bottom
ML_LandColor5D

- The
LandColor5D shader was inspired by Dan Ritchie's LandColor lscripts.
When Dan released those, it was just after Shades had been released,
and I realized how nice they would be in Shades. I wrote Dan and
asked about his scripts, and he gave me permission to try and
translate them to Shades. Well, once I got started, I saw all
kinds of neat new additions and just kept adding new things, such
as the Musgrave fractalization capability.
So
here are some of the unusual ways the Texture parameters are
being used, and a little documentation about the LandColor5D
parameters.
The
Texture Mapping parameter is going to be used a little
differently. My shader needs to know what direction is up, and
that direction is determined differently based on the Texture
Mapping parameter. For Planar mapping, nothing is
unusual. For Cylindrical mapping, the up direction for
any point is found by drawing a perpendicular line from the
Texture Axis to the point. For Spherical mapping,
the up vector is determined by drawing a vector between the
center of the object, and the point in question.
Why
did I do things this way? This allows me to have a "bumpy"
sphere or cylinder be colored like a landscape as well. For
example, if I had a mesh of the world with mountains, valleys,
etc., I could wrap that into a sphere, and now have a "relief
mapped sphere" of the world. By using Spherical Texture
Mapping, the height of the terrain is calculated from the
center of the sphere (as well as the slopes being calculated
from the up direction). So the Landcolor shader will color this
bumpy sphere correctly.
Realize
that because of the unusual way these Texture Mapping
and Texture Axis parameters work, you may not see what
you think you should see in the Surface panel's preview renderings.
For instance, if you have Spherical turned on, the Sphere
preview will always be a solid color. Why? Because all points
on the sphere are equidistant from the center, and they all
have the same slope.
Most
people will use this shader on DEM type landscapes, so the Planar
mapping will work the way they expect. Only the more adventurous
types will see the need for Spherical or Cylindrical
mapping.
Another
unusual part of the Texture parameter area is that the Anti-Aliasing
button has been replaced by a Fractalize button. Click
on it and you will find the Fractal Playground based on many
of Musgrave's routines. These parameters will allow you to fractalize
the coloring and and pseudo-bumpmapping used in this shader.
I won't explain much more here, it is a playground so just play
:-). You can turn off the Fractalization by choosing
"No fractalization" from the top menu in the
Fractalization popup panel.
That's
it for the unusual Texture parameters. The rest are fairly self-
explanatory parameters for the shading of the land. I tried
to put the parameters in a logical order from top to bottom,
so here is the quick explanation.
I
put the Color parameter either above or below it's floating
point parameter(s) for a reason. For example, the Snow Color
parameter is below the Snow Slope parameter because no
snow will be rendered on slopes greater than the Snow Slope
value. The Snow Color is above the Snow Level
parameter because snow will only appear above that height.
The
same is true for the Rock, Bare, and Grass
Colors. Those colors will only appear on slopes greater
than (they are above) the corresponding Slope parameters.
So if you look at the default parameters, Rock Color
will only appear on triangles whose slopes are greater than
60 degrees, Bare Color on slopes greater than 30, and
Grass Color on slopes greater than 5 degrees.
The
Sand Color will never appear above the Sand Line.
The Fractal factor is tied to the , and is used to determine
how "fractal" your sandline looks.
Neither
of the Water Colors (Mud or Deep) will
appear above the Water Line. The Total Depth option
can be used because not all water is flat. By keeping this number
close to the actual height of the water in your mesh, you will
spread out the Mud and Deep Colors evenly throughout
the water's depth.
ML_Parquet2D

Plank
Width - The width of each plank.
Planks per Tile - The number of planks used in each tile.
Plank Variety - How much the wood color varies from plank to
plank.
Groove Width - The width of the grooves between the planks.
Ring Scale - The tree ring spacing.
Waviness - The relative waviness of the ring pattern.
Grain Scale - Scaling for the fine grain.
Graininess - The relative graininess of the texture (0 = no
fine grain).
ML_Planks2D

Plank
Width - The width of each plank.
Plank Length - The length of each plank.
Plank Variety - How much the wood color varies from plank to
plank.
Groove Width - The width of the grooves between the planks.
Ring Scale - The tree ring spacing.
Waviness - The relative waviness of the ring pattern.
Grain Scale - Scaling for the fine grain.
Graininess - The relative graininess of the texture (0 = no
fine grain).
ML_Strata5D

Intended
to be used with LandColor5D, to restrict the strata lines to a specified
range of slopes. This shader does not hardwire the colors, but instead
uses various shades of the surface color, and 3 user defined colors
that you don't want to be a shade of the surface color.
RW_Hextile2D

If
a requester's E button is highlighted, the numeric field will display
the envelope's value at key 0 . It will be ghosted, and the user will
not be able to enter values in the numeric requester unless the envelope
is removed.
Before
you activate a requester's E button, enter a value you want to remember
into the numeric requester. If the newly created envelope is ever
removed, this value will re-appear in the numeric requester.
Bugs
(Alpha version) Envelopes are not loaded correctly when these
shaders are saved in an object. Make sure you do NOT have any envelopes
activated when you save an object that uses one of these shaders.
The saved envelopes may cause Lightwave to crash, and leave you unable to
load the object again. This appears to be a bug in the Alpha version of the
envaccess.p global plugin. See the shades_warning.txt file, included with
the Alpha plugin archive for more details.
(All
versions) When an envelope button is selected for the first time,
the existing value from the numeric requester is used for the envelope's
first key frame value. When the envelope editor appears, the graph
shows the proper key fram value, however the Current Value field shows
0. Click once in the graph area, and the Current Value field will
be updated correctly. This appears to be a bug in the envaccess.p
global plugin.
(SGI
version) When Center, Size, and Velocity requesters are ghosted, not
all fields are dimmed. The functionality of the requesters work correctly
(the user cannot click in the field, or make any entries), and the
requester labels are dimmed as they are supposed to be. Only the values
in the requesters are not dimmed correctly. This seems to be a bug
with the SGI version of LWpanels.
s
i t e d e s i g n - v i s u a l e y e s
|
|