SLIM's CORE FUNCTIONS


The Core Set of Functions

The core set of functions provided by Slim can be used to generate a wide range of shaders which utilize many different special features of Slim. These core functions generally serve one particular purpose, like creating a simple noise or a pattern. The functions by themselves are not always useful must be connected to other functions to obtain a meaningful result, but the atomic nature of functions affords a great deal of flexibility when it comes to assembling shading networks.

FLOATS

A float function calculates a single floating point value at every point.  Grayscale or binary texture maps can be accessed as float functions but float functions can also be arbitrarily valued.   Various rescaling functions can be used to bring a function's range into a desirable realm.
AgeNormPP    Access this primitive variable of Maya particles.
Brownian    A brownian.
ColorToGray    Connect a color to a float connection input.
Combine    Combine two floats in three different ways.
Combine Float List    Combine multiple floats in layers.
Distance    Returns a value based on distance.
Face Direction    Returns a value based on user specified orientation.
Facing Forward    Returns a value based on orientation of normal.
Fractal    A fractal.
Grey Cells    Grey cells.
Image File    Add an image file. Select channel or luminance.
Noise    A noise pattern.
Oak Grain    Simulate a variety of wood grain.
Prim Var    Access primitive variables.
Random Tiler    Tile numerous floats together.
Ray Traced Hit Test    A ray trace float
Ray Traced Hit Messaging    A ray trace messaging float
Remap    Adjust the contrast and brightness of a float.
RSLVarsF    A visualizer for shading language “globals”.
Shadow Map    Add shadow calculations to a light.
Shapes    Generate several shape patterns.
Soft Shadow Map    Add soft shadow calculations to spot lights.
Time    Returns a value based on time.
Turbulence    A turbulence.
Vector Length    Returns length of a vector
Waves1D    Generate wave patterns.
Worley    A honeycomb type pattern.


AgeNormPP

description: Use this to return a value based on the particle age

multiplier
Modifies the result of particle age


Brownian

 Base Frequency

octaves
max # of octaves to calculate.

lacunarity
frequency spacing between successive octaves

gain
scaling factor between successive octaves

rescale

Fourth Dimension
You can get 4D brownian noise by connecting this parameter to any float function.  Often you'll want to connect some function of time here.

manifold
Define the shader space for the float.


ColorToGray

 Input Color
Explicitly convert from a color parameter to a float. Connect a color here that you want to hook into a float connection menu.

Conversion
Pick how you want the color transferred to black and white.
Invert
Invert the selection.

Bias
A normalized gamma correction factor. Values greater than .5 lighten the result, values less than .5 make it darker.

Gain
Gain is used to favor dark area when less than .5 or light areas when greater than .5


Combine

Description: Combine two (or more) grayscale functions using a variety of different operations. Use the Plus and Minus buttons to add or remove additional float values.

Operation
Select the type of operation to be performed on the floar values. Choose from: Product, Sum, Min, Max, etc. 

 V1 
Float value one. Make a connection here. 

V2
Float value two. Make another connection here. 


Combine

Description: Combine multiple floats as layers, using a variety of different operations.


Distance

Description: Calculates the distance of points on a
manifold from the origin.  You might use this
distance to vary some function along the distance.
For example you could map a light intensity through
a spline, using this function.

domain

multiplier
A multiplier for the distance.

manifold
Define the shader space for the float.


Facing Direction

Description:  A function that computes the degree to which the normal of a surface faces any specified user direction. Results range from -1 (facing away from the direction) to 1 (facing toward the direction). Use the Abs and Clamp parameters to control result of the function.

Direction
Connect an Arbitrary Direction node here in order to specify a custom direction. In this case the direction is Y, so the teapot is white on top, and black everywhere else, which might be incorporated into dust or snow. Keep in mind any direction is possible.

Abs
Takes the absolute value of result. This means that surfaces that face away from the camera will be treated as though they face toward it. Use this to create effects such as two-sided shaders.

Clamp
Clamps the result between 0 and 1. If the Abs parameter is disabled, all backfacing surfaces will result in black.

Invert
Performs an inversion of the results as defined by 1 - result. Behavior will vary with the setting of the Abs and Clamp parameters.

Attenuation
Controls the rate of falloff with angle.


Facing Forward

Description:  A function that computes the degree to which the normal of a surface faces the camera. You can use this function to fade the opacity of objects near the edges of your objects. Results range from -1 (facing away from camera) to 1 (facing toward the camera). Use the Abs and Clamp parameters to control result of the function.

Abs
Takes the absolute value of result. This means that surfaces that face away from the camera will be treated as though they face toward it. Use this to create effects such as two-sided shaders.

Clamp
Clamps the result between 0 and 1. If the Abs parameter is disabled, all backfacing surfaces will result in black.

Invert
Performs an inversion of the results as defined by 1 - result. Behavior will vary with the setting of the Abs and Clamp parameters.

Attenuation
Controls the rate of falloff with angle.


Fractal

Description: Float Fractal function.

Layers
The number of noise layers used.

Frequency
Sets the lowest (starting) frequency of the noise layers.

Lacunarity
The scaler used to determine the frequency of each sucessive layer of noise. Smaller numbers will cause the layers to be more closely spaced in frequency. Larger values will space them further apart.

Dimension
The frequency exponent. This value is used to scale the magnitude of each sucessive layer of noise using the formula 1/f^(3-2*Dimension); where f is the frequency of the noise being used for a given layer. It's called Dimension since this value relates to the fractal dimension. Bigger values are rougher, smaller values are smoother.

Erosion
The frequency exponent range. The frequency exponent specified by the Dimension is itself offset as a function of the noise magnitude. This value adjusts that offset. This determines the so-called \"crossover scale\" of the fractal. 0 gives a uniform appearance. Negative values will smooth out the low valued areas, and positive values will smooth the high valued ones.

Variation
This value controls which particular variation of the appearance you get - without altering the qualities of the appearance determined by the other controls. So, for example, you can use this to animate the appearance by connecting this to Time, or create several unique instances of the appearance by setting this to different values.

Manifold
Define the shader space for the float.


Gray Cells

 Frequency
The number of gray cells.
manifold
Define the shader space for the float.


Image File

 File
Choose an image file.

Channel
Choose the method to obtain a single value from your texturemap.

Invert

Bias
A normalized gamma correction factor. Values greater than .5 lighten the result, values less than .5 make it darker.

Gain
Gain is used to favor dark area when less than .5 or light areas when greater than .5

S Filtering
The amount to overfilter in the S direction. 1 is the standard filtering.

T Filtering
The amount to overfilter in the T direction. 1 is the standard filtering.

Manifold
Define the shader space for the float.


Noise

 frequency
Define how frequently the noise pattern occurs.

manifold
Define the shader space for the float.


Oak Grain

Description: Makes procedural solid texture that looks very much like
wood grain.  The rings surround the z axis, so to position the
pattern, one should manipulate the coordinate system of the
manifold.  This makes a fairly plain, unfinished wood, that looks
very much like oak.

ringfreq
mean frequency of ring spacing

rignunevenness
0=equally spaced rings, larger is unequally spaced

grainfreq
frequency of the fine grain

ringnoise
amount of irregularity in rings.

ringnoisefreq
frequency of ring irregularities.

trunkwobble
amount of irregularity of the tree trun (z-axis).

trunkwobblefreq
frequency of trunk wobbles.

angularwobble
trunk wobble with angle

angularwobblefreq
frequency of the angle-determined trunk wobble.

ringy
overall scale on the degree to which rings are weighted.

grainy
overall scale on the degree to which grain is weighted.

manifold
Define the shader space for the float.



Prim Var

Description: Allows you to incorporate primitive variables into shader networks.

Primitive Variable
Enter the name of your color primitive here. Note that this can't be an expression.

Multiplier
A multiplier for the underlying vertex variable.


Random Tiler

Description: Create a tile of several different floats. Just connect a number of floats, adjust the Tile Count accordingly, and connect a Tile mainfold with "Random Z" enabled. Each connection should also be fed by the same Tile manifold attached to this float.

 Tile Count
Specify the number of different floats to use as tiles. This amount should be based on how many floats you've connected to Random Tiler. If you don't fill a connection, that tile we be black.

Tile Count
Specify the number of different tiles to use. Generally you want the amount of connections you make to equal your tile count. If you don't fill a connection, that tile we be black.

PatternN
Add different floats that you wish to tile. Be sure to connect their manifolds to the Tile you attach to the Random Tiler.

Manifold
Connect a Tile manifold here and enable its "Random Z" parameter. The float requires both to function properly.


Ray Traced Hit Test

Description: Allows you to incorporate a trace call into your surface shader.

Ray Origin
Determines where the ray is shot from. CurrentPoint is usually prudent.

Direction 
Determines in what direction the ray bounces when hitting a surface. 

Samples 
For obtaining higher quality when blurring reflections. Controls the amount of rays sampled at any given point. Higher samples increase the quality of the blur, but render slower. Lower samples render faster and are useful for preliminary images. 

Blur
You can create interesting effects by blurring trace operations. Increase this setting to get more blur, or connect a function here for special effects. Remember when creating blurry reflections you'll also want to increase the "Samples" parameter to at least 4. Larger blurs require more samples.

Trace Set
Trace Sets can be used to define what objects a shader will consider for ray tracing calculations. Careful use of Trace Sets can not only be extremely efficient, it can also be used for special effects, by specifying which objects are visible to any given collection of objects. Manage Trace Sets using the familiar Maya sets, with an added Trace Set attribute. 

Ray Label
Allows you to associate a label with the rays. Shaders on intersected objects are able to query this label and perform label-specific calculations. You can think of this as message passing in the downstream direction. 

Max Distance
The maximum distance to consider when calculating ray intersections. Setting this parameter to a negative number is effectively equivalent to setting the distance to infinity. (And a lot easier, heh.) An appropriate Max Distance setting can significantly speed up a scene by only doing as much work as needs to be done. Those rays that don't hit anything can reference an environment map. 

Two Sided 
If your primitives have outward facing normals, you can speed up ray tracing by leaving this switch disabled. If you are missing reflections, turn this switch on.


Ray Traced Hit Messaging

Description: Allows you to incorporate a trace call that shoots rays which can look up arbitrary variables in other shaders. With this functions a ray can return arbitrary information about a surface.

Message Spec 
The name of the variable to look up. The shader variable name must be preceded by the RenderMan shader type and a color. 

Ray Origin
Determines where the ray is shot from. CurrentPoint is usually prudent.

Direction 
Determines in what direction the ray bounces when hitting a surface. 

Samples 
For obtaining higher quality when blurring reflections. Controls the amount of rays sampled at any given point. Higher samples increase the quality of the blur, but render slower. Lower samples render faster and are useful for preliminary images. 

Blur
You can create interesting effects by blurring trace operations. Increase this setting to get more blur, or connect a function here for special effects. Remember when creating blurry reflections you'll also want to increase the "Samples" parameter to at least 4. Larger blurs require more samples.

Trace Set
Trace Sets can be used to define what objects a shader will consider for ray tracing calculations. Careful use of Trace Sets can not only be extremely efficient, it can also be used for special effects, by specifying which objects are visible to any given collection of objects. Manage Trace Sets using the familiar Maya sets, with an added Trace Set attribute. 

Ray Label
Allows you to associate a label with the rays. Shaders on intersected objects are able to query this label and perform label-specific calculations. You can think of this as message passing in the downstream direction. 

Max Distance
The maximum distance to consider when calculating ray intersections. Setting this parameter to a negative number is effectively equivalent to setting the distance to infinity. (And a lot easier, heh.) An appropriate Max Distance setting can significantly speed up a scene by only doing as much work as needs to be done. Those rays that don't hit anything can reference an environment map. 

Two Sided 
If your primitives have outward facing normals, you can speed up ray tracing by leaving this switch disabled. If you are missing reflections, turn this switch on.

 


Remap

Description: A utility node for remapping floating point values. Values go through 3 steps.  First they are clamped and linearly remapped into the range inputmin->inputmax. Next, they are rescaled to fall within outputmin->outputmax. Finally, bias and gain are applied.

input

inputmin

inputmax

outputmin

outputmax

Disable Bias/Gain
Bias and Gain assume that the remapped values are on the range 0,1. Check this box to disable the bias and gain operations and avoid the range clamping.

Bias
A normalized gamma correction factor.  Values greater than .5 lighten the result, values less than .5 make it darker.

Gain
Gain is used to favor dark area when less than .5 or light areas when greater than .5.


RSLVarsF

Description: A visualizer for shading language “globals”.

State Variable
Select the variable (s, t, u, v, Cs.r, Cs.g, Cs.b, Os.r, Os.g, or Os.b).



Shadow Map

 File
The name of your shadow map. You can refer to shadows with a tcl expression like: [shdmap $OBJNAME]

Samples
The number of samples to take of the map.  Use larger numbers when you need smooth blurring effects.

Blur

Bias
Controls self shadowing artifacts of shadow algorithm. Set the bias to 0 if you want to use the default shadow bias.

manifold
Typically you'll want to connect this to SurfPtLight


Shapes

 The generator shape. The cookie cutter shapes - Star, Circle, Square, and Diamond - support the Row Offset option and Tile Sizes greater than one from the Tile manifold; and Star, Diamond, and Squiggles make use of the Random Z option.

Fuzziness
Controls the width of the shape's edge.

Invert

Manifold
By default, we use ST coordinates, however you might consider plugging in the Tile generator to test your resistance to the dreaded repetitive stress disorder.


SoftShadowMap

File
The name of your shadow maps. You can refer to shadows with a tcl expression like: [shdmap $OBJNAME soft]

SoftSize
The spacing between shadowmaps, used to simulate the size of your area lightsource.  Make sure this number agrees with the settings used to generate the soft shadows.

Samples
The number of samples to take of the map.  Use larger numbers when you need smooth blurring effects.

Blur

Bias
Controls self shadowing artifacts of shadow algorithm. Set the bias to 0 if you want to use the default shadow bias.

GapBias
Tells the renderer how to infer connectivity information in the shadow maps. Adjacent pixels whose z values are within "gapbias" of each other will be assumed to be part of the same object. Sometimes experimentation may be necessary to find the right gapbias value, but a good starting point (and often a good enough value) is the shadow bias number. When set to 0 the default GapBias is used.

manifold
Typically you'll want to connect this to SurfPtLight


Time

Description: Provides access to the standard RenderMan \"time\" variable.  This value is that specified via the RiShutter call in the RIB file and is often measured in seconds.  You can generate effects that repeat over time by connecting this function to a wave generator.

offset

scale


Turbulence

 Base Frequency

octaves
max # of octaves to calculate.

lacunarity
frequency spacing between successive octaves

gain
scaling factor between successive octaves

invert

Fourth Dimension
You can get 4D brownian noise by connecting this parameter to any float function.  Often you'll want to connect some function of time here.

manifold
Define the shader space for the float.


VectorLength

Description: The length of a vector.

Scale
Scales the length of the vector.

V


Waves1D

Description: Generates one-dimensional wave-like patterns. Patterns ranging from linear to circular can be obtained through the use of the Domain parameter.

Domain
The dimension along which the waves travel. Use this parameter to obtain circular/spherical patterns (Radius) as well as radial patterns (Angle...). This parameter can be used in conjuction with Surface Point to trade off between 2D and 3D shapes. For example, if you use ST wich Radius, you'll get cylinders of patterns. If you use Surface Point, you'll get spherical patterns. 'nuff said?

Frequency
The frequency of the wave.

Manifold

Max
The result is scaled to fit between Min and Max.

Min
The result is scaled to fit between Min and Max.

Shape
The shape of an individual wave.

Velocity
The velocity of your wave.

Amplitude Variance
The variation of amplitude from cycle to cycle. A value of zero results in regular black/white pattern. A value of one results in many shades of gray.

Frequency Variance
The variation of the frequency from cycle to cycle. A value of zero results in regular cycles while a value of one results in more irregular patterns. This parameter has no affect on the noise shapes.

Shape Factor
A weighting factor for the ying (-1) and yang (+1). At 0, perfect harmony is attained.


Worley

frequency
Controls the size of the cells. Higher frequencies make smaller cells.

distancemetric
The means to measure distances to neighboring cells.  Manhattan distance gives more rectangular shapes and Euclidian distance gives more spherical shapes.

jitter
Controls the distortion of the cells.

clamp
Causes resulting distances to be clamped to the range 0->1

c1
Multiplier for the distances to the first
feature.

c2
Multiplier for the distance to the second feature.

manifold
Define the shader space for the float.



 


Pixar Animation Studios
(510) 752-3000 (voice)   (510) 752-3151 (fax)
Copyright © 1996- Pixar. All rights reserved.
RenderMan® is a registered trademark of Pixar.