-
-
air
-
The ``air'' shader mimics the behaviour of atmosphere.
Volumes of modeled air can be given a realistic appearance by
using this shader. The shader performs basic Beer's Law
extinction and contrast reduction. It should be applied only
on regions where the air code has been set to a non-zero
value. See edcodes for
information about setting the air flag on the region).
The ``air'' shader assumes that the volume is a
homogeneous volume of non-turbulent air. The shader provides
crude modeling of absorption and scattering effects in the
atmosphere. Absorption and/or extinction effects are modeled
by reducing the transmission of the air volume by an amount
proportional to the distance traveled through the air.
Transmission = exp( - Tau )
Tau = optical path depth
= density_per_unit_distance * distance
Scattering effects are modeled by replacing the
non-transmitted color energy with an ambient energy.
Specifically, the color of the air region is used for the
non-transmission portion. The result is that short paths
through the air volume are relatively clear, whereas long
paths become very muddied with the color of the air.
Parameters
Parameter |
Abbreviation |
Default Value |
|
dpm |
- |
0.1 |
- dpm
- Density per meter. This parameter describes the optical
density of the atmosphere per unit meter of distance.
Example
mged> mater air.r air dpm=5000 180 180 220 0
-
-
emist
-
The ``emist'' shader is much like the air
shader except that the density of the atmosphere varies
exponentially as a function of altitude. Above a certain
delta from the Z=0 plane, emist should be identical to
``air''. Below this level, density increases exponentially.
Parameters
Parameter |
Abbreviation |
Default Value |
|
dpm |
- |
0.1 |
delta |
d |
0.0 |
- dpm
- Density per meter. This parameter describes the optical
density of the atmosphere per unit meter of distance.
- delta
- This is the height (above the Z=0 plane) at which the
fog starts to get exponentially denser. From this altitude
downward density increases. By default this value is
specified in millimeters, (regardless of the current MGED
editing units). It is possible to specify values in other
units by appending the units as a suffix to the value. For
example: ``2ft''.
Examples
mater swamp_gas.r emist "dpm=5000 delta=2ft" 180 180 220 0
-
-
marble
-
The "marble" shader simulates the color patterns present in
some types of marble. This is a procedural shader based upon
a fractal noise function known as turbulence.
The fractal noise function produces a pseudo- random
number in the range [0.0 ... 1.0] from the 3-space
coordinates of a point in the bounding volume of the region.
This noise value is used to determine the ratio of two colors
present as the final color of the object. The object color
and a shader-specific color are combined. The color produced
is a combination of
The fractal pattern has infinite resolution. As a result,
the borders of the color splashes never become pixelated, no
mater how close the eyepoint is to the surface.
Parameter |
Abbreviation |
Default Value |
|
Noise Parameters |
lacunarity |
l |
2.1753974 |
H |
H |
1.0 |
octaves |
o |
4.0 |
size |
s |
1.0 |
vscale |
v |
1.0/1.0/1.0 |
delta |
d |
1000/1000/1000 |
|
Shader Specific Parameters |
color2 |
c2 |
250/100/100 |
- Lacunarity
- The grid on which the noise function is built is scaled
by this value for each successive octave of noise which
will be combined to produce the final result.
- H
- Octaves
- The number of times the noise grid will be scaled and
recombined to produce the final noise function
- Size, Vscale
- If size is set it is used as a scalar which
defines the size of the noise grid on the object. So if
t2=0.5 and size=5mm then splotches of color3 would tend to
be no larger than 5-10mm. If non-uniform scaling is
required, Vscale can specify the grid size in X, Y and
Z.
- Delta
- This specifies a translation in noise space for the
origin of region space. Since the origin of noise space is
reflected 8 ways, it is undesirable to have that portion of
noise space overlap with region space.
Examples
mater column.r stack marble s=512;plastic 250 240 280 0
-
-
camo
-
The "camo" shader creates a pseudo-random tri-color
camouflage pattern on the object using a fractal noise
pattern. This is a procedural shader based upon a fractal
noise function known as fractional brownian motion or fBm.
The fractal noise function produces a pseudo- random
number in the range [-1.0 ... 1.0] from the 3-space
coordinates of a point in the bounding volume of the region.
This noise value is used to determine the color of the object
at the given location.
Noise value |
Object Color |
nv < thresh1 |
color1 |
nv < thresh1
and
nv < thresh2
|
color2 |
nv > thresh2 |
color3 |
The fractal pattern has infinite resolution. As a result,
the borders of the color splashes never become pixelated, no
mater how close the eyepoint is to the surface.
Parameters
The parameters associated with the noise function are
common to all shaders based upon the noise functions.
Parameter |
Abbreviation |
Default Value |
|
Noise Parameters |
lacunarity |
l |
2.1753974 |
H |
H |
1.0 |
octaves |
o |
4.0 |
size |
s |
1.0 |
vscale |
v |
1.0/1.0/1.0 |
delta |
d |
1000/1000/1000 |
|
Shader Specific Parameters |
thresh1 |
t1 |
-0.25 |
thresh2 |
t2 |
0.25 |
color1 |
c1 |
97/74/41 |
color2 |
c2 |
26/77/10 |
color3 |
c3 |
38/38/38 |
- Lacunarity
- The grid on which the noise function is built is scaled
by this value for each successive octave of noise which
will be combined to produce the final result.
- H
- Octaves
- The number of times the noise grid will be scaled and
recombined to produce the final noise function
- Size, Vscale
- If size is set it is used as a scalar which
defines the size of the noise grid on the object. So if
t2=0.5 and size=5mm then splotches of color3 would tend to
be no larger than 5-10mm. If non-uniform scaling is
required, Vscale can specify the grid size in X, Y and
Z.
- Delta
- This specifies a translation in noise space for the
origin of region space. Since the origin of noise space is
reflected 8 ways, it is undesirable to have that portion of
noise space overlap with region space.
Examples
mged> shader tent.r stack "camo ; plastic"
Limitations
Because of the continuous nature of the
fractal noise space, it is impossible to get a splash of
color1 directly adjacent to a splash of color3.
-
-
fire
-
The ``fire'' shader creates a space-filling semi-transparent
color texture that resembles fire.
Parameters
Parameter |
Abbreviation |
Default Value |
|
Noise Parameters |
lacunarity |
l |
2.1753974 |
H |
H |
1.0 |
octaves |
o |
4.0 |
size |
s |
1.0 |
vscale |
v |
1.0/1.0/1.0 |
delta |
d |
1000/1000/1000 |
|
Shader Specific Parameters |
flicker |
f |
0.0 |
stretch |
st |
0.0 |
- flicker
- Specifies rater of translation through noise space for
animation. Animation frametime*flicker produces a delta of
Z in noise space for the given frame/pixel. Useful values
are probably in the range 0 .. 10.
- stretch
- Specifies a scaling of the exponential stretch of the
flames. Flame stretch effect = exp(pos[Z] * - stretch)
Examples
mged> mater air.r air dpm=5000 180 180 220 0
-
-
light
- When light sources are explicitly modeled in the geometry
description, they are given a shader type ``light''. The color
of the region defines the color of the light.
-
Parameters
Parameter |
Abbreviation |
Default Value |
|
inten |
- |
1000 |
angle |
- |
180 |
fract |
- |
(computed) |
aim |
- |
0 |
shadows |
- |
1 |
infinite |
- |
0 |
invisible |
- |
0 |
- intensity
- Intensity of the light source (nominally in
lumens)
- angle
- Beam dispersion angle (degrees 0..180)
- fraction
- Fraction of total light
- shadows
- Boolean: Does light cast shadows
- infinite
- Boolean: Is light source infinitely distant
- aim
- Boolean: Take light aim direction from solid
- invisible
- Boolean: Is light source visible as an object
Example
mged> shader lightbulb.r light
-
-
fbmbump
-
turbump
-
fbmcolor
-
turcolor
- These shaders apply a noise function to the surface normal
or the intensity of the surface color. The ``bump'' shaders
apply either fBm or turbulence noise to the surface normal of
the object. The ``color'' shaders apply either fBm or
turbulence noise to the intensity of the surface color.
-
Parameters
Parameter |
Abbreviation |
Default Value |
|
Noise Parameters |
lacunarity |
l |
2.1753974 |
H |
H |
1.0 |
octaves |
o |
4.0 |
size |
s |
1.0 |
vscale |
v |
1.0/1.0/1.0 |
delta |
d |
1000/1000/1000 |
|
Shader Specific Parameters |
angle |
a/ang |
1.0 |
|
- angle
- Maximum angle of the surface normal deviation.
Example
mged> shader air.r proto
-
-
plastic
-
mirror
-
glass
- These are really all just the Phong shader ``plastic''. The
``mirror'' and ``glass'' shaders simply set different
defaults.
-
Parameters
Parameter |
Abbreviation |
Default Value |
plastic |
mirror |
glass |
|
shine |
sh |
10 |
4 |
4 |
specular |
sp |
0.7 |
0.6 |
0.7 |
diffuse |
di |
0.3 |
0.4 |
0.3 |
transmit |
tr |
0.0 |
0.0 |
0.8 |
reflect |
re |
0.0 |
0.75 |
0.1 |
ri |
- |
1.0 |
1.65 |
1.65 |
extinction |
ex |
0.0 |
0 |
0 |
|
- shine
- Describes the shininess of the object [4..20] where 4
is a very highly polished surface, and 20 defines a very
rough surface
- specular
- Defines the amount of energy due to directional
reflection of energy (e.g. due to light sources in the
scene)
- diffuse
- Defines the portion of energy due to diffuse (non
directional) surface reflection, e.g. due to ambient
illumination
- transmit
- Defines the portion of light [0..1] due to energy
transmitted through the object
- reflect
- Defines the portion of light [0..1] due to reflected
energy
- ri
- Sets the refractive index
- extinction
- Set but not used
Example
mged> shader air.r proto
-
-
points
- Phil Dykstra's points shader
-
Parameters
Parameter |
Abbreviation |
Default Value |
|
- parameter
- Description of parameter
Example
mged> shader air.r proto
-
-
scloud
- Lee's ``Solid Clouds''
-
Parameters
Parameter |
Abbreviation |
Default Value |
|
- parameter
- Description of parameter
Example
mged> shader air.r proto
-
-
cloud
- Geoffrey Gardner style 2D cloud texture
-
Parameters
Parameter |
Abbreviation |
Default Value |
|
- parameter
- Description of parameter
Example
mged> shader air.r proto
-
-
cs
- Lee's Color space. Maps RPP of region onto color cube
-
Parameters
Parameter |
Abbreviation |
Default Value |
|
- parameter
- Description of parameter
Example
mged> shader air.r proto
-
-
rtrans
- John's random transmission shader
-
Parameters
Parameter |
Abbreviation |
Default Value |
|
- parameter
- Description of parameter
Example
mged> shader air.r proto
-
-
spm
- Spherical pixmap texture
-
Parameters
Parameter |
Abbreviation |
Default Value |
|
- parameter
- Description of parameter
Example
mged> shader air.r proto
-
-
stack
- Shader stacker
-
Parameters
Parameter |
Abbreviation |
Default Value |
|
- parameter
- Description of parameter
Example
mged> shader air.r proto
-
-
stack
- external Shader stacker
-
The "extern" shader takes a filename as its only argument.
The file is opened and shaders and their parameters are read
from the file. The "extern" shader is really an extension of
the "stack" shader. The contents of the file can have the
same structure as the content of the stack shader
parameters.
WARNING: Since the mged command line format for specifying
shaders and their parameters was converted to a Tcl/Tk
syntax, the format in the shader file is NOT what the user is
accustomed to typing. Instead, the old structparse() format
should be adhered to:
shader param=value param=value;shader param=value param=value
The "extern" shader was developed to overcome limitations in
the v4 database format. The specific limitation addressed is that
there are only 40 characters available for the shader parameter
string.
Example
mged> shader stuff.r "extern stuff_material.shd" 255 255 255 0
% cat stuff_material.shd
texture file=image.pix w=768 n=512;
plastic sp=.8 di=.2 sh=10 tr=.1 re=.1
-
-
stxt
- Broken and antiquated attempt at solid textures
-
Parameters
Parameter |
Abbreviation |
Default Value |
|
- parameter
- Description of parameter
Example
mged> shader air.r proto
-
-
checker
- checkerboard color texture
-
Parameters
Parameter |
Abbreviation |
Default Value |
|
- a
- 3-tuple color for squares
- b
- 3-tuple color for other squares
- s
- number of squares in each direction (u,v)
Example
mged> shader board.r "stack checker a=255/255/255 b=100/100/100 s=8;plastic"
-
-
fakestar
- A fake star skymap texture
-
Parameters
Parameter |
Abbreviation |
Default Value |
|
- parameter
- Description of parameter
Example
mged> shader air.r proto
-
-
texture
- maps a .pix file onto an object using u,v coordinates. This
is usually undesirable for objects made up of more than one
primitive solid.
-
Parameters
Parameter |
Abbreviation |
Default Value |
file |
|
|
w |
|
512 |
n |
l |
w |
transp |
|
|
|
- file
- Name of the pix file to map onto the object
- w
- width of the pix file in pixels
- n
- number of scanlines in the pix file
- transp
- a value which indicates the object does not exist (is
transparent).
If the "transp" parameter is not set by the user, then no
values are deemed transparent.
Example
mged> shader cube.r stack texture file=eagle-w512-n438.pix w=512 n=438;plastic 0 0 0 0
See Also
prj, bwtexture
-
-
bwtexture
- maps a .bw file onto an object using u,v coordinates
-
Parameters
Parameter |
Abbreviation |
Default Value |
|
- parameter
- Description of parameter
Example
mged> shader air.r proto
-
-
bump
- Uses the R,B color data from a .pix file as a surface
normal bump map
-
Parameters
Parameter |
Abbreviation |
Default Value |
|
- parameter
- Description of parameter
Example
mged> shader air.r proto
-
-
testmap
- Ramps the red value from off to on as the "u" coord of a
texture map varies from m0 to 1, and the blue value with the "v"
coordinate. For debugging.
-
Parameters
Parameter |
Abbreviation |
Default Value |
|
- parameter
- Description of parameter
Example
mged> shader air.r proto