
@C4@M@bAPPENDIX A  
Copyright


The following sections contain the legal information and license for the
Persistence of Vision(tm) Ray-Tracer, also called POV-Ray(tm).


APPENDIX A.1     General License Agreement

THIS NOTICE MUST ACCOMPANY ALL OFFICIAL OR CUSTOM PERSISTENCE OF  VISION
FILES. IT MAY NOT BE REMOVED OR MODIFIED. THIS INFORMATION  PERTAINS TO ALL
USE OF THE PACKAGE WORLDWIDE. THIS DOCUMENT  SUPERSEDES ALL PREVIOUS GENERAL
LICENSES OR DISTRIBUTION POLICIES.  ANY INDIVIDUALS, COMPANIES OR GROUPS WHO
HAVE BEEN GRANTED SPECIAL  LICENSES MAY CONTINUE TO DISTRIBUTE VERSION 2.x
BUT MUST RE-APPLY  FOR VERSION 3.00 OR LATER.

This document pertains to the use and distribution of the Persistence of
Vision(tm) Ray-Tracer a. k. a POV-Ray(tm). It applies to all POV-Ray program
source files, executable (binary) files, scene files, documentation files,
help file, bitmaps and INI files contained in official POV-Ray Team(tm)
archives. All of these are referred to here as the software.

All of this software is Copyright 1991,1997 by the POV-Ray Team(tm). Although
it is distributed as freeware, it is NOT Public Domain.

The copyrighted package may ONLY be distributed and/or modified according to
the license granted herein. The spirit of the license is to promote POV-Ray
as a standard ray-tracer, provide the full POV-Ray package freely to as many
users as possible, prevent POV-Ray users and developers from being taken
advantage of, enhance the life quality of those who come in contact with
POV-Ray. This license was created so these goals could be realized. You are
legally bound to follow these rules, but we hope you will follow them as a
matter of ethics, rather than fear of litigation.

APPENDIX A.2     Usage Provisions

Permission is granted to the user to use the software and associated files in
this package to create and render images. The use of this software for the
purpose of creating images is completely free. The creator of a scene file
and the image created from the scene file, retains all rights to the image
and scene file they created and may use them for any purpose commercial or
noncommercial.

The user is also granted the right to use the scenes files, fonts, bitmaps,
and include files distributed in the include, texsamps and pov3demo sub-
directories in their own scenes. Such permission does not extend to files in
the povscn sub-directory. povscn files are for your enjoyment and education
but may not be the basis of any derivative works.

APPENDIX A.3     General Rules for All Distributions

The permission to distribute this package under certain very specific
conditions is granted in advance, provided that the following conditions are
met.

These archives must not be re-archived using a different method without the
explicit permission of the POV-Team. You may rename the archives only to meet
the file name conventions of your system or to avoid file name duplications
but we ask that you try to keep file names as similar to the originals as
possible (for example: povsrc.zip to povsrc30.zip)

Ready-to-run unarchived distribution on CD-ROM is also permitted if the files
are arranged in our standard directory or folder structure as though it had
been properly installed on a hard disk.

You must distribute a full package of files as described in the next section.
No portion of this package may be separated from the package and distributed
separately other than under the conditions specified in the provisions given
below.

Non-commercial distribution in which no money or compensation is charged
(such as a user copying the software for a personal friend or colleague) is
permitted with no other restrictions.

Teachers and educational institutions may also distribute the material to
students and may charge minimal copying costs if the software is to be used
in a course.

APPENDIX A.4     Definition of "Full Package"

POV-Ray is contained in two sets of archives for each hardware platform. A
full package consists of either:

1) End user executable archives containing an executable program,
documentation, and sample scenes but no source.

- or -

2) Programmer archives containing full source code but no executable.  Also
you must include an archive containing documentation, and  sample scenes. On
some platforms, the documentation and sample  scenes are archived separately
from the source. Source alone  is not sufficient. You must have docs and
scenes.

POV-Ray is officially distributed for MS-Dos; Windows 32-bit; Linux for Intel
x86 series; Apple Macintosh; Apple PowerPC; SunOS; and Amiga. Other systems
may be added in the future.

Distributors need not support all platforms but for each platform you support
you must distribute a full package. For example a Macintosh only BBS need not
distribute the Windows versions.

This software may only be bundled with other software packages according to
the conditions specified in the provisions below.

{/HEADER 1 Conditions for Shareware/Freeware Distribution Companies/}

Shareware and freeware distribution companies may distribute the software
included in software-only compilations using media such as, but not limited
to, floppy disk, CD-ROM, tape backup, optical disks, hard disks, or memory
cards. This section only applies to distributors of collected programs.
Anyone wishing to bundle the package with a shareware product must use the
commercial bundling rules. Any bundling with books, magazines or other print
media should also use the commercial rules.

You must notify us that you are distributing POV-Ray and must provide us with
information on how to contact you should any support issues arise.

No more than five dollars U.S. ($5) can be charged per disk for the copying
of this software and the media it is provided on. Space on each disk must be
used as fully as possible. You may not spread the files over more disks than
are necessary.

Distribution on high volume media such as backup tape or CD-ROM is permitted
if the total cost to the user is no more than $0.08 U.S. dollars per megabyte
of data. For example a CD-ROM with 600 meg could cost no more than $48.00.

APPENDIX A.5     Conditions for On-Line Services and BBS's Including Internet


On-line services, BBS's and internet sites may distribute the POV-Ray
software under the conditions in this section. Sites which allow users to run
POV-Ray from remote locations must use separate provisions in the section
below.

The archives must all be easily available on the service and should be
grouped together in a similar on-line area.

It is strongly requested that sites remove prior versions of POV-Ray to avoid
user confusion and simplify or minimize our support efforts.

The site may only charge standard usage rates for the downloading of this
software. A premium may not be charged for this package. I. e. CompuServe or
America On-Line may make these archives available to their users, but they
may only charge regular usage rates for the time required to download.

APPENDIX A.6     Online or Remote Execution of POV-Ray

Some internet sites have been set up so that remote users can actually run
POV-Ray software on the internet server. Other companies sell CPU time for
running POV-Ray software on workstations or high-speed computers. Such use of
POV-Ray software is permitted under the following conditions.

Fees or charges, if any, for such services must be for connect time, storage
or processor usage ONLY. No premium charges may be assessed for use of
POV-Ray beyond that charged for use of other software. Users must be clearly
notified that they are being charged for use of the computer and not for use
of POV-Ray software.

Users must be prominently informed that they are using POV-Ray software, that
such software is free, and where they can find official POV-Ray software. Any
attempt to obscure the fact that the user is running POV-Ray is expressly
prohibited.

All files normally available in a full package distribution, especially a
copy of this license and full documentation must be available for download or
readable online so that users of an online executable have access to all of
the material of a full user package.

If the POV-Ray software has been modified in any way, it must also follow the
provisions for custom versions below.

APPENDIX A.7     Conditions for Distribution of Custom Versions

The user is granted the privilege to modify and compile the source code for
their own personal use in any fashion they see fit. What you do with the
software in your own home is your business.

If the user wishes to distribute a modified version of the software,
documentation or other parts of the package (here after referred to as a
custom version) they must follow the provisions given below. This includes
any translation of the documentation into other languages or other file
formats. These license provisions have been established to promote the growth
of POV-Ray and prevent difficulties for users and developers alike. Please
follow them carefully for the benefit of all concerned when creating a custom
version.

No portion of the POV-Ray source code may be incorporated into another
program unless it is clearly a custom version of POV-Ray that includes all of
the basic functions of POV-Ray.

All executables, documentation, modified files and descriptions of the same
must clearly identify themselves as a modified and unofficial version of
POV-Ray. Any attempt to obscure the fact that the user is running POV-Ray or
to obscure that this is an unofficial version expressly prohibited.

You must provide all POV-Ray support for all users who use your custom
version. You must provide information so that user may contact you for
support for your custom version. The POV-Ray Team is not obligated to provide
you or your users any technical support.

Include contact information in the DISTRIBUTION_MESSAGE macros in the source
file optout.h and insure that the program prominently displays this
information. Display all copyright notices and credit screens for the
official version.

Custom versions may only be distributed as freeware. You must make all of
your modifications to POV-Ray freely and publicly available with full source
code to the modified portions of POV-Ray and must freely distribute full
source to any new parts of the custom version. The goal is that users must be
able to re-compile the program themselves and to be able to further improve
the program with their own modifications.

You must provide documentation for any and all modifications that you have
made to the program that you are distributing. Include clear and obvious
information on how to obtain the official POV-Ray.

The user is encouraged to send enhancements and bug fixes to the POV-Ray
Team, but the team is in no way required to utilize these enhancements or
fixes. By sending material to the team, the contributor asserts that he owns
the materials or has the right to distribute these materials. He authorizes
the team to use the materials any way they like. The contributor still
retains rights to the donated material, but by donating, grants unrestricted,
irrevocable usage and distribution rights to the POV-Ray Team. The team
doesn't have to use the material, but if we do, you do not acquire any rights
related to POV-Ray. The team will give you credit as the creator of new code
if applicable.


APPENDIX A.8     Conditions for Commercial Bundling

Vendors wishing to bundle POV-Ray with commercial software (including
shareware) or with publications must first obtain explicit permission from
the POV-Ray Team. This includes any commercial software or publications, such
as, but not limited to, magazines, cover-disk distribution, books,
newspapers, or newsletters in print or machine readable form.

The POV-Ray Team will decide if such distribution will be allowed on a
case-by-case basis and may impose certain restrictions as it sees fit. The
minimum terms are given below. Other conditions may be imposed.

  * Purchasers of your product must not be led to believe that they are
    paying for POV-Ray. Any mention of the POV-Ray bundle on the box, in
    advertising or in instruction manuals must be clearly marked with a
    disclaimer that POV-Ray is free software and can be obtained for free or
  * Include clear and obvious information on how to obtain the official
  * You must provide all POV-Ray support for all users who acquired POV-Ray
    through your product. The POV-Ray Development Team is not obligated to
  * If you modify any portion POV-Ray for use with your hardware or software,
  * Include a full user package as described above.r product.hese rules.

APPENDIX A.9     Retail Value of This Software

Although POV-Ray is, when distributed within the terms of this agreement,
free of charge, the retail value (or price) of this program is determined as
US $20.00 per copy distributed or copied. If the software is distributed or
copied without authorization you are legally liable to this debt to the
copyright holder or any other person or organization delegated by the
copyright holder for the collection of this debt, and you agree that you are
legally bound by the above and will pay this debt within 30 days of the
event.

However, none of the above paragraph constitutes permission for you to
distribute this software outside of the terms of this agreement. In
particular, the conditions and debt mentioned above (whether paid or unpaid)
do not allow you to avoid statutory damages or other legal penalties and does
not constitute any agreement that would allow you to avoid such other legal
remedies as are available to the copyright holder.

Put simply, POV-Ray is only free if you comply with our distribution
conditions; it is not free otherwise. The copyright holder of this software
chooses to give it away free under these and only these conditions.

For the purpose of copyright regulations, the retail value of this software
is US $20.00 per copy.

APPENDIX A.10    Other Provisions

The team permits and encourages the creation of programs, including
commercial packages, which import, export or translate files in the POV-Ray
Scene Description Language. There are no restrictions on use of the language
itself. We reserve the right to add or remove or change any part of the
language.

"POV-Ray", "Persistence of Vision", "POV-Ray Team" and "POV-Help" are
trademarks of the POV-Ray Team.

While we do not claim any restrictions on the letters "POV" alone, we humbly
request that you not use POV in the name of your product. Such use tends to
imply it is a product of the POV-Ray Team. Existing programs which used "POV"
prior to the publication of this document need not feel guilty for doing so
provided that you make it clear that the program is not the work of the team
nor endorsed by us.

APPENDIX A.11    Revocation of License

VIOLATION OF THIS LICENSE IS A VIOLATION OF COPYRIGHT LAWS. IT  WILL RESULT
IN REVOCATION OF ALL DISTRIBUTION PRIVILEGES AND MAY  RESULT IN CIVIL OR
CRIMINAL PENALTY.

Such violators who are prohibited from distribution will be identified in
this document.

In this regard, "PC Format", a magazine published by Future Publishing, Ltd.
in the United Kingdom, distributed incomplete versions of POV-Ray 1.0 in
violation the license which was effect at the time. They later attempted to
distribute POV-Ray 2.2 without prior permission of the POV-Ray Team in
violation the license which was in effect at the time. There is evidence that
other Future Publishing companies have also violated our terms. Therefore "PC
Format", and any other magazine, book or CD-ROM publication owned by Future
Publishing is expressly prohibited from any distribution of POV-Ray software
until further notice.

APPENDIX A.12    Disclaimer

This software is provided as is without any guarantees or warranty. Although
the authors have attempted to find and correct any bugs in the package, they
are not responsible for any damage or losses of any kind caused by the use or
misuse of the package. The authors are under no obligation to provide
service, corrections, or upgrades to this package.

APPENDIX A.13    Technical Support

We sincerely hope you have fun with our program. If you have any problems
with the program, the team would like to hear about them. Also, if you have
any comments, questions or enhancements, please contact the POV-Ray Team on
the CompuServe Information Service in the GO POVRAY forum or check us out on
the internet at http://www.povray.org or ftp.povray.org. The USENET group
comp.graphics.rendering.raytracing is a great source of information on
POV-Ray and related topics.

License enquiries should be made via email and limited technical support is
available via email to:

   Chris Young
   POV-Ray Team Coordinator
   CIS: 76702,1655
   Internet 76702.1655@compuserve.com


The following postal address is only for official license business and only
if email is impossible.

We do not provide technical support via regular mail, only email. We don't
care if you don't have a modem or online access. We will not mail you disks
with updated versions. Do not send money.

   Chris Young
   3119 Cossell Drive
   Indianapolis, IN 46224 U.S.A.


The other authors' contact information may be found in section "Authors"
(see also "Postcards for POV-Ray Team Members").


@C4@M@bAPPENDIX B       
Authors


Following is a list in alphabetic order of all people who have ever worked on
the POV-Ray Team or who have made a note-worthy contribution. If you want to
contact or thank the authors read the sections "Contacting the Authors" and
"Postcards for POV-Ray Team Members".

                               Claire Amundsen
                   (Tutorials for the POV-Ray User Guide)

                                 Steve Anger
                         (POV-Ray 2.0/3.0 developer)
                               CIS: 70714,3113
                         Internet: sanger@hookup.net

                                Randy Antler
                     (IBM-PC display code enhancements)

                                 John Baily
                              (RLE targa code)

                                 Eric Barish
                              (Ground fog code)

                                Dieter Bayer
                (POV-Ray 3.0 developer and docs coordinator)
                               CIS: 104707,643

                               Kendall Bennett
                           (PMODE library support)

                                Steve Bennett
                                (GIF support)

                              Jeff Bowermaster
                                 (Beta test)

                                 David Buck
                        (Original author of DKBTrace)
                           (POV-Ray 1.0 developer)

                                 Chris Cason
             (POV-Ray 2.0/3.0 developer, POV-Help, Windows port)
   Internet (preferred): povray@mail.oaks.com.au or Chris.Cason@povray.org
                              CIS: 104706,3166

                                Aaron Collins
                        (Co-author of DKBTrace 2.12)
                           (POV-Ray 1.0 developer)

                                Chris Dailey
                           (POV-Ray 3.0 developer)
                                    CIS:

                                Steve Demlow
                           (POV-Ray 3.0 developer)
                                    CIS:

                               Andreas Dilger
                           (POV-Ray 3.0 developer)
                     Internet: adilger@enel.ucalgary.ca
           WWW: http://www-mddsp.enel.ucalgary.ca/People/adilger/

                           Joris van Drunen Littel
                              (Mac beta tester)

                              Alexander Enzmann
                       (POV-Ray 1.0/2.0/3.0 developer)
                               CIS: 70323,2461
                         Internet: xander@mitre.com

                                 Dan Farmer
                       (POV-Ray 1.0/2.0/3.0 developer)
                               CIS: 74431,1075

                               Charles Fusner
                   (Tutorials for the POV-Ray User Guide)

                                 David Harr
                     (Mac balloon help and palette code)

                                 Jimmy Hoeks
                   (Help file for Windows user interface)

                                Terry Kanakis
                                (Camera fix)

                            Kari Juharvi Kivisalo
                              (Ground fog code)

                                 Adam Knight
                (Mac beta tester, Mac Apple Guide developer)
                                    CIS:

                              Lutz Kretzschmar
   (IBM-PC display code [SS24 truecolor], part of the anti-aliasing code)
                              CIS: 100023,2006

                              Charles Marslett
                            (IBM-PC display code)

                              Pascal Massimino
                              (Fractal objects)

                                Jim McElhiney
                           (POV-Ray 3.0 developer)
                                    CIS:

                             Robert A. Mickelsen
                             (POV-Ray 3.0 docs)
                               CIS: 71042,751
                            Internet: ram@iu.net
                    WWW: http://www.websharx.com/ kahuna

                                 Mike Miller
                      (Artist, scene files, stones.inc)
                               CIS: 70353,100

                                Douglas Muir
                         (Bump maps, height fields)

                                Joel NewKirk
                               (Amiga Version)
                              CIS: 102627,1152

                                Jim Nitchals
                         (Mac version, scene files)


                                 Paul Novak
                           (Texture contributions)

                                  Dave Park
                       (Amiga support, AGA video code)

                                 David Payne
                              (RLE targa code)

                                 Bill Pulver
                         (Time code, IBM-PC compile)

                                 Anton Raves
             (Beta tester, helping out on several Mac thingies)
                              CIS: 100022,2603

                               Dan Richardson
                                   (Docs)
                                    CIS:

                                 Tim Rowley
             (PPM and Windows-specific BMP image format support)
                       Internet: trowley@geom.umn.edu

                              Robert Schadewald
                                (Beta tester)
                                    CIS:

                                Eduard Schwan
                     (Mac version, mosaic preview, docs)
                   CIS: 104706,3276 or POVRAYMAC or ESPSW
         Internet: povraymac@compuserve.com or espsw@compuserve.com
           WWW: http://ourworld.compuserve.com/homepages/povraymac

                               Robert Skinner
                              (Noise functions)

                              Erkki Sondergaard
                                (Scene files)
                                    CIS:

                               Zsolt Szalavari
                                 (Halo code)
                       Internet: zsolt@cg.tuwien.ac.at

                                Scott Taylor
                        (Leopard and onion textures)

                               Timothy Wegner
                       (Fractal objects, PNG support)
                               CIS: 71320,675
                        Internet: twegner@phoenix.net

                                 Drew Wells
            (POV-Ray 1.0 developer, POV-Ray 1.0 team coordinator)

                                 Chris Young
      (POV-Ray 1.0/2.0/3.0 developer, POV-Ray 2.0/3.0 team coordinator)
                               CIS: 76702,1655


@C4@M@bAPPENDIX C       
Contacting the Authors


The POV-Team is a collection of volunteer programmers, designers, animators
and artists meeting via electronic mail on Compuserve's POVRAY forum (GO
POVRAY).

The POV-Team's goal is to create freely distributable, high quality rendering
and animation software written in C that can be easily ported to many
different computers.

If you have any questions about POV-Ray, please contact   Chris Young
  POV-Team Coordinator
  CIS: 76702,1655
  Internet: 76702.1655@compuserve.com


We love to hear about how you're using and enjoying the program. We also will
do our best try to solve any problems you have with POV-Ray and incorporate
good suggestions into the program.

If you have a question regarding commercial use of, distribution of, or
anything particularly sticky, please contact Chris Young, the development
team coordinator. Otherwise, spread the mail around. We all love to hear from
you!

The best method of contact is e-mail through CompuServe for most of us.
America On-Line and Internet can now send mail to CompuServe, also, just use
the Internet address and the mail will be sent through to CompuServe where we
read our mail daily.

Please do not send large files to us through the e-mail without asking first.
We pay for each minute on CompuServe and large files can get expensive. Send
a query before you send the file, thanks!


@C4@M@bAPPENDIX D       
Postcards for POV-Ray Team Members


If you want to personally thank some of the POV-Ray Team members you can send
them a postcard from wherever you are. To avoid invalid addresses from
floating around (in case some of us move) the addresses listed below (in
alphabetical order) are only valid until the given date.

  Dieter Bayer
  Taeublingstr. 26
  91058 Erlangen
  Germany                                    (until 31. March 1998)

  Chris Cason                                (Windows version)
  PO Box 407
  Williamstown
  Victoria 3016
  Australia                                  (until 31. December 1998)

  Joel NewKirk
  255-9 Echelon Rd
  Voorhees, NJ, USA, 08043                   (until ---)

  Eduard Schwan                              (Macintosh version)
  1112 Oceanic Drive
  Encinitas, California, USA, 92024-4007     (until 30. June 1998)


You should also be aware that we do not answer any questions asked by regular
mail or phone, we only reply to e-mails. Send any questions you have to the
e-mail address mentioned in section "Contacting the Authors".


@C4@M@bAPPENDIX E       
Credits


Credits for providing contributions to the user documentation go to (in
alphabetical order):

                               Charles Fusner
                      (Blob, lathe and prism tutorial)
                      
                      
@C4@M@bAPPENDIX F       
Tips and Hints


APPENDIX F.1     Scene Design Tips

There are a number of excellent shareware CAD style modelers available on the
DOS platform now that will create POV-Ray scene files. The online systems
mentioned elsewhere in this document are the best places to find these.

Hundreds of special-purpose utilities have been written for POV-Ray: data
conversion programs, object generators, shell-style launchers and more. It
would not be possible to list them all here, but again, the online systems
listed will carry most of them. Most, following the POV-Ray spirit, are
freeware or inexpensive shareware.

Some extremely elaborate scenes have been designed by drafting on graph
paper. Raytracer Mike Miller recommends graph paper with a grid divided in
tenths, allowing natural decimal conversions.

Start out with a boilerplate scene file, such as a copy of basicvue.pov, and
edit that. In general, place your objects near and around the origin with the
camera in the negative z-direction, looking at the origin. Naturally, you
will break from this rule many times, but when starting out, keep things
simple.

For basic, boring, but dependable lighting, place a light source at or near
the position of the camera. Objects will look flat, but at least you will see
them. From there, you can move it slowly into a better position.

APPENDIX F.2     Scene Debugging Tips

To see a quick version of your picture, render it very small. With fewer
pixels to calculate the ray-tracer can finish more quickly. -W160 -H100 is a
good size.

Use the +Q quality switch when appropriate.

If there is a particular area of your picture that you need to see in high
resolution, perhaps with anti-aliasing on (perhaps a fine-grained wood
texture), use the +SC, +EC, +SR and +ER switches to isolate a window.

If your image contains a lot of inter-reflections, set max_trace_level to a
low value such as 1 or 2. Don't forget to put it back up when you're
finished!

Turn off any unnecessary lights. Comment out extended light keywords when not
needed for debugging. Again, don't forget to put them back in before you
retire for the night with a final render running!

If you've run into an error that is eluding you by visual examination it's
time to start bracketing your file. Use the block comment characters /* ...
*/ to disable most of your scene and try to render again. If you no longer
get an error the problem naturally lies somewhere within the disabled area.
Slow and methodical testing like this will eventually get you to a point
where you will either be able to spot the bug, or go quietly insane. Maybe
both.

If you seem to have lost yourself or an object (a common experience for
beginners) there are a few tricks that can sometimes help:

  1)Move your camera way back to provide a long range view. This may not help
    with very small objects which tend to be less visible at a distance, but
  2)Try setting the ambient value to 1.0 if you suspect that the object may
    simply be hidden from the lights. This will make it self-illuminated and
  3)Replace the object with a larger, more obvious "stand-in" object like a
    large sphere or box. Be sure that all the same transformations are
    applied to this new shape so that it ends up in the same spot.

APPENDIX F.3     Animation Tips

When animating objects with solid textures, the textures must move with the
object, i. e. apply the same rotate or translate functions to the texture as
to the object itself. This is now done automatically if the transformations
are placed after the texture block like the following example

  shape { ...
    pigment { ... }
    scale < ... >
  }


will scale the shape and pigment texture by the same amount.

  shape { ...
    scale < ... >
    pigment { ... }
  }


will scale the shape but not the pigment.

Constants can be declared for most of the data types in the program including
floats and vectors. By writing these to include files you can easily separate
the parameters for an animation into a separate file.

Some examples of declared constants would be:

   #declare Y_Rotation = 5.0 * clock
   #declare ObjectRotation = <0, Y_Rotation, 0>
   #declare MySphere = sphere { <0, 0, 0>, 1.1234 }


Other examples can be found scattered throughout the sample scene files.

A tip for MS-Dos users: Get ahold of dta.exe (Dave's Targa Animator) for
creating .FLI/.FLC animations. aaplay.exe and play.exe are common viewers for
this type of file.

When moving the camera in an animation (or placing one in a still image, for
that matter) avoid placing the camera directly over the origin. This will
cause very strange errors. Instead, move off center slightly and avoid
hovering directly over the scene.

APPENDIX F.4     Texture Tips

Wood is designed like a log with growth rings aligned along the z-axis.
Generally these will look best when scaled down by about a tenth (to a
unit-sized object). Start out with rather small value for the turbulence too
(around 0.05 is good for starters).

The marble texture is designed around a pigment primitive that is much like
an x-gradient. When turbulated, the effect is different when viewed from the
side or from the end. Try rotating it by 90 degrees on the y-axis to see the
difference.

You cannot get specular highlights on a totally black object. Try using a
very dark gray, say Gray10 or Gray15 (from colors.in), instead.

APPENDIX F.5     Height Field Tips

Try using POV-Ray itself to create images for height fields:   camera { locat
  plane { z, 0
     finish { ambient 1 }    // needs no light sources
     pigment { bozo }        // or whatever.  Experiment.
  }


That's all you'll need to create a .tga file that can then be used as a
height field in another image!

APPENDIX F.6     Converting "Handedness"

If you are importing images from other systems you may find that the shapes
are backwards (left-to-right inverted) and no rotation can make them correct.


Often, all you have to do is negate the terms in the right vector of the
camera to flip the camera left-to-right (use the right-hand coordinate
system). Some programs seem to interpret the coordinate systems differently,
however, so you may need to experiment with other camera transformations if
you want the y- and z-vectors to work as POV-Ray does.


@C4@M@bAPPENDIX G       
Frequently Asked Questions


This is a collection of frequently asked questions and their answers taken
directly from messages posted in the POVRAY Forum on Compuserve and the
comp.graphics.raytracing newsgroup.

This version of the FAQ is heavily biased towards the CompuServe user of the
IBM PC version of POV-Ray. Hopefully later revisions will remove some of this
bias, but at present time, that is the largest audience.

APPENDIX G.1     General Questions


APPENDIX G.2     POV-Ray Options Questions

Q: How can I set mosaic preview to go from 8*straight to final render without
going to 4*and then 2*first? A: Use the +SPn or Preview_Start_Size option to
set the starting resolution and the +EPn or Preview_End_Size option to set
the ending resolution. With +SP8 and +EP8 it will go from 8*8 down to 8*8
(just one pass) then immediately drop into the final pass at 1*1.

Q: Should the +MB switch be used in very small scenes, i. e. with a low
number of objects. A: That depends on the number of objects and their type.
Normally it doesn't hurt to always use the bounding box hierarchy (+MB0). If
you have just one or two objects it may be better to not use automatic
bounding.

Q: Does the +MB switch affect the quality of the image? A: No. It only
affects the speed of the intersection tests.

Q: How do I avoid that the options screen scrolls off when error messages are
generated? A: Use the +P switch. Everytime POV-Ray is interrupted or the
tracing finishes you can use the cursor keys to scroll-back the options text.

APPENDIX G.3     Include File Questions

Q: In the file textures.v2, the glass textures are commented out. Why? A: The
old glass textures are duplicated in glass.inc. The old texture names didn't
fit in with the new naming scheme. Glass is now T_Glass1, Glass2 is now
T_Glass2 and Glass3 is now T_Glass3. While you can easily un-comment the old
names you're strongly encouraged to use the newer naming scheme.

APPENDIX G.4     Object Questions


APPENDIX G.4.1   Height Field Questions

Q: I have a lowly 8 meg of RAM on my computer and I ran out of memory trying
to use a 1024x768 pot file and a gif of the same resolution as height fields
(two different scenes). Is it my memory thats low or is that resolution
crazy? A: Smoothed heightfields will consume a lot more memory (about three
times as much) as one that isn't smoothed. Since smoothing really isn't
neccessary at those resolutions don't smooth (if you're smoothing).

Q: I want to use the same image for an image map and a height-field (which
gives some meaningful relationship between the height and colors). Does that
only work when using a gif or bmp format? I couldn't get the pot file to map
(format not supported). A: pot files are not supported as image maps. Their
purpose to POV-Ray is as heightfields. That doesn't prevent you from making a
matching gif in fractint that uses the continuous potential coloring that you
used for the 16 bit pot file, and using that as the image map. Remember that
both image maps and height fields are initialized in a 1*1(*1) area, with the
lower-left of the image situated at the origin. The image map is initiated in
the x-y-plane while the height field is in the x-z plane. Thus you'll have to
rotate the image map by 90 degrees around the x-axis (use rotate x*90) to get
the image map to line up.

APPENDIX G.4.2   Text Questions

Q: Is there any possibility to know the size of a font-object? A: Sadly no.
We really need it but its not easy to do. Until just days before beta release
the horizontal spacing didn't even work right. Now that we've got that fixed,
perhaps we can figure a way to get the length.

APPENDIX G.5     Atmospheric Questions


APPENDIX G.5.1   Atmosphere Questions

Q: Why is the atmosphere I added not visible? A: The most common error made
when adding an atmosphere to a scene is the missing hollow keyword in all
objects the camera currently is in. If you are inside a box that is used to
model a room you'll have to add the hollow keyword to the box statement. If a
plane is used to model the ground you'll have to make it hollow (only if you
are inside the plane, but to be sure you can always do it).

If this doesn't help there may be other problems you'll have to verify. The
distance and scattering values of the atmosphere have to be larger than zero.
Light sources that shall interact with the atmosphere mustn't contain an
atmosphere off statement.

Q: Why can't I see any atmosphere through my translucent object? A: If you
have a translucent object you (almost) always have to make it hollow by
adding the hollow keyword. Whenever an intersection is found and the ray is
inside a solid object no atmospheric effects will be calculated.

If you have a partially transparent plane for example the atmosphere on the
other side of the plane will only be visible through the plane if this plane
is hollow.

Q: Why do the lit parts of the atmosphere amplify the background? A: First,
they don't.

Second, whenever parts of the background are visible through the atmosphere
and those areas of the atmosphere are lit by any light source, the scattered
light is added to the light coming from the background. This is the reason
why the background seems to be amplified by the atmosphere. Just imagine the
followoing example: you have a blue background that is attenuated be the
atmosphere in a way that the color reaching the viewer is <0,0,0.2>. Now some
light coming from a light source is attenuated and scattered by the
atmosphere and finally reaches the viewer with a color of <0.5,0.5,0.5>.
Since we already have light coming from the background, both colors are added
to give <0.5,0.5,0.7>. Thus the light gets a blue hue. As a result you think
that the background light is amplified but it isn't as the following scene
clearly shows.

#version 3.0
  camera {
    location <0, 6, -20>
    look_at <0, 6, 0>
    angle 48
  }

  atmosphere {
    type 1
    samples 10
    distance 20
    scattering 0.3
    aa_level 3
    aa_threshold 0.1
    jitter 0.2
  }

  light_source { <0, 15, 0> color rgb .7 shadowless }

  light_source {
    <-5, 15, 0> color rgb <1, 0, 0>
    spotlight
    point_at <-5, 0, 0>
    radius 10
    falloff 15
    tightness 1
    atmospheric_attenuation on
  }

  light_source {
    <0, 15, 0> color rgb <0, 1, 0>
    spotlight
    point_at <0, 0, 0>
    radius 10
    falloff 15
    tightness 1
    atmospheric_attenuation on
  }

  light_source {
    <5, 15, 0> color rgb <0, 0, 1>
    spotlight
    point_at <5, 0, 0>
    radius 10
    falloff 15
    tightness 1
    atmospheric_attenuation on
  }

  plane { z, 10
    pigment { checker color rgb<1, 0, 0> color rgb<0, 1, 0> }
    hollow
  }


The atmosphere seems to amplify what is seen in the background.

In the background you see a red/green checkered plane. The background color
visible through the atmosphere is added to the light scattered from the
spotlights. You'll notice that even though the red squares behind the red
spotlight's cone are brighter than those outside the cone the green ones are
not. For the green spotlight the situation is turned around: the green
squares seem to be amplified while the red are not. The blue spotlight
doesn't show this effect at all.

Q: The docs say the distance parameter for atmosphere works in the same way
as fog distance. Is that right? A: Yes, that's right. Try to use a fog
instead of the atmosphere. If everything looks good, i. e. you still can see
the background or whatever you want to see, use the same distance and color
for the atmosphere.

APPENDIX G.5.2   Fog Questions

Q: I'm using moray to build a scene containing a ground fog. The problem is
that the fog fades out along the y-axis. In moray the z-axis is up, so I have
a wall of fog, rather than a layer. What to do? A: There is an up keyword
that can be used to specify the up direction the ground fog is using. Adding
the line up z to your fog will help.


@C4@M@bAPPENDIX H       
Suggested Reading


Beside the POV-Ray specific books mentioned in "POV-Ray Related Books and
CD-ROMs" there are several good books or periodicals that you should be able
to locate in your local computer book store or your local university library.


  "An Introduction to Ray tracing"
  Andrew S. Glassner (editor)
  ISBN 0-12-286160-4
  Academic Press
  1989

  "3D Artist" Newsletter
  "The Only Newsletter about Affordable
   PC 3D Tools and Techniques")
  Publisher: Bill Allen
  P.O. Box 4787
  Santa Fe, NM 87502-4787
  (505) 982-3532

  "Image Synthesis:  Theory and Practice"
  Nadia Magnenat-Thalman and Daniel Thalmann
  Springer-Verlag
  1987

  "The RenderMan Companion"
  Steve Upstill
  Addison Wesley
  1989

  "Graphics Gems"
  Andrew S. Glassner (editor)
  Academic Press
  1990

  "Fundamentals of Interactive Computer Graphics"
  J. D. Foley and A. Van Dam
  ISBN 0-201-14468-9
  Addison-Wesley
  1983

  "Computer Graphics:  Principles and Practice (2nd Ed.)"
  J. D. Foley, A. van Dam, J. F. Hughes
  ISBN 0-201-12110-7
  Addison-Wesley,
  1990

  "Computers, Pattern, Chaos, and Beauty"
  Clifford Pickover
  St. Martin's Press

  "SIGGRAPH Conference Proceedings"
  Association for Computing Machinery
  Special Interest Group on Computer Graphics

  "IEEE Computer Graphics and Applications"
  The Computer Society
  10662, Los Vaqueros Circle
  Los Alamitos, CA 90720

  "The CRC Handbook of Mathematical Curves and Surfaces"
  David von Seggern
  CRC Press
  1990

  "The CRC Handbook of Standard Mathematical Tables"
  CRC Press
  The Beginning of Time


@C4@M@bAPPENDIX I       
Help on Help


Using the Help Reader (POVHELP.EXE)

KNOWN INCOMPATIBILITIES

See after the Quick Intro.

Quick Intro

Use the +E option to make the help reader a pop-up program. Use Space to go
to the next section. Use Ctrl-PgUp and Ctrl-PgDn to move between sections
also. Use Tab to highlight hypertext links. Use Alt-Tab to highlight code
fragments. Use Enter to jump to a highlighted hypertext link. Use +/- to jump
to relevant sections once link jumping has started. Use BACKSPACE to return
to the last place you were before a search/jump. Use 'S' to search on a
keyword. Use 'J' to toggle text justification when reading a section. Use 'P'
to paste code into your application via the keyboard buffer.

POV-Help will handle non-standard page widths provided the BIOS column count
is correctly updated by whatever program is being used to alter it from 80
columns.

If you use POV-Help as a pop-up program, it will attempt to search on the
word under your cursor when you pop it up. Note that if you exit pop-up mode
by using the hot-key (the default is ALT-ESC), POV-Help takes this to mean
that you want to return to the same place next time and will not perform a
search. A search is only performed if you exited using ESCAPE (meaning you
have finished with the current subject.)

The history stack activated by using Backspace holds 32 entries.

KNOWN INCOMPATIBILITIES

POV-Help does not work with MS-DOS's EDIT program. [In fact, EDIT.COM is
really QBASIC.EXE with a few add ons ; EDIT needs QBASIC to run.]

If it won't work with your editor, try this (assuming you have macro
facilities) -

  o bind the macro to your key-sequence of choice.rameter


Command Line (case insensitive)

  +Tsphere or "+Tsphere"go straight to the first section found with  'sphere'
  +PH[n]                send 'n' HOME keys after each CR when pasting.
  +KALT-ESC             hot key sequence. can be CTRL|ALT|CTRL-ALT+[Any
                        character]|[ESC]. e.g. +KCTRL-ALT-P, +KCTRL-1,
  +Eabc d e             run program 'abc' with parameters 'd' and 'e'. all
  text                  same as +T unless collecting +E parameters, where it
                        is a parameter


Viewer Commands

Top Menu

  Escapewnexit help viewerem


Authors, Copyright

  EscapeRightreturn to top menu


Section

  "P"TababertrlPgDnpaste highlighted code fragment via keyboard buffer.ing)


General

The help reader wraps most text. Excluded are specified portions, lists, and
a few others. Use the left and right arrow keys to scroll these if need be.

The help reader is intended to be a 'shell' around an editor program. Some
people may prefer the term 'shim'.

Using EMS for most memory requirements, it loads itself and then runs your
editor for you, providing pop-up help facilities. It will also be able to
paste code fragments into your source. If your editor was, for example, 'ME',
you would place a batch file called 'ME.BAT' in your scene development
directory. If you use 'VI', you'd create 'VI.BAT', and so on.

(YOUR-EDITOR-NAME.BAT)

desired key sequence ----
                        |
        ----------- -------------- ----------------
povhelp |+W50 +H15 |+KCTRL-ALT-H| |+Ed:\me\me.exe| %1 %2 %3 %4 %5
        ----------- -------------- ----------------
                |                      |
size of window --                      |
                                       |
place path to your editor here ---------


For example -

povhelp +W50 +H15 +KALT-H +Ed:\me\me.exe %1 %2 %3 %4 %5


This command line will yield a version of POV-Help with a 50x15 window,
popped-up with the ALT-H key sequence, over the editor 'd:\me\me.exe'. If you
don't specify a key sequence, POV-Help defaults to using ALT-ESC.

This would load the help reader. which would then load ME.EXE, and things
would proceed as normal. When you exit your editor, the help reader
automatically unloads. You can use the ALT-ESC key sequence to pop up
POVHELP. This is the default ; there is a way to set it. Note that no other
parameters may appear after the +E parameter as they will just be passed to
the program being run.

If you use the hotkey to pop-up, POVHELP performs a simplistic search of
sections and titles based on the word under the cursor. If found, you are
taken to that. Otherwise, you are taken to the main menu, unless you
hot-keyed out.

You can hot-key out of the actual section text, by using the same hot key
that got you in. If you press escape, you are taken back up to the top menu.
But if you hotkey out, you go back to your program. Next time you press the
hot key, you will be taken back to the same place. No search is performed in
this case.

POVHELP needs EMS if it is running as a shell program.

If
you don't specify the +E parameter, POVHELP will come up as a stand-alone
program, in which case it does not use EMS.

If you highlight a section of code using Alt-Tab, and you are using POV-Help
in pop-up mode, then you may paste the code via the keyboard buffer using
'P'.

As many editors today use auto-indentation, this may cause some problems with
column alignment. For that reason, POV-Help by default inserts a HOME key
code into the keyboard buffer after each CR. Some editors require more than
one HOME key operation to get to the left column. For this reason, the number
of HOME's sent may be adjusted from 0 (none) to 9 using the +PH[n]
command-line parameter. 'n' is any value from 0 to 9 and defaults to 1.

POV-Help was written by  Christopher J. Cason.
CIS      : 104706,3166
Internet : povray@mail.oaks.com.au
           Chris.Cason@povray.org


Converters will be available which translate POV-Help databases to other
formats such as Postscript, LaTeX, RTF, Windows Help, HTML, etc.

The format of the POV-Help database is documented and freely available.

POV-Help is free. It may not be sold. See POVLEGAL.DOC for details. The
POV-Help suite of programs is copyright  (c) 1994 C.J. Cason and the
POV-Team. 
