Strings in QUICKREF.TXT


                  Persistence of Vision Raytracer
Version 1.0
Quick Reference
-------------------------------
By Larry Tweed & Drew Wells
This document is designed as a quick reference for those already familiar
with the program POV-Ray. You should use POVRAY.DOC to learn about
POV-Ray and then use this document as a memory jogger or for quick syntax
checks. It is not meant to replace the main documents that accompany
POV-Ray.
NOTE: This document is not complete or perfectly accurate in all cases.
We judged it to be useful even with a few innacuracies and its state
of completion. Hopefully, it will be useful to you.
If you can't find something here or can't understand what is here,
refer to POVRAY.DOC.
Some entries have been left blank due to time constraints. A later version
of this document will contain text for these entries. For now, refer to
POVRAY.DOC. The list is alphabetical, with texture modifiers at the end
of the list.
---------------------------------------------------------------------------

bezier/bicubic patches
----------------------
Syntax:
Description:
Syntax: blob {
threshold #
component (strength_val) (radius_val) <component center>
component (strength_val) (radius_val) <component center>
[ any number of components ]
[sturm]
}
Description: A blobby shape. Components radii should overlap.
bounded_by
----------
Syntax: object {
...
bounded_by {
shape {...}
}
}
Description: A bounding shape helps speed rendering time in many cases. The
bounding shape is first tested by the raytracer. If the ray
does not strike the bounding shape, the raytracer does not need
to test or calculate any of the bounded objects.
Syntax: box { <x1 y1 z1> <x2 y2 z2> }
Description: A box shape is defined by specifying 2 corners. The first corner
(<x1 y1 z1> in the example above) must be smaller than the
second corner.
camera
------
Syntax: camera {
location <0 0 0>
direction <0 0 1>
up <0 1 0>
right <1.33 0 0>
look_at<0 0 0>
sky <0 1 0>
}
Description: The camera defines the orientation and location in space
of the viewer. The values shown above are the default values.
If these items are not specified, the defaults will be used.
clipped_by
----------
Syntax: object {
...
clipped_by {
object {...}
}
}
Description: clipped_by will "cut off" any part of the object that is outside
the clipping shape. This should not be confused with bounded_by.
composite
---------
Syntax: composite {
object1 {...}
object2 {...}
}
Description: composite will "glue together" 2 or more objects. Essentially,
the objects can then be considered as single unit.
difference
----------
Syntax: object {
difference {
shape1 {...}
shape2 {...} // This will be "cut out" of shape1
shape3 {...} // This will be "cut out" of shape1
shape4 {...} // This will be "cut out" of shape1
(...)
}
}
Description: A difference is a CSG shape. All points in shape1 that are not
in shape2 will be included in the final shape. A difference
essentially subtracts the shapes following shape1 from shape1.
Any number of shapes may be used.
direction
---------
Syntax: direction <# # #>
Description: The direction vector is used in the camera block and specifies
the direction the camera is pointing with a vector. Normally,
this vector points straight ahead (<0 0 1>) and look_at is
used to point the camera. The direction vector should be used
to set the "length" of the camera lens. Small values are
similar to a wide-angle lens, large values are like a tele-photo
lens.
height_field
------------
Syntax: height_field { gif "file.gif" water_level # }
Description: A height field is a rectangular mesh of triangles where the
height of a triangle at a certain X,Z point is controlled
by the number in a file at that same index. GIF, TGA and POT
files may be used as height fields. The water_level is
the height below which the untransformed height field is cut
off. The untransformed height field is similar in size to:
box { <0 0 0> <1 1 1> }
intersection
------------
Syntax: object {
intersection {
shape1 {...}
shape2 {...}
}
}
Description: An intersection is a CSG shape composed of 2 or more shapes.
All points that are contained in all the included shapes are
included in the final shape. In essence, an intersection is
the space where all the shapes meet.
inverse
-------
Syntax: object {
csg_shape_type {
shape1 {...}
shape2 {... inverse }
}
}
Description: Inverse only has effect when using CSG. When inverse is put into
the definition of a shape, it turns the shape "inside-out".
Essentially, every point that was "inside" the shape is now
"outside" and vice versa.
light_source
------------
Syntax: light_source { <x y z> color red # green # blue #}
Description: To shed a little light on a scene, you must provide a
light_source. The center of the light is at the vector x, y
and z. The red, green, and blue color values define the color
of the light which is cast. The light_source itself is
invisible. A light source is treated as a shape even though it
cannot be seen. It may be used in CSG.
look_at
-------
Syntax: camera {
...
look_at <x y z>
}
Description: look_at defines the point in space at which the camera is
pointing, or focused on as defined by the x, y and z parameters.
no_shadow
---------
Syntax: object {
...
no_shadow
}
Description: no_shadow causes an object to be transparent to all light
sources. The object will not cast a shadow. This feature is
especially useful for enclosing a light source to give the
illusion that the light source is actually visible with a shape.
object
------
Syntax: object {
shape_type { ... }
texture { ... }
}
Description: objects are the basic building blocks. An object defines a shape
and associated textures. Objects may not be used in CSG, but
they may be used in composite objects.
plane
-----
Syntax: plane { <x y z> d }
Description: A plane is a flat surface which is infinite in all directions.
The surface normal (or orientation) of the plane is determined
by the x, y and z arguments. The d parameter specifies the
distance of the plane from the origin in the direction of the
surface normal.
plane { <0 1 0> 0 } // XZ plane, a floor
plane { <0 0 1> 10 }// XY plane, a wall
Quadric
-------
Syntax:
Description:
Quartic
-------
Syntax:
Description:
right
-----
Syntax: right <x y z>
Description: Used in the camera description, it specifies which direction
in the ray tracing universe is the right hand side of the
image being generated. Usually, right <1.33 0 0>.
rotate
------
Syntax: object { ... rotate <x y z> }
shape { ... rotate <x y z> }
texture{ ... rotate <x y z> }
Description: rotate will move any element about the origin in x, y and z
degrees. It is important to note that if the object is not
centered at the origin, it will "orbit" the origin rather
than its current center.
scale
-----
Syntax: object { ... scale <x y z> }
shape { ... scale <x y z> }
texture{ ... scale <x y z> }
Description: scale will enlarge or reduce the size of any element.
If the values for x, y or z are greater than 1.0, the object
is enlarged. If the values are between 0.0 and 1.0, the object
is shrunk. Scale may also be use on textures.
NOTE: Scaling by zero will cause an error.
Syntax: camera {
...
sky <x y z>
}
Description: sky describes the orientation of the sky, which is not
necessarily the same as the UP direction. If sky is defined,
it must be defined before the look_at parameter.
sphere
------
Syntax: sphere { <x y z> r }
Description: A sphere is a perfectly round shape. Its location in space is
defined by the x, y, and z arguments. The radius is determined
by the r argument. The width of a sphere will be 2 x r. It
cannot be scaled unevenly.
spotlight
---------
Syntax: light_source {
<x y z> // center of light source
color red # green # blue #
spotlight
point_at <x y z>
radius #
falloff #
tightness #
}
Description: A spotlight light_source emulates the behavior of a real
spotlight, projecting a cone of light. point_at specifies the
point in space that the light is aimed at. radius is the radius
in degrees of the circular "hotspot" at the center of the
spotlight's area of effect. falloff is the radius in degrees
that defines the area where the brightness falls off to zero.
Both values may range between 1 and 180. Tightness controls
how fast the brightness falls off at the edges. Low values
cause softer edges, high values create sharper edges.
texture
-------
Syntax: object {
...
texture {
(texture modifiers)
}
}
shape { ... texture {...} }
Description: The texture keyword begins a block which describes the appearance
of an object, but not the size. See the section on texture
modifiers for a list of available modifiers and their defaults.
A texture may be used inside a shape or object, but not
in a composite object.
translate
---------
Syntax: object { ... translate <x y z> }
shape { ... translate <x y z> }
texture{ ... translate <x y z> }
Description: translate moves the element in space by the number of units
specified by the x, y and z parameters. Translate is relative
to the element's current location. If the element is at <3 4 5>
and is translated by <1 -1 1>, the element is moved to <4 3 6>.
Normally, translate is used after scale because the scale will
"scale" the translate.
triangle
--------
Syntax: triangle { <x1 y1 z1> <x2 y2 z2> <x3 y3 z3> }
Description: A triangle is specified by the coordinates of the 3 vertices.
Triangles have no inside or outside, so cannot be used correctly
in CSG shapes.
union
-----
Syntax: object {
union {
shape1 {...}
shape2 {...}
}
}
Description: Union is a CSG shape. A union essentially superimposes two or
more shapes to create a single object. All points in the shapes
included in a union are included in the final object.
Syntax: camera {
...
up <x y z>
}
Description: The up parameter describes the surface normal of the "up"
direction. up <0 1 0>, for example would have a "up" direction
in the positive y direction.
--------------------------------------------------------------------------
Texture Modifiers
--------------------------------------------------------------------------
agate
-----
Syntax: agate color_map {...}
Description: agate is a pattern similar to marble. It is always turbulent
and ignores the turbulence keyword. agate is used within a
texture block.
alpha
-----
Syntax: color red # green # blue # alpha #
Description: The alpha property of a color determines how transparent the
color is. Values range from 0.0 (opaque) to 1.0 (totally
transparent). Transparency is a filter. Black is always
opaque. The color red with alpha 1 will only allow red light
through, and so on.
ambient
-------
Syntax: texture {
...
ambient #
}
Description: ambient determines the amount of light an object receives even
if it is in complete shadow. This emulates the light that is just
"bouncing around" the room. The default value for ambient is
0.1. Values range from 0.0 to 1.0.
Syntax: bozo color_map {...}
Description: A splotchy color pattern. Turbulence works on it. It's often
used to create clouds.
brilliance
----------
Syntax: texture {
...
brilliance #
}
Description: brilliance controls the tightness of diffuse illumination on
an object and adjusts the appearance of surface shininess. Values
from 3.0 to 10.0 can give a shiny or metallic appearance. The
default value is 1.0. There is no limit on the brilliance value.
bump_map
--------
Syntax: bump_map { file_type "filename"
map_type # interpolate # bump_size #
(use_color) (use_index) }
Ex: bump_map { gif "rough.gif" map_type 1 interpolate 2 bump_size 3 }
Description: Use a graphic image to simulate bumps on a shape.
bumps
-----
Syntax: texture {
bumps #
}
Description: bumps gives the surface of an object a bumpy appearance. Values
for bumps range from 0.0 (no bumps) to 1.0 (very bumpy).
checker
-------
Syntax: checker color red # green # blue #
color red # green # blue #
Description: the checker pattern gives an object a checkerboad appearance.
Two colors must be specified after the checker keyword. These
are the colors that will alternate in the checker pattern. The
checker option is used within the texture block and works best
on planes.
color
-----
Syntax: color red # green # blue # alpha #
Description: colors are specified using the red, green, blue and
(optionally) alpha components. The values for each component
range form 0.0 to 1.0. If a component is not specified, it is
assumed to be 0 (none of that component color).
Alpha specifies the transparency of the color.
color_map
---------
Syntax: color_map {
[start_value end_value color1 color2]
[start_value end_value color1 color2]
...
}
Description: A color_map provides a palette for color patterns. A point on the
surface is located and it is determined which start_value
end_value pair the points falls within. The color is then
determined by smoothly blending the colors associated with
the start_value end_value pair. Values for start_value and
end_value range from 0.0 to 1.0.
Example:
color_map {
[0 .25 color red 1 color red 1]
[.25 .5 color red 1 color green 1]
[.5 .75 color green 1 color blue 1]
[.75 .76 color Yellow color Orange]
[.76 1 color Black color blue 1]
}
default texture
---------------
Description: When a texture is first created, POV-Ray initializes it with
default values for all options. The default values are:
color red 0 green 0 blue 0 alpha 0
ambient .1
diffuse .6
phong 0
phong_size 40
specular 0
roughness .05
brilliance 1
metallic FALSE
reflection 0
refraction 0
ior 1
turbulence 0
octaves 6
texture randomness (dither) 0
phase 0
frequency 1
color map NONE
#default
---------
Syntax: #default { texture { (modifications to default texture) }
Description: The default textures can be modified by using the #default
option. Any textures created after this option has been used
will use the new defaults as specified in #default. All other
defaults not specified will remain the unchanged.
dents
-----
Syntax: texture {
...
dents #
}
Description: dents will give the object the appearance of being dented. Values
for dents range between 0.0 (no dents) and 1.0 (the dentiest)
that determines how dented the surface should be.
diffuse
-------
Syntax: texture {
...
diffuse #
}
Description: The diffuse value specifies how the colors in a texture react
to light directly shining on it. Higher values make the colors
very bright, lower values make the colors more subdued. Values
for diffuse range from 0.0 to 1.0. The default value is 0.6.
Syntax: fog { color red # green # blue # distance_val }
Description: Simulate a uniform haze over the entire scene. Fog should be
described outside of all other descriptions. Ie. don't put it inside a
texture, object, camera, or shape block.
Example: fog { color red 1 green 1 blue 1 200.0 }
gradient
--------
Syntax: gradient <axis vector> color_map {...}
Description:
granite
-------
Syntax: granite color_map {...}
Description: This will create a granite pattern based on the supplied
color_map. granite will respond to the turbulence keyword, but
the default is no turbulence. granite is typically used with
small scaling values (2.0 to 5.0).
image_map
---------
Syntax: image_map { file_type "filename" alpha (index # or all) #
map_type # interpolate # (once) }
Description: Place a graphic image on a shape as surface coloring.
interpolate
-------------
Syntax: image_map { gif "file.gif" interpolate # }

interpolate 1 // Norm dist interpolation
interpolate 2 // Bilinear interpolation (best)
Description: Smooths the jaggies on image_maps and bump_maps.
Syntax: texture {
...
refraction 1
ior #
}
Description: The ior is the Index of Refraction. This value determines how
far light will bend as it passes through a texture. To be
effective, refraction should be set to 1 and the texture must
have some transparent colors that use alpha. A value of 1.0 will
not bend the light. Some typical ior values are 1.0 for air,
1.33 for water, 1.5 for glass and 2.4 for diamond.
leopard
-------
Syntax: leopard color_map {...}
Description: Uniform spotted color pattern. Turbulence works.
map_type
--------
Syntax: map_type #
Description: Changes the mapping type used with image_map, bump_map, and
material map.
0 = Planar
1 = Spherical
2 = Cylindrical
3 = Toroidal (donut)
marble
------
Syntax: marble color_map {...}
Description: marble creates parallel bands of colors based on the color_map.
Adding turbulence will give the appearance of true marble or
other types of stones. The default is no turbulence.
material_map
------------
Syntax: material_map { file_type "filename" map_type # [once]
texture {...} texture {...} (...)
}
Description: Changes the texture on a surface based on the colors in the
mapped image.
max_trace_level
---------------
Syntax: max_trace_level #
Description: This option will set the number of levels that a ray will be
traced. If a ray is reflected or refracted, it creates another
ray. This is 1 level. The default value is 5.
metallic
--------
Syntax: texture {
...
metallic
}
Description: This keyword specifies that the color of specular and phong
highlights will be the surface color rather than the color
of the light source. This creates a metallic appearance.
octaves
-------
Syntax: octaves #
Description: Affects turbulence. Default value is 6. Values range from 1
to 16.
onion
-----
Syntax: onion color_map {...}
Description: onion creates a pattern of concentric circles based on the
supplied color_map. By default, onion has no turbulence.
phong
-----
Syntax: texture {
...
phong #
}
Description: The phong keyword causes a bright shiny spot on the object that
is the same color as the light source. Values for phong range
from 0.0 (none) to 1.0 (very bright at the center of the
highlight). There is no phong highlighting by default.
phong_size
----------
Syntax: texture {
...
phong_size #
phong #
}
Description: The value for phong_size determines the size of the phong
highlight of the object. The larger the value, the smaller
(tighter) the highlight. The smaller the value, the larger
(looser) the highlight. Values range from 1.0 (very dull) to
250 (highly polished). The default phong_size is 40.
reflection
----------
Syntax: texture {
...
reflection #
}
Description: The value of reflection determines how much of the light coming
from an object is reflected from other objects in the scene.
Values range from 0.0 (no reflection) to 1.0 (a perfect mirror).
refraction
----------
Syntax: texture {
...
refraction #
}
Description: The value for refraction will affect how light passing through
transparent textures is treated. Values range from 0 to 1.
Lower values will make the transparent portions less transparent.
This value will usually be set to 1 with the transparancy
amounts controlled by alpha. By default, there is no refraction.
ripples
-------
Syntax: texture {
...
ripples #
}
Description: Simulates ripples on a shape's surface.
roughness
---------
Syntax: texture {
...
roughness #
}
Description: The roughness value for a surface determines the size of the
specular highlight of that object. Typical values range from
1.0 (Very Rough, large highlight) to 0.0005 (Very Smooth,
small highlight). The default, if no roughness is specified, is
0.05.
specular
--------
Syntax: texture {
...
specular #
}
Description: A specular highlight is similar to a phong highlight, but
provides a more credible spreading of the highlights near
the object horizons. Values for specular range from 0.0
(no highlighting) to 1.0 (bright highlighting). The size of
the highlight is determined by the roughness value.
spotted
-------
Syntax:
Description:
tiles
-----
Syntax: texture {
tiles {
texture {...}
tile2
texture {...}
}
}
Description: tiles gives an effect similar to checker, but with textures
rather than just colors. The textures for tile1 and tile2
may also be layered, but only the first layer will be seen.
turbulence
----------
Syntax: texture {
...
turbulence #
}
Description: turbulence will distort a pattern so that it is not so "perfect".
Typcical values for turbulence range between 0.0 and 1.0, but
any value can be used.
waves
-----
Syntax: waves #
Description: Simulates bumpy waves on a shape's surface.
Syntax: wood color_map {...}
Description: wood used the supplied color map to create concentric cylindrical
bands of color centered on the Z axis. Small amounts of
turbulence will make the texture look more like real wood. There
is no turbulence by default.
wrinkles
--------
Syntax: texture {
...
wrinkles #
}
Description: wrinkles is a bump pattern that will give the appearance of a
wrinkled surface. Values for wrinkles range from 0.0 (no wrinkles
to 1.0 (very wrinkled)