Persistence of Vision(tm) Ray-Tracer (POV-Ray(tm)) User's Documentation 3.0 Copyright 1997 POV-Team(tm)


Table of Contents
Appendices
Index
Important Copyright information
The Authors of POV-Ray


1 Introduction
   1.1 Notation
2 Program Description
   2.1 What is Ray-Tracing?
   2.2 What is POV-Ray?
   2.3 Which Version of POV-Ray should you use?
      2.3.1 IBM-PC and Compatibles
         2.3.1.1 MS-DOS
         2.3.1.2 Windows
         2.3.1.3 Linux
      2.3.2 Apple Macintosh
      2.3.3 Commodore Amiga
      2.3.4 SunOS
      2.3.5 Generic Unix
      2.3.6 All Versions
      2.3.7 Compiling POV-Ray
         2.3.7.1 Directory Structure
         2.3.7.2 Configuring POV-Ray Source
         2.3.7.3 Conclusion
   2.4 Where to Find POV-Ray Files
      2.4.1 POV-Ray Forum on CompuServe
      2.4.2 Internet
      2.4.3 PC Graphics Area on America On-Line
      2.4.4 The Graphics Alternative BBS in El Cerrito, CA
      2.4.5 PCGNet
      2.4.6 POV-Ray Related Books and CD-ROMs
3 Quick Start
   3.1 Installing POV-Ray
   3.2 Basic Usage
      3.2.1 Running Files in Other Directories
      3.2.2 INI Files
      3.2.3 Alternatives to POVRAY.INI
      3.2.4 Batch Files
      3.2.5 Display Types
4 Beginning Tutorial
   4.1 Our First Image
      4.1.1 Understanding POV-Ray's Coordinate System
      4.1.2 Adding Standard Include Files
      4.1.3 Adding a Camera
      4.1.4 Describing an Object
      4.1.5 Adding Texture to an Object
      4.1.6 Defining a Light Source
   4.2 Using the Camera
      4.2.1 Using Focal Blur
   4.3 Simple Shapes
      4.3.1 Box Object
      4.3.2 Cone Object
      4.3.3 Cylinder Object
      4.3.4 Plane Object
      4.3.5 Standard Include Objects
   4.4 Advanced Shapes
      4.4.1 Bicubic Patch Object
      4.4.2 Blob Object
         4.4.2.1 Component Types and Other New Features
         4.4.2.2 Complex Blob Constructs and Negative Strength
      4.4.3 Height Field Object
      4.4.4 Lathe Object
         4.4.4.1 Understanding The Concept of Splines
      4.4.5 Mesh Object
      4.4.6 Polygon Object
      4.4.7 Prism Object
         4.4.7.1 Teaching An Old Spline New Tricks
         4.4.7.2 Smooth Transitions
         4.4.7.3 Multiple Sub-Shapes
         4.4.7.4 Conic Sweeps And The Tapering Effect
      4.4.8 Superquadric Ellipsoid Object
      4.4.9 Surface of Revolution Object
      4.4.10 Text Object
      4.4.11 Torus Object
   4.5 CSG Objects
      4.5.1 What is CSG?
      4.5.2 CSG Union
      4.5.3 CSG Intersection
      4.5.4 CSG Difference
      4.5.5 CSG Merge
      4.5.6 CSG Pitfalls
         4.5.6.1 Coincidence Surfaces
   4.6 The Light Source
      4.6.1 The Ambient Light Source
      4.6.2 The Pointlight Source
      4.6.3 The Spotlight Source
      4.6.4 The Cylindrical Light Source
      4.6.5 The Area Light Source
      4.6.6 Assigning an Object to a Light Source
      4.6.7 Light Source Specials
         4.6.7.1 Using Shadowless Lights
         4.6.7.2 Using Light Fading
         4.6.7.3 Light Sources and Atmosphere
   4.7 Simple Texture Options
      4.7.1 Surface Finishes
      4.7.2 Adding Bumpiness
      4.7.3 Creating Color Patterns
      4.7.4 Pre-defined Textures
   4.8 Advanced Texture Options
      4.8.1 Pigment and Normal Patterns
      4.8.2 Pigments
         4.8.2.1 Using Color List Pigments
         4.8.2.2 Using Pigment and Patterns
         4.8.2.3 Using Pattern Modifiers
         4.8.2.4 Using Transparent Pigments and Layered Textures
         4.8.2.5 Using Pigment Maps
      4.8.3 Normals
         4.8.3.1 Using Basic Normal Modifiers
         4.8.3.2 Blending Normals
      4.8.4 Finishes
         4.8.4.1 Using Ambient
         4.8.4.2 Using Surface Highlights
         4.8.4.3 Using Reflection and Metallic
         4.8.4.4 Using Refraction
         4.8.4.5 Adding Light Attenuation
         4.8.4.6 Using Faked Caustics
            4.8.4.6.1 What are Caustics?
            4.8.4.6.2 Applying Caustics to a Scene
            4.8.4.6.3 Caustics And Normals
         4.8.4.7 Using Iridescence
      4.8.5 Halos
         4.8.5.1 What are Halos?
         4.8.5.2 The Emitting Halo
            4.8.5.2.1 Starting with a Basic Halo
            4.8.5.2.2 Increasing the Brightness
            4.8.5.2.3 Adding Some Turbulence
            4.8.5.2.4 Resizing the Halo
            4.8.5.2.5 Using Frequency to Improve Realism
            4.8.5.2.6 Changing the Halo Color
         4.8.5.3 The Glowing Halo
         4.8.5.4 The Attenuating Halo
            4.8.5.4.1 Making a Cloud
            4.8.5.4.2 Scaling the Halo Container
            4.8.5.4.3 Adding Additional Halos
         4.8.5.5 The Dust Halo
            4.8.5.5.1 Starting With an Object Lit by a Spotlight
            4.8.5.5.2 Adding Some Dust
            4.8.5.5.3 Decreasing the Dust Density
            4.8.5.5.4 Making the Shadows Look Good
            4.8.5.5.5 Adding Turbulence
            4.8.5.5.6 Using a Coloured Dust
         4.8.5.6 Halo Pitfalls
            4.8.5.6.1 Where Halos are Allowed
            4.8.5.6.2 Overlapping Container Objects
            4.8.5.6.3 Multiple Attenuating Halos
            4.8.5.6.4 Halos and Hollow Objects
            4.8.5.6.5 Scaling a Halo Container
            4.8.5.6.6 Choosing a Sampling Rate
            4.8.5.6.7 Using Turbulence
   4.9 Working With Special Textures
      4.9.1 Working With Pigment Maps
      4.9.2 Working With Normal Maps
      4.9.3 Working With Texture Maps
      4.9.4 Working With List Textures
      4.9.5 What About Tiles?
      4.9.6 Average Function
      4.9.7 Working With Layered Textures
         4.9.7.1 Declaring Layered Textures
         4.9.7.2 Another Layered Textures Example
      4.9.8 When All Else Fails: Material Maps
      4.9.9 Limitations Of Special Textures
   4.10 Using Atmospheric Effects
      4.10.1 The Background
      4.10.2 The Sky Sphere
         4.10.2.1 Creating a Sky with a Color Gradient
         4.10.2.2 Adding the Sun
         4.10.2.3 Adding Some Clouds
      4.10.3 The Fog
         4.10.3.1 A Constant Fog
         4.10.3.2 Setting a Minimum Translucency
         4.10.3.3 Creating a Filtering Fog
         4.10.3.4 Adding Some Turbulence to the Fog
         4.10.3.5 Using Ground Fog
         4.10.3.6 Using Multiple Layers of Fog
         4.10.3.7 Fog and Hollow Objects
      4.10.4 The Atmosphere
         4.10.4.1 Starting With an Empty Room
         4.10.4.2 Adding Dust to the Room
         4.10.4.3 Choosing a Good Sampling Rate
         4.10.4.4 Using a Coloured Atmosphere
         4.10.4.5 Atmosphere Tips
            4.10.4.5.1 Choosing the Distance and Scattering Parameters
            4.10.4.5.2 Atmosphere and Light Sources
            4.10.4.5.3 Atmosphere Scattering Types
            4.10.4.5.4 Increasing the Image Resolution
            4.10.4.5.5 Using Hollow Objects and Atmosphere
      4.10.5 The Rainbow
         4.10.5.1 Starting With a Simple Rainbow
         4.10.5.2 Increasing the Rainbow's Translucency
         4.10.5.3 Using a Rainbow Arc
      4.10.6 Animation
         4.10.6.1 The Clock Variable: Key To It All
         4.10.6.2 Clock Dependant Variables And Multi-Stage Animations
         4.10.6.3 The Phase Keyword
         4.10.6.4 Do Not Use Jitter Or Crand
         4.10.6.5 INI File Settings
5 POV-Ray Reference
6 POV-Ray Options
   6.1 Setting POV-Ray Options
      6.1.1 Command Line Switches
      6.1.2 Using INI Files
      6.1.3 Using the POVINI Environment Variable
   6.2 Options Reference
      6.2.1 Animation Options
         6.2.1.1 External Animation Loop
         6.2.1.2 Internal Animation Loop
         6.2.1.3 Subsets of Animation Frames
         6.2.1.4 Cyclic Animation
         6.2.1.5 Field Rendering
      6.2.2 Output Options
         6.2.2.1 General Output Options
            6.2.2.1.1 Height and Width of Output
            6.2.2.1.2 Partial Output Options
            6.2.2.1.3 Interrupting Options
            6.2.2.1.4 Resuming Options
         6.2.2.2 Display Output Options
            6.2.2.2.1 Display Hardware Settings
            6.2.2.2.2 Display Related Settings
            6.2.2.2.3 Mosaic Preview
         6.2.2.3 File Output Options
            6.2.2.3.1 Output File Type
            6.2.2.3.2 Output File Name
            6.2.2.3.3 Output File Buffer
         6.2.2.4 CPU Utilization Histogram
            6.2.2.4.1 File Type
            6.2.2.4.2 File Name
            6.2.2.4.3 Grid Size
      6.2.3 Scene Parsing Options
         6.2.3.1 Input File Name
         6.2.3.2 Library Paths
         6.2.3.3 Language Version
         6.2.3.4 Removing User Bounding
      6.2.4 Shell-out to Operating System
         6.2.4.1 String Substitution in Shell Commands
         6.2.4.2 Shell Command Sequencing
         6.2.4.3 Shell Command Return Actions
      6.2.5 Text Output 
         6.2.5.1 Text Streams
         6.2.5.2 Console Text Output
         6.2.5.3 Directing Text Streams to Files
         6.2.5.4 Help Screen Switches
      6.2.6 Tracing Options
         6.2.6.1 Quality Settings
         6.2.6.2 Radiosity Setting
         6.2.6.3 Automatic Bounding Control
         6.2.6.4 Anti-Aliasing Options
7 Scene Description Language
   7.1 Language Basics
      7.1.1 Identifiers and Keywords
      7.1.2 Comments
      7.1.3 Float Expressions
         7.1.3.1 Float Literals
         7.1.3.2 Float Identifiers
         7.1.3.3 Float Operators
      7.1.4 Vector Expressions
         7.1.4.1 Vector Literals
         7.1.4.2 Vector Identifiers
         7.1.4.3 Vector Operators
         7.1.4.4 Operator Promotion
      7.1.5 Specifying Colors
         7.1.5.1 Color Vectors
         7.1.5.2 Color Keywords
         7.1.5.3 Color Identifiers
         7.1.5.4 Color Operators
         7.1.5.5 Common Color Pitfalls
      7.1.6 Strings
         7.1.6.1 String Literals
         7.1.6.2 String Identifiers
      7.1.7 Built-in Identifiers
         7.1.7.1 Constant Built-in Identifiers
         7.1.7.2 Built-in Identifier 'clock'
         7.1.7.3 Built-in Identifier 'version'
      7.1.8 Functions
         7.1.8.1 Float Functions
         7.1.8.2 Vector Functions
         7.1.8.3 String Functions
   7.2 Language Directives
      7.2.1 Include Files
      7.2.2 Declare
         7.2.2.1 Declaring identifiers
      7.2.3 Default Directive
      7.2.4 Version Directive
      7.2.5 Conditional Directives
         7.2.5.1 IF ELSE Directives
         7.2.5.2 IFDEF Directives
         7.2.5.3 IFNDEF Directives
         7.2.5.4 SWITCH CASE and RANGE Directives
         7.2.5.5 WHILE Directive
      7.2.6 User Message Directives
         7.2.6.1 Text Message Streams
         7.2.6.2 Text Formatting
   7.3 POV-Ray Coordinate System
      7.3.1 Transformations
         7.3.1.1 Translate
         7.3.1.2 Scale
         7.3.1.3 Rotate
         7.3.1.4 Matrix Keyword
      7.3.2 Transformation Order
      7.3.3 Transform Identifiers
      7.3.4 Transforming Textures and Objects
   7.4 Camera
      7.4.1 Type of Projection
      7.4.2 Focal Blur
      7.4.3 Camera Ray Perturbation
      7.4.4 Placing the Camera
         7.4.4.1 Location and Look_At
         7.4.4.2 The Sky Vector
         7.4.4.3 The Direction Vector
         7.4.4.4 Angle
         7.4.4.5 Up and Right Vectors
            7.4.4.5.1 Aspect Ratio
            7.4.4.5.2 Handedness
         7.4.4.6 Transforming the Camera
      7.4.5 Camera Identifiers
   7.5 Objects
      7.5.1 Empty and Solid Objects
         7.5.1.1 Halo Pitfall
         7.5.1.2 Refraction Pitfall
      7.5.2 Finite Solid Primitives
         7.5.2.1 Blob
         7.5.2.2 Box
         7.5.2.3 Cone
         7.5.2.4 Cylinder
         7.5.2.5 Height Field
         7.5.2.6 Julia Fractal
         7.5.2.7 Lathe
         7.5.2.8 Prism
         7.5.2.9 Sphere
         7.5.2.10 Superquadric Ellipsoid
         7.5.2.11 Surface of Revolution
         7.5.2.12 Text
         7.5.2.13 Torus
      7.5.3 Finite Patch Primitives
         7.5.3.1 Bicubic Patch
         7.5.3.2 Disc
         7.5.3.3 Mesh
         7.5.3.4 Polygon
         7.5.3.5 Triangle and Smooth Triangle
      7.5.4 Infinite Solid Primitives
         7.5.4.1 Plane
         7.5.4.2 Poly, Cubic and Quartic
         7.5.4.3 Quadric
      7.5.5 Constructive Solid Geometry
         7.5.5.1 About CSG
         7.5.5.2 Inside and Outside
         7.5.5.3 Inverse
         7.5.5.4 Union
         7.5.5.5 Intersection
         7.5.5.6 Difference
         7.5.5.7 Merge
      7.5.6 Light Sources
         7.5.6.1 Point Lights
         7.5.6.2 Spotlights
         7.5.6.3 Cylindrical Lights
         7.5.6.4 Area Lights
         7.5.6.5 Shadowless Lights
         7.5.6.6 Looks_like
         7.5.6.7 Light Fading
         7.5.6.8 Atmosphere Interaction
         7.5.6.9 Atmospheric Attenuation
      7.5.7 Object Modifiers
         7.5.7.1 Clipped_By
         7.5.7.2 Bounded_By
         7.5.7.3 Hollow
         7.5.7.4 No_Shadow
         7.5.7.5 Sturm
   7.6 Textures
      7.6.1 Pigment
         7.6.1.1 Solid Color Pigments
         7.6.1.2 Color List Pigments
         7.6.1.3 Color Maps
         7.6.1.4 Pigment Maps
         7.6.1.5 Image Maps
            7.6.1.5.1 Specifying an Image Map
            7.6.1.5.2 The map_type Option
            7.6.1.5.3 The Filter and Transmit Bitmap Modifiers
            7.6.1.5.4 Using the Alpha Channel
         7.6.1.6 Quick Color
      7.6.2 Normal
         7.6.2.1 Slope Maps
         7.6.2.2 Normal Maps
         7.6.2.3 Bump Maps
            7.6.2.3.1 Specifying a Bump Map
            7.6.2.3.2 Bump_Size
            7.6.2.3.3 Use_Index and Use_Color
      7.6.3 Finish
         7.6.3.1 Ambient
         7.6.3.2 Diffuse Reflection Items
            7.6.3.2.1 Diffuse
            7.6.3.2.2 Brilliance
            7.6.3.2.3 Crand Graininess
         7.6.3.3 Highlights
            7.6.3.3.1 Phong Highlights
            7.6.3.3.2 Specular Highlight
            7.6.3.3.3 Metallic Highlight Modifier
         7.6.3.4 Specular Reflection
         7.6.3.5 Refraction
            7.6.3.5.1 Light Attenuation
            7.6.3.5.2 Faked Caustics
         7.6.3.6 Iridescence
      7.6.4 Halo
         7.6.4.1 Halo Mapping
         7.6.4.2 Multiple Halos
         7.6.4.3 Halo Type
            7.6.4.3.1 Attenuating
            7.6.4.3.2 Dust
            7.6.4.3.3 Emitting
            7.6.4.3.4 Glowing
         7.6.4.4 Density Mapping
            7.6.4.4.1 Box Mapping
            7.6.4.4.2 Cylindrical Mapping
            7.6.4.4.3 Planar Mapping
            7.6.4.4.4 Spherical Mapping
         7.6.4.5 Density Function
            7.6.4.5.1 Constant
            7.6.4.5.2 Linear
            7.6.4.5.3 Cubic
            7.6.4.5.4 Poly
         7.6.4.6 Halo Color Map
         7.6.4.7 Halo Sampling
            7.6.4.7.1 Number of Samples
            7.6.4.7.2 Super-Sampling
            7.6.4.7.3 Jitter
         7.6.4.8 Halo Modifiers
            7.6.4.8.1 Frequency Modifier
            7.6.4.8.2 Phase Modifier
            7.6.4.8.3 Transformation Modifiers
      7.6.5 Special Textures
         7.6.5.1 Texture Maps
         7.6.5.2 Tiles
         7.6.5.3 Material Maps
            7.6.5.3.1 Specifying a Material Map
      7.6.6 Layered Textures
      7.6.7 Patterns
         7.6.7.1 Agate
         7.6.7.2 Average
         7.6.7.3 Bozo
         7.6.7.4 Brick
         7.6.7.5 Bumps
         7.6.7.6 Checker
         7.6.7.7 Crackle
         7.6.7.8 Dents
         7.6.7.9 Gradient
         7.6.7.10 Granite
         7.6.7.11 Hexagon
         7.6.7.12 Leopard
         7.6.7.13 Mandel
         7.6.7.14 Marble
         7.6.7.15 Onion
         7.6.7.16 Quilted
         7.6.7.17 Radial
         7.6.7.18 Ripples
         7.6.7.19 Spiral1
         7.6.7.20 Spiral2
         7.6.7.21 Spotted
         7.6.7.22 Waves
         7.6.7.23 Wood
         7.6.7.24 Wrinkles
      7.6.8 Pattern Modifiers
         7.6.8.1 Transforming Patterns
         7.6.8.2 Frequency and Phase
         7.6.8.3 Waveform
         7.6.8.4 Turbulence
         7.6.8.5 Octaves
         7.6.8.6 Lambda
         7.6.8.7 Omega
         7.6.8.8 Warps
            7.6.8.8.1 Black Hole Warp
            7.6.8.8.2 Repeat Warp
            7.6.8.8.3 Turbulence Warp
         7.6.8.9 Bitmap Modifiers
            7.6.8.9.1 The once Option
            7.6.8.9.2 The "map_type" Option
            7.6.8.9.3 The interpolate Option
   7.7 Atmospheric Effects
      7.7.1 Atmosphere
      7.7.2 Background
      7.7.3 Fog
      7.7.4 Sky Sphere
      7.7.5 Rainbow
   7.8 Global Settings
      7.8.1 ADC_Bailout
      7.8.2 Ambient Light
      7.8.3 Assumed_Gamma
         7.8.3.1 Monitor Gamma
         7.8.3.2 Image File Gamma
         7.8.3.3 Scene File Gamma
      7.8.4 HF_Gray_16
      7.8.5 Irid_Wavelength
      7.8.6 Max_Trace_Level
      7.8.7 Max_Intersections
      7.8.8 Number_Of_Waves
      7.8.9 Radiosity
         7.8.9.1 How Radiosity Works
         7.8.9.2 Adjusting Radiosity
            7.8.9.2.1 brightness
            7.8.9.2.2 count
            7.8.9.2.3 distance_maximum
            7.8.9.2.4 error_bound
            7.8.9.2.5 gray_threshold
            7.8.9.2.6 low_error_factor
            7.8.9.2.7 minimum_reuse
            7.8.9.2.8 nearest_count
            7.8.9.2.9 radiosity_quality
            7.8.9.2.10 recursion_limit
         7.8.9.3 Tips on Radiosity

Appendices

A Copyright A.1 General License Agreement A.2 Usage Provisions A.3 General Rules for All Distributions A.4 Definition of "Full Package" A.5 Conditions for On-Line Services and BBS's Including Internet A.6 Online or Remote Execution of POV-Ray A.7 Conditions for Distribution of Custom Versions A.8 Conditions for Commercial Bundling A.9 Retail Value of this Software A.10 Other Provisions A.11 Revocation of License A.12 Disclaimer A.13 Technical Support B Authors C Contacting the Authors D Postcards for POV-Ray Team Members E Credits F Tips and Hints F.1 Scene Design Tips F.2 Scene Debugging Tips F.3 Animation Tips F.4 Texture Tips F.5 Height Field Tips F.6 Converting "Handedness"