# Shoestring shaders documentation

(This same information is on the website, http://www.des-web.net/html/details.html, with pretty pictures)

The shaders are found in the shading room, in the drop down menus- where you pick things like Color, Value, Noise, etc for your various shading channels)

Ok, here is the documentation- a brief explanation of each slider, checkbox, radio button and doo-hickey. I know some of the interfaces are complicated- sorry, a bit of the engineer peeking through. ;-)

Don’t forget that most every control that has a number (sliders and text boxes) can be animated.

Previews- note that CS does not pass the entire scene into the shader room preview window. So if you are using a shader that refers to another object (Proximity, Iridescence, Fresnel, Lit, or Angle) what you see in the preview window may not be accurate. Check the scene preview window instead.

“Filter Shaders according to context in Popup”- Under the File/Preferences/Shader Editor tab, you will see an entry for Filter Shaders according to context in Popup. If this is checked, you are limited as to what shader types you can pick for the various slots in the shader tree. Most of the basic effects that you can get with Shoestring Shaders Complex (or top level) shaders do not require that you un-check this box, but there are some that do. I recommend that you un-check it to get the full flexibility of the entire shading system.

## Key

Key generates a mask based on a color key in its input shader. It replaces a selected color or color range with transparency or black, and the rest of the image with white. It can be used in the transparency channel, or in the color channel (affecting the alpha within that channel)

### Key Mode

Changes all colors that match the Key Color into black, all other colors into white. For use in the Alpha channel.

### Alpha Mode

Changes the alpha layer of the shader where the Key Color matches to transparent, leave the rest alone. Try it in the Color channel.

### Key Color Picker

Lets you select the color you wish to key out.

### Range sliders

Two tabs each- typically centered around zero, these let you add a tolerance to your color, such as when the backdrop lighting isn't quite perfect.

## Spokes

Spokes is designed to make generating radial patterns quick and easy. You could even make the hands of a clock- it is fully animateable.

### Center Coordinates box

The center of the spokes is specified in UV coordinates.

U u coordinate of the center point of the pattern.

V v coordinate of the center point of the pattern.

### Number

Number controls how many spokes will be generated. If you use a large number here, you will need a small width or the spokes may blend together.

### Offset

How many degrees to rotate the starting point.

### Height

Maximum level returned. (Modified by the falloff sliders)

### Circular Falloff

This slider controls the fade to black across the spokes, along the circumference.

### Radial Sliders

These sliders control behavior along the radial lines- watch out for overlap of the settings, you may not get what you are looking for if you set the Start after the End, for instance. In UV space-ish dimensions.

### Radial Start

How far out from the center coordinates the spokes begin.

### Radial End

How far out from the center coordinates the spokes end.

### Radial St Falloff

How far out from the center coordinates the spokes fade to Height.

### Radial End Falloff

How far out from the center coordinates the spokes start to fade to black.

### Width

This slider sets the width of the spokes. In regular mode, it is degrees. If the Constant Width box is checked, it is scaled to a more useful range.

### Taper

This slider causes the spokes to taper smoothly as they get further from the center. Disabled if Constant Width boc is checked.

### Width Control

### Constant Width Checkbox

Attempt to make the spokes the same width throughout their length.

### Fill Center Checkbox

Fill the center area where the spokes would overlap. Only used when Constant Width is checked.

## MultiPass Manager

MultiPass Manager is an easy way to have multiple shaders defined for an object all in the same file, with a simple click or two to swap them. (see MultiPass Control shader also) MultiPass Manager is in the Shoestring Shaders Complex list.

### Pass Name

These fields are just reference labels- they have no effect on the shader at all. If you build complex shading structures, they may help you to keep track of which slots are doing what.

### Pass Control

This shader channel controls which pass will be executed. While any grayscale shader may be used here, only very narrow target ranges are supported. MultiPass Control is designed for this slot.

### Pass 1-10

These are the shaders for each pass. . . each one is capable of being a full complex shader tree.

## MultiPass Control

MultiPass Control is designed to work with MultiPass Manager. It returns narrow grayscale values taylored to the MultiPass Manager. By using the Ref Shader slot, a single reference shader may be used to control many instances of the MultiPass Control shader, each of which may be overriden locally without losing any settings.

### Pass

These radio buttons control which pass is being run. If the Reference Shader pass is chosen, then the shader listed in the Ref Shader will be used.

### Pass Name

These fields are just reference labels- they have no effect on the shader at all. If you build complex shading structures, they may help you to keep track of which slots are doing what.

### Ref Shader

This shader channel allows for a reference shader to be used to control the MPC. This way multiple shaders can be referenced to a single instantiation of an MPC.

## Super Mixer Complex

Super Mixer is now available in the Shoestring Shaders Complex list- so each sub-shader can now be a multi-channel shader of its own. Otherwise it functions exactly as the old SM, with the exception of the lack of an Add mode- just didn’t seem to make sense. Rather than copy all that info, just see the SM doc below. Note that if you have chunks of your object “undefined” (no shaders picked for that grayscale range) it may cause your object to vanish. Don’t worry, it’s still there. Just finish setting up your shader and it will be back. (Or use the autorange function)

Shadow Pass

Shadow Pass is under Shoestring Shaders Complex. It will make an object invisible during rendering while leaving its shadow in place. This shader is NOT available in C6!

Shadow Pass checkbox

Check this box and the object will vanish from renders, leaving only its shadow.

Shader

This is the actual shader for your object.

## Drip

Drip make a single user controllable ripple. Typically put in the bump channel, it returns a grayscale value.

Radius

Radius controls the diameter of the ripple. If you want the ripple to grow over time, you should animate this control from a small value to a large one.

Height

Controls the height of the ripple- larger values are taller. If you want your ripple to fade out over time, you should start with a high value and animate to a lower.

Height offset

This control adds an offset to the height, so you can get dips as well as peaks. You would not typically animate this. Since this is added to the Height, you would typically pick the two settings so that they add to one where you want the highest point to be. Otherwise you may get clipping.

Width

Controls width of the ripple, the area being perturbed. Typically would start small and grow somewhat as the ripple spreads.

Ripple Shaping Checkbox

Setting this turns on a smoothing function that is applied to the ripple. This smoothing function will allow the ripple to drop below zero. If you want this effect to show, you need to use the Height offset. Also activates Inter-ripple banding slider.

Inter-ripple banding

If the Ripple Shaping checkbox is set, this slider will cause the ripple to have multiple peaks within the active band. An easy way to add some complexity.

Auto spread checkbox

Overrides the need to animate the Width control by making the width grow proportionally to the Radius. Width still needs to be set to a non-zero value.

### Center Coordinates box

The center of the drip is specified in UV coordinates.

U u coordinate of the center point of the drip.

V v coordinate of the center point of the drip.

Show draws a cross centered on the uv coordinates (instead of a ripple). This is intended to aid in positioning the drip- you will want to un-check the box to go back to regular mode. (Unless you want to render little crosses ;-) If you are using the bump channel, the effect may be very subtle.

### Rebound checkbox

Adds a secondary wave that trails the primary in size and time. This is to simulate that little drop of water that is projected up out of the center of a drip and then falls back.

Rebound Size

Sets the size of the rebound wave (both width and height) relative to the original wave.

Rebound Distance

Controls how close the rebound wave is to the original

## Location

Location lets a shader react to where it is in global (or local) space with control over all three axes. Originally designed for making easy cut-away views.

### X, Y, Z Axis checkboxes

These checkboxes control which axes are included in the calculations.

### Range boxes

The values in these boxes define the range of the transition. Between the values, the shader will run from 0 to 1. Outside the values, the shader will be 1 or 0.

### Greater and Lesser radio buttons

This setting determines where the shader will go to zero. If it is set to Greater, then any coordinate larger than the largest value in the Range boxes will return a 0.

### And and Or Mode radio buttons

These buttons determine how the cuts on the various axes are combined. In AND mode, in order for a point to return a 1, all three axis controls must individually return a 1. In OR mode, only a single axis control need return a 1 in order for the whole shader to return a 1.

### Global and Local radio buttons

Controls whether Global or Local coordinate space is used for the axis checks.

### Use randomize shader checkbox

Enables the Randomize shader.

### Randomize strength

Sets the strength of the random effect. Large numbers make it more difficult for the value to get to white.

### Randomize Shader

A way to add some extra control to the transition region. Try turbulence or noise.

## Proximity

Proximity lets a shader detect and react when another object is close by. It returns a value- 1 or white, when the object referenced is close by.

### Object to reference

This is the object whose proximity to the point being shaded will affect the shader value. The closer the point to the object, the whiter (closer to 1) the value returned.

### Single checkbox

If this box is checked, the first object in the scene that exactly matches Object to reference will be used for the distance calculations. If it is NOT checked, ANY object in the scene whose beginning matches the Object to reference will influence the proximity shader. For example, if the Object to reference is Sphere, and single is not checked, Sphere 1, Sphere w34234 and Spheretacular will all be included in the distance calculation. Whichever object is closest will determine the value.

### Distance to begin fade

Distance from the center of the Object to Reference to the specified point on the object being shaded that the shader starts to return a value other than black (0). For example, if you set a DTBF of 20 units, and your object is 25 units away, you will get nothing (0, black) back from the shader. When you get inside that 20 units, the shader returns the percentage of how close you are. . . so at a distance of 10 units, you will get a .5, or 50% gray. At a distance of 5 you will get .75. If the two points co-incide, you will get a 1, or full white.

Shaders are called for each point on the surface of an object. . .so if the DTBF is 10 units, and your object is 20 units long, the front of it could be returning a 1 while the back of it is still returning a 0, since the front could be 0 distance from the center of the object being approached, while the back is still 20 units away.

### Check in Axes

If a box is checked, then that axis is used in distance calculation. If it is not checked, the axis is disregarded.

### Offset

Offset is subtracted from the distance. Since the distance can be measured from the center of the object, a large object might not cause the desired results. Offset gives a simple way to make an adjustment to the distance.

### Use randomize shader checkbox

Enables the Randomize shader.

### Randomize strength

Sets the strength of the random effect. Large numbers make it more difficult for the value to get to white.

### Randomize Shader

A way to add some extra control to the transition region. Try turbulence or noise.

### Shaded Object Mode radio buttons

These buttons determine which part of the shaded object is used for the distance calculation:

Surface Point- each point is checked individually. This means that the object could be partially affected.

Center Point- the center of the object controls the shading for the whole object. A single value will be returned for the entire object.

Hot Point- same as center, but the user can move the hotpoint to gain more control.

## Easy Fresnel

This version of the fresnel shader will do scientifically accurate fresnel shading, but with a simplified interface.

This shader comes to us courtesy of Alan Stafford.

### Mode, Transparency and Reflection radio buttons

For typical use, this shader would be used in the Transparency and Reflection channels. Click the button for the appropriate channel to automatically get the correct function. (Feel free to experiment too! ;-)

### Object to reference

This is usually going to be your rendering camera, but you may get other effects by referencing other objects here.

### Transition Mode, Smooth Mix and Shader Mix radio buttons

Smooth Mix will cause an even transition of the fresnel effect, as you would see in a perfectly flat surface. By using the Shader Mix and inserting a shader in the Edge Control slot, you can easily add noise or other effects.

### Medium, n1

The Medium is the object you are shooting rays through. For realistic effects, this will usually be air, although many other picks are available in the presets pull down.

### Refraction and Permittivity Boxes

These boxes will automatically update with any picks made in the presets pulldown. If you have a custom medium that require different values, you may enter them directly.

### Object Material, n2

The Object is the thing you are shading. Again, the presets pulldown will get you started with some common materials.

### Refraction and Permittivity Boxes and sliders

These boxes will automatically update with any picks made in the presets pulldown. If you have a custom object material that require different values, you may enter them directly. The sliders allow for easy tweaking of the values. They are relative to the value currently in their respective box.

### Adjust Slider

Controls the polarization of the lighting. 50% is normal. You can change the blend between Reflection and Transparency by moving the slider.

## Fresnel (Dispersion)

This version of a fresnel shader will do scientifically accurate fresnel shading, as well as performing dispersion functions with a simple technique. Dispersion is the physical effect that makes a rainbow appear when you shine sunlight (or any other multi-spectral light) through a prism. See the sample files and tutorials on the website for this complex function.

This shader comes to us courtesy of Alan Stafford.

### Mode, Transparency and Reflection radio buttons

For typical use, this shader would be used in the Transparency and Reflection channels. Click the button for the appropriate channel to automatically get the correct function. (Feel free to experiment too! ;-)

### Object to reference

This is usually going to be your rendering camera, but you may get other effects by referencing other objects here.

### Transition Mode, Smooth Mix and Shader Mix radio buttons

Smooth Mix will cause an even transition of the fresnel effect, as you would see in a perfectly flat surface. By using the Shader Mix and inserting a shader in the Edge Control slot, you can easily add noise or other effects.

### Medium, n1

The Medium is the object you are shooting rays through. For realistic effects, this will usually be air, although many other picks are available in the presets pull down.

### Refraction and Permittivity Boxes

These boxes will automatically update with any picks made in the presets pulldown. If you have a custom medium that require different values, you may enter them directly.

### Object Material, n2

The Object is the thing you are shading. Again, the presets pulldown will get you started with some common materials.

### Refraction and Permittivity Boxes and sliders

These boxes will automatically update with any picks made in the presets pulldown. If you have a custom object material that require different values, you may enter them directly. The sliders allow for easy tweaking of the values. They are relative to the value currently in their respective box. The Refraction values are specified in both real and imaginary components. For now, the real component is the only one actually in use.

### Lighting Box

### White Point setting pulldown and Illuminant Temperature text box

This sets the white point for the light you are shining on your object. The text box shows the actual value. Custom values may be inputted to the text box. Used for dispersion.

### Color checkbox

In the transparency channel checking this box will return the color indicated by the Wavelength slider. This can be used as part of automating the dispersion function by animating the Wavelength slider and then summing the resulting pictures. (The object will be colored in a shifting manner as the refractive index shifts, such that the light passing through will be colored, and each color will be refracted slightly differently)

### Dispersion Slider

This value is set when a preset material is chosen. Dispersion controls how strongly the colors separate when multi-spectral light is used. To exaggerate the effect, use large values.

### Color Chip

The color chip reports the average color of the light chosen by the White Point pulldown or the Illuminant Temperature text box. It may be opened to extract the color values, but it is output only.

### x and y

These are the CIE 1931 coordinates of the white point for the selected Illuminant Temperature. Output only.

### Polarization Slider

Controls the polarization of the lighting. 50% is normal. You can change the blend between reflection and transparency by moving the slider between the || (parallel) and _|_ (perpendicular) settings. This has the same effect as moving a light, without really moving it.

### Wavelength Slider

This slider has two functions, both related to dispersion. In order to use the Color checkbox function, it should be animated starting at the left at frame 0 and going all the way to the right at the last frame. This causes the object color to be shifted frame by frame. The secondary function is to determine the Refraction values. Again, for the dispersion animation, when the slider is all the way to the left (first frame), look at the calculated n2 values, and copy them up to the Object Material boxes. Move the scrubber to the last frame, move the Wavelength all the way to the right, and copy the values up again. Now the index of refraction will shift as the color shifts. By compositing the resulting frames together, a correct dispersion effect is achieved.

### Calculated box

### n2rd and n2id

These are the refraction values calculated by changing the Wavelength slider in the Lighting box. They are copied up to the Re and Im boxes in the Object material box in order to do dispersion renders.

### Spectral RGB

This gives the output of the Wavelength slider as a color and as RGB values, if you wish to use an animated colored light instead of using the Color checkbox and coloring the object.

## Lit

Lit is a shader that can detect whether a light is pointing at it. It handles distant lights (including Sun and Moon), bulbs, and spots. It does not handle obscuring objects, (it isn’t a ray tracer! ;-) Anything Glows, sky lights, etc. In default mode it returns a value- lit areas return 1, or white. Non-lit areas return 0, or black.

### Light text box

This is where you enter the name of the light you want to affect your shader.

### Shaded Object Mode radio buttons

These buttons determine which part of the shaded object is checked for the lighting calculation:

Surface Point- each point is checked individually. This means that the object could be partially affected.

Center Point- the center of the object controls the shading for the whole object. A single value will be returned for the entire object.

Hot Point- same as center, but the user can move the hotpoint to gain more control.

### Lit Facet Angle Limits slider

This slider controls which facets are checked for light impact. The left marker indicates where to start falling off, and the right indicates the point at which no lighting check is performed. The number is the angle of the facet normal to the light ray.

### Return Light Color checkbox

Instead of returning a grayscale value, the color of the light is returned.

### Invert Grayscale checkbox

Flips the grayscale. No effect on color mode.

### Shine-through checkbox

If your shaded object has two surfaces (like a sphere or cube, for instance), this checkbox will make the FAR side (away from the light) get the lighting effect rather than the near side. Useful for faking translucence.

## Angle

Angle returns a grayscale value based on the angle of a ray drawn from one object, to the shaded object, and then to a third object. In typical usage, this would be from a light, to your shaded object, to the rendering camera. Useful for faking translucence.

### Light text box

This is where you enter the name of the light you want to affect your shader. Doesn’t HAVE to be a light, can be any object.

### Camera text box

This is where you enter the name of the camera you want to affect your shader. Doesn’t HAVE to be a camera, can be any object.

### Falloff box

Linear or Bezier radio button- determines how the transition between the angles is treated.

Ease In/Out slider- allows the bezier curve to be adjusted. (sorry, no preview)

### Invert Grayscale checkbox

Flips the grayscale output

### Angle Limits slider

Allows you to define a range of angles that you want to be affected. Any angles between the numbers set by the tabs will be white.

### Shaded Object Mode radio buttons

These buttons determine which part of the shaded object is checked for the angle calculation:

Surface Point- each point is checked individually. This means that the object could be partially affected.

Center Point- the center of the object controls the shading for the whole object. A single value will be returned for the entire object.

Hot Point- same as center, but the user can move the hotpoint to gain more control.

## Grayscale/Desaturate

This shader controls color saturation.

### Gray Scale or Desaturate radio buttons.

You can only select one. Grayscale does a luma-preserving total de-saturation of the Input Shader (which can, of course, be more complex than the Texture map illustrated)

Desaturate activates the sliders in the box, allowing finer control over the color saturations.

### Master Saturation Modifier.

Moves saturation of all colors simultaneously. Acts in tandem with the color Saturation Modifiers. Positive numbers increase the saturation, negatives decrease it.

### Red, Green, or Blue Saturation Modifier.

Moves the saturation of each color independently. Positive numbers increase the saturation, negatives decrease it. Acts in tandem with the Master slider.

## Iridescent

Iri looks at the angle between the point being shaded and the object referenced. It can return a color based on that angle, or it can return a simple grayscale.

### Center(s)

A zero here indicates that the normal points right at the Vector. The unit is degrees- the range is 0 to 90. This is so you can set up any number of bands (up to 7) spaced however you want.

### Falloff(s)

Smaller numbers are wider bands, larger numbers indicate faster falloff, narrower bands.

### Color

Color pickers to set the color for each band.

### Use 1st Falloff for all checkbox

Hit this checkbox to make the falloff from the 1st box apply to all the others (saves having to copy the value when you want even bands, the most common case)

### Fill rest with last color

Anything that falls beyond 90 degrees picks up the last color.

### Edge Mix Mode radio buttons (Smooth Mix or Shader Mix)

Controls the way the bands interact. Smooth mix uses a simple sine curve to blend them. Shader mix uses values from the Edge Control shader to add some control to how they are blended. Turbulence and Noise type shaders are good for adding a little randomness.

### Edge Control Shader

Shader mix uses values from the Edge Control shader to add some control to how the bands are blended. Turbulence and Noise type shaders are good for adding a little randomness.

### Grayscale output and Invert Grayscale checkboxes

Instead of using any of the center, falloff, and color information. a grayscale value is returned. Inverting it allows you to have either black or white be the 0 vector (where the normal points right at the vector). Especially useful for CS3 with the new Gradient shader.

### Angle Mode radio buttons, Light Vector or Reference Vector

Light Vector means to point at the object referenced in the text box. Usually a light which would be pointed at the object with the iridescence shader, but it can be any object. Reference Vector lets you define a specific vector. Good for distant lights, just copy the yaw and pitch values in.

### Yaw and Pitch

Angles for determining the reference vector. Degrees.

##

## Super Mixer

Super Mixer allows for 10 shaders to be combined in two different ways- a simple addition (good for multiple masks or cutouts), or a more complex grayscale controlled mode that lets you mix shaders based on another shader’s grayscale value.

### Shader sliders (1-10)

These sliders set the range of luma (returned from the Mix Shader) that map to the Shader picks below. For example, in the above image, if the Mix Shader returns black (zero luma), the Super Mixer will return the value from Shader 1 (red, in this case).

### Shader (1-10)

These are the sub-shaders mixed in by Super Mixer. They can have any structure.

### Fill undefined checkbox

Setting this checkbox will fill any values NOT covered by a range set with the Shader sliders with Shader 10.

### Control Mode radio buttons, Mixer Mode or Add Mode

Mixer mode uses the Mix shader and influences to determine the value returned. Add mode simply adds all the shaders together- useful for combining masks.

### Edge Mode radio buttons, Smooth Mix or Shader Mix

Smooth Mix uses a sine-type blending of overlapping shaders. Shader Mix uses input from the Blend shader to control the blending of overlapping shaders.

### Edge Blend Use Falloff checkbox

Allows the edges of the shaders to be feathered down.

### Edge Blend Percentage Falloff slider

Controls how quickly the edges feather down.

### Linear checkbox

Uses a slower curve to feather the edges down.

### Influence Setup radio buttons, Auto Distribute Influences or Manual Influences

A little time saver. If you click Auto, the shader will find how many of the Shader channels are populated, and set up the influences such that they are evenly distributed. You can’t change them until you switch back to manual.

## Weave

Weave allows for an arbitrary over-under pattern of threads or ribbons. The individual threads may be constructed of any shader.

### Tiles U and V sliders

These sliders set how many times to tile the base weave pattern.

### U and V Spacing sliders

These set the spacing between the threads. Spacing and thread widths are RELATIVE not absolute.

### Width U1-5, V1-5 sliders

These sliders set the widths of the threads. Thread width and spacing are RELATIVE not absolute. (I.e. 10, 10, 20 is the same as 1,1,2)

### U1-5 and V1-5 shaders

These are the shaders for the threads. They can be simple or complex. You MUST fill from shader 1 to shader 5 without skipping any! Blank shader entries cause the plug-in to think it has reached the end of the data. If you want stripes, just leave U1 or V1 blank while populating the other.

### Background shader

Values from this shader are used where there are no threads.

### Shader Compression, Along and Across checkboxes

Shader compression allows you to sample a shader down such that it will fit within a thread. If you check Across, the shader will be sampled down across the thread. If you check Along, each segment of the thread, where it runs on top of the cross threads, will have the sampled down shader. If you check both, the entire sub-shader will be sampled down into each segment. Note that this shader is UV based- if you try to sample a shader that is not based on UV space, it will not sample down.

### Mode radio buttons, Basic Mode or Advanced Mode

Basic Mode is a quick way to do a simple weave. It uses U1 and V1 only. None of the other shaders or widths are used. The On top checkbox matrix is also overridden. (If you haven’t figured it out yet, those are all of the controls below the line. ;-) Advanced mode enables all controls.

### On top checkbox matrix

These checkboxes allow you to make any arbitrary pattern of crossovers.

### 3-D Across and 3-D Along checkboxes

Enable 3-D shading when used in Color channel. Enable bump when used in Bump channel.

### Across and Along Intensity sliders

Set how strong the across and along effects are. Smaller numbers are less intense.

### Wiggle and Edge Intensity sliders

These sliders control two distortion modes. Wiggle is a large scale distortion warping. Edge distortion adds effects along the edges of the threads. The base values are taken from the Wiggle and Edge shader channels and then modified by these slider settings.

### Wiggle and Edge shaders

These shaders control two distortion modes. Wiggle is a large scale distortion warping. Edge distortion adds effects along the edges of the threads. The base values are taken from these shader channels and then modified by the corresponding intensity slider settings.

### Mask Only and Invert Mask checkboxes

These checkboxes allow easy mask generation, with all threads black and all spaces white, or vice-versa. It overrides any color choices made in the U, V, and Background shader channels. Very useful for the Transparency channel