POV-Ray 3.6 for UNIX documentation
  • 1 POV-Ray for Unix
    • 1.1 Introduction
      • 1.1.1 What is POV-Ray?
      • 1.1.2 What is POV-Ray for Unix?
        • 1.1.2.1 ... And What Is It Not?
      • 1.1.3 Who Can Use POV-Ray for Unix?
      • 1.1.4 Spelling
      • 1.1.5 Reporting Bugs
      • 1.1.6 Trademarks
    • 1.2 New Features
      • 1.2.1 I/O Restrictions
      • 1.2.2 Display Options
      • 1.2.3 Benchmark Mode
      • 1.2.4 Sample scene render scripts
      • 1.2.5 KDE integration
    • 1.3 Getting Started
      • 1.3.1 Available distributions
      • 1.3.2 Configuration
        • 1.3.2.1 The I/O Restrictions configuration file
        • 1.3.2.2 The main POV-Ray INI file
      • 1.3.3 Starting a Render Job
        • 1.3.3.1 X Window display
        • 1.3.3.2 SVGAlib display
        • 1.3.3.3 Output file formats
      • 1.3.4 Interrupting POV-Ray
      • 1.3.5 Tutorials
      • 1.3.6 Rendering the Sample Scenes
      • 1.3.7 POV-Ray for Unix Tips
        • 1.3.7.1 Automated execution
        • 1.3.7.2 Post-processing Images
    • 1.4 I/O Restrictions
      • 1.4.1 Configuration file format
      • 1.4.2 File I/O Security
      • 1.4.3 Shellout Security
      • 1.4.4 Permitted Paths
        • 1.4.4.1 Examples for path settings
      • 1.4.5 Example configuration file
    • 1.5 Understanding File Types
      • 1.5.1 POV Files
      • 1.5.2 INI Files
        • 1.5.2.1 INI File Sections
    • 1.6 Understanding POV-Ray Options
      • 1.6.1 Special Command-Line Options
      • 1.6.2 Benchmark Rendering Mode
    • 1.7 Bug Reports
      • 1.7.1 Feature Requests are not bugs
      • 1.7.2 Known Bugs
      • 1.7.3 Spelling
      • 1.7.4 Bug Reporting via Email
      • 1.7.5 Bug Reporting via our News Server
    • 1.8 Speed Considerations
      • 1.8.1 Render Priority
      • 1.8.2 Render Window
      • 1.8.3 Memory
      • 1.8.4 Scene Features
      • 1.8.5 Render Quality
  • 2 Introduction to POV-Ray
    • 2.1 Introduction
      • 2.1.1 Program Description
      • 2.1.2 What is Ray-Tracing?
      • 2.1.3 What is POV-Ray?
      • 2.1.4 Features
      • 2.1.5 The Early History of POV-Ray
        • 2.1.5.1 The Original Creation Message
        • 2.1.5.2 The Name
        • 2.1.5.3 A Historic 'Version History'
      • 2.1.6 How Do I Begin?
      • 2.1.7 Notation and Basic Assumptions
    • 2.2 Getting Started
      • 2.2.1 Our First Image
        • 2.2.1.1 Understanding POV-Ray's Coordinate System
        • 2.2.1.2 Adding Standard Include Files
        • 2.2.1.3 Adding a Camera
        • 2.2.1.4 Describing an Object
        • 2.2.1.5 Adding Texture to an Object
        • 2.2.1.6 Defining a Light Source
      • 2.2.2 Basic Shapes
        • 2.2.2.1 Box Object
        • 2.2.2.2 Cone Object
        • 2.2.2.3 Cylinder Object
        • 2.2.2.4 Plane Object
        • 2.2.2.5 Torus Object
      • 2.2.3 CSG Objects
        • 2.2.3.1 What is CSG?
        • 2.2.3.2 CSG Union
        • 2.2.3.3 CSG Intersection
        • 2.2.3.4 CSG Difference
        • 2.2.3.5 CSG Merge
        • 2.2.3.6 CSG Pitfalls
          • 2.2.3.6.1 Co-incident Surfaces
      • 2.2.4 The Light Source
        • 2.2.4.1 The Pointlight Source
        • 2.2.4.2 The Spotlight Source
        • 2.2.4.3 The Cylindrical Light Source
        • 2.2.4.4 The Area Light Source
        • 2.2.4.5 The Ambient Light Source
        • 2.2.4.6 Light Source Specials
          • 2.2.4.6.1 Using Shadowless Lights
          • 2.2.4.6.2 Assigning an Object to a Light Source
          • 2.2.4.6.3 Using Light Fading
      • 2.2.5 Simple Texture Options
        • 2.2.5.1 Surface Finishes
        • 2.2.5.2 Adding Bumpiness
        • 2.2.5.3 Creating Color Patterns
        • 2.2.5.4 Pre-defined Textures
      • 2.2.6 Using the Camera
        • 2.2.6.1 Using Focal Blur
      • 2.2.7 POV-Ray Coordinate System
        • 2.2.7.1 Transformations
          • 2.2.7.1.1 Translate
          • 2.2.7.1.2 Scale
          • 2.2.7.1.3 Rotate
          • 2.2.7.1.4 Matrix
        • 2.2.7.2 Transformation Order
        • 2.2.7.3 Inverse Transform
        • 2.2.7.4 Transform Identifiers
        • 2.2.7.5 Transforming Textures and Objects
      • 2.2.8 Setting POV-Ray Options
        • 2.2.8.1 Command Line Switches
        • 2.2.8.2 Using INI Files
        • 2.2.8.3 Using the POVINI Environment Variable
    • 2.3 Advanced Features
      • 2.3.1 Spline Based Shapes
        • 2.3.1.1 Lathe Object
          • 2.3.1.1.1 Understanding The Concept of Splines
        • 2.3.1.2 Surface of Revolution Object
        • 2.3.1.3 Prism Object
          • 2.3.1.3.1 Teaching An Old Spline New Tricks
          • 2.3.1.3.2 Smooth Transitions
          • 2.3.1.3.3 Multiple Sub-Shapes
          • 2.3.1.3.4 Conic Sweeps And The Tapering Effect
        • 2.3.1.4 Sphere Sweep Object
        • 2.3.1.5 Bicubic Patch Object
        • 2.3.1.6 Text Object
      • 2.3.2 Polygon Based Shapes
        • 2.3.2.1 Mesh Object
        • 2.3.2.2 Mesh2 Object
          • 2.3.2.2.1 Smooth triangles and mesh2
          • 2.3.2.2.2 UV mapping and mesh2
          • 2.3.2.2.3 A separate texture per triangle
        • 2.3.2.3 Polygon Object
      • 2.3.3 Other Shapes
        • 2.3.3.1 Blob Object
          • 2.3.3.1.1 Component Types and Other New Features
          • 2.3.3.1.2 Complex Blob Constructs and Negative Strength
        • 2.3.3.2 Height Field Object
        • 2.3.3.3 Isosurface Object
          • 2.3.3.3.1 Simple functions
          • 2.3.3.3.2 Several surfaces
          • 2.3.3.3.3 Non-linear functions
          • 2.3.3.3.4 Specifying functions
          • 2.3.3.3.5 Internal functions
          • 2.3.3.3.6 Combining isosurface functions
          • 2.3.3.3.7 Noise and pigment functions
          • 2.3.3.3.8 Conditional directives and loops
          • 2.3.3.3.9 Transformations on functions
          • 2.3.3.3.10 Improving Isosurface Speed
        • 2.3.3.4 Poly Object
          • 2.3.3.4.1 Creating the polynomial function
          • 2.3.3.4.2 Writing the polynomial vector
        • 2.3.3.5 Superquadric Ellipsoid Object
      • 2.3.4 Advanced Texture Options
        • 2.3.4.1 Pigments
          • 2.3.4.1.1 Using Color List Pigments
          • 2.3.4.1.2 Using Pigment and Patterns
          • 2.3.4.1.3 Using Pattern Modifiers
          • 2.3.4.1.4 Using Transparent Pigments and Layered Textures
          • 2.3.4.1.5 Using Pigment Maps
        • 2.3.4.2 Normals
          • 2.3.4.2.1 Using Basic Normal Modifiers
          • 2.3.4.2.2 Blending Normals
        • 2.3.4.3 Finishes
          • 2.3.4.3.1 Using Ambient
          • 2.3.4.3.2 Using Surface Highlights
          • 2.3.4.3.3 Using Reflection, Metallic and Metallic
          • 2.3.4.3.4 Using Iridescence
        • 2.3.4.4 Working With Pigment Maps
        • 2.3.4.5 Working With Normal Maps
        • 2.3.4.6 Working With Texture Maps
        • 2.3.4.7 Working With List Textures
        • 2.3.4.8 What About Tiles?
        • 2.3.4.9 Average Function
        • 2.3.4.10 Working With Layered Textures
          • 2.3.4.10.1 Declaring Layered Textures
          • 2.3.4.10.2 Another Layered Textures Example
        • 2.3.4.11 When All Else Fails: Material Maps
        • 2.3.4.12 Limitations Of Special Textures
      • 2.3.5 Using Atmospheric Effects
        • 2.3.5.1 The Background
        • 2.3.5.2 The Sky Sphere
          • 2.3.5.2.1 Creating a Sky with a Color Gradient
          • 2.3.5.2.2 Adding the Sun
          • 2.3.5.2.3 Adding Some Clouds
        • 2.3.5.3 The Fog
          • 2.3.5.3.1 A Constant Fog
          • 2.3.5.3.2 Setting a Minimum Translucency
          • 2.3.5.3.3 Creating a Filtering Fog
          • 2.3.5.3.4 Adding Some Turbulence to the Fog
          • 2.3.5.3.5 Using Ground Fog
          • 2.3.5.3.6 Using Multiple Layers of Fog
          • 2.3.5.3.7 Fog and Hollow Objects
        • 2.3.5.4 The Rainbow
          • 2.3.5.4.1 Starting With a Simple Rainbow
          • 2.3.5.4.2 Increasing the Rainbow's Translucency
          • 2.3.5.4.3 Using a Rainbow Arc
      • 2.3.6 Simple Media Tutorial
        • 2.3.6.1 Types of media
        • 2.3.6.2 Some media concepts
        • 2.3.6.3 Simple media examples
          • 2.3.6.3.1 Emitting media
          • 2.3.6.3.2 Absorbing media
          • 2.3.6.3.3 Scattering media
        • 2.3.6.4 Multiple medias inside the same object
        • 2.3.6.5 Media and transformations
        • 2.3.6.6 A more advanced example of scattering media
        • 2.3.6.7 Media and photons
      • 2.3.7 Radiosity
        • 2.3.7.1 Introduction
        • 2.3.7.2 Radiosity with conventional lighting
        • 2.3.7.3 Radiosity without conventional lighting
        • 2.3.7.4 Normals and Radiosity
        • 2.3.7.5 Performance considerations
      • 2.3.8 Making Animations
        • 2.3.8.1 The Clock Variable: Key To It All
        • 2.3.8.2 Clock Dependant Variables And Multi-Stage Animations
        • 2.3.8.3 The Phase Keyword
        • 2.3.8.4 Do Not Use Jitter Or Crand
        • 2.3.8.5 INI File Settings
      • 2.3.9 While-loop tutorial
        • 2.3.9.1 What a while-loop is and what it is not
        • 2.3.9.2 How does a single while-loop work?
        • 2.3.9.3 How do I make a while-loop?
        • 2.3.9.4 What is a condition and how do I make one?
        • 2.3.9.5 What about loop types other than simple for-loops?
        • 2.3.9.6 What about nested loops?
        • 2.3.9.7 Mixed-type nested loops
        • 2.3.9.8 Other things to note
      • 2.3.10 SDL tutorial: A raytracer
        • 2.3.10.1 Introduction
        • 2.3.10.2 The idea and the code
        • 2.3.10.3 Short introduction to raytracing
        • 2.3.10.4 Global settings
        • 2.3.10.5 Scene definition
        • 2.3.10.6 Initializing the raytracer
        • 2.3.10.7 Ray-sphere intersection
          • 2.3.10.7.1 Inner workings of a #macro
          • 2.3.10.7.2 The ray-sphere intersection macro
        • 2.3.10.8 The Trace macro
          • 2.3.10.8.1 Calculating the closest intersection
          • 2.3.10.8.2 If the ray doesn't hit anything
          • 2.3.10.8.3 Initializing color calculations
          • 2.3.10.8.4 Going through the light sources
          • 2.3.10.8.5 Shadow test
          • 2.3.10.8.6 Diffuse lighting
          • 2.3.10.8.7 Specular lighting
          • 2.3.10.8.8 Reflection Calculation
        • 2.3.10.9 Calculating the image
        • 2.3.10.10 Creating the colored mesh
          • 2.3.10.10.1 The structure of the mesh
          • 2.3.10.10.2 Creating the mesh
          • 2.3.10.10.3 Creating the vertex points
          • 2.3.10.10.4 Creating the textures
          • 2.3.10.10.5 Creating the triangles
        • 2.3.10.11 The Camera-setup
    • 2.4 Questions and Tips
      • 2.4.1 Language Tips and tricks to achieve useful things
        • 2.4.1.1 How do I make a visible light source?
        • 2.4.1.2 How do I make bright objects?
        • 2.4.1.3 How do I move the camera in a circular path?
        • 2.4.1.4 How do I use an image to texture my object?
        • 2.4.1.5 How can I generate a spline?
        • 2.4.1.6 How can I simulate motion blur?
        • 2.4.1.7 How can I find the size of a text object?
        • 2.4.1.8 How do I make extruded text?
        • 2.4.1.9 How do I make an object hollow?
        • 2.4.1.10 How can I fill a glass with water or other objects?
        • 2.4.1.11 How can I bend a object?
        • 2.4.1.12 Can I get non-grainy focal blur?
      • 2.4.2 Language Things that don't work as one expects
        • 2.4.2.1 Using several transparent objects makes them black?
        • 2.4.2.2 I'm getting color banding in the image
        • 2.4.2.3 Rotation behaves very strangely
        • 2.4.2.4 The image gets distorted when rendering a square image
        • 2.4.2.5 Why are there strange dark pixels or noise on my CSG object?
        • 2.4.2.6 Why won't the textures in stars.inc work with my sky_sphere?
        • 2.4.2.7 When I use filter or transmit with my .tga image map nothing happens.
        • 2.4.2.8 Isosurface not rendering properly?
      • 2.4.3 Language related things
        • 2.4.3.1 How do I turn animation on?
        • 2.4.3.2 Can POV-Ray use multiple processors?
        • 2.4.3.3 Can I get a wireframe render of my scene?
        • 2.4.3.4 Can I specify variable IOR for an object?
        • 2.4.3.5 What is Photon Mapping?
      • 2.4.4 File Formats
        • 2.4.4.1 Saving the image to disk.
        • 2.4.4.2 Can I convert my POV-Ray scenes to another format?
        • 2.4.4.3 How can I convert my scenes from format X to POV-Ray format?
        • 2.4.4.4 How do I import all of my textures I created in 3DS Max into POV-Ray?
        • 2.4.4.5 How can I avoid artifacts and still get good JPEG compression?
        • 2.4.4.6 Why are there no converters from POV to other formats?
        • 2.4.4.7 Why are triangle meshes in ASCII format?
      • 2.4.5 Utilities, models, etc.
        • 2.4.5.1 What is the best animation program available?
        • 2.4.5.2 Creating/viewing MPEG-files.
        • 2.4.5.3 Where can I find models/textures?
        • 2.4.5.4 What are the best modellers for POV-Ray?
        • 2.4.5.5 Any POV-Ray modellers for Mac?
        • 2.4.5.6 Is there any user gallery of POV-Ray images?
        • 2.4.5.7 Any good heightfield modellers?
        • 2.4.5.8 Any easy way of creating trees?
      • 2.4.6 Rendering speed
        • 2.4.6.1 Will POV-Ray render faster with a 3D card?
        • 2.4.6.2 How do I increase rendering speed?
        • 2.4.6.3 CSG speed
        • 2.4.6.4 Does POV-Ray support 3DNow?
      • 2.4.7 Miscellaneous questions
        • 2.4.7.1 Where do I suggest new features?
        • 2.4.7.2 I'm getting a "Illegal grid value in dda_traversal()"
        • 2.4.7.3 No beep when finished?
        • 2.4.7.4 POV-Ray viruses?
        • 2.4.7.5 GUI for Unix POV-Ray?
      • 2.4.8 The shadow line artifact
        • 2.4.8.1 What is the problem?
        • 2.4.8.2 What causes the problem?
        • 2.4.8.3 Can this problem be solved?
        • 2.4.8.4 Possible solutions?
      • 2.4.9 Smooth triangle artifact
        • 2.4.9.1 What is the problem?
        • 2.4.9.2 What causes the problem?
        • 2.4.9.3 Can this problem be solved?
    • 2.5 Appendices
      • 2.5.1 POV-Ray User License
      • 2.5.2 Citing POV-Ray in Academic Publications
      • 2.5.3 The POV-Team
        • 2.5.3.1 Contacting the Authors
        • 2.5.3.2 The TAG
        • 2.5.3.3 POV-Ray 3.6 Development
      • 2.5.4 What to do if you don't have POV-Ray
        • 2.5.4.1 Which Version of POV-Ray should you use?
          • 2.5.4.1.1 Microsoft Windows 9x/NT/2000/XP
          • 2.5.4.1.2 Linux for Intel x86
          • 2.5.4.1.3 Apple Macintosh
          • 2.5.4.1.4 Generic Unix
          • 2.5.4.1.5 All Versions
        • 2.5.4.2 Where to Find POV-Ray Files
          • 2.5.4.2.1 World Wide Website www.povray.org
          • 2.5.4.2.2 Books, Magazines and CD-ROMs
      • 2.5.5 Suggested Reading
  • 3 POV-Ray Reference
    • 3.1 Introduction
      • 3.1.1 Notation and Basic Assumptions
      • 3.1.2 Command-line Options
        • 3.1.2.1 Animation Options
          • 3.1.2.1.1 External Animation Loop
          • 3.1.2.1.2 Internal Animation Loop
          • 3.1.2.1.3 Subsets of Animation Frames
          • 3.1.2.1.4 Cyclic Animation
          • 3.1.2.1.5 Field Rendering
        • 3.1.2.2 General Output Options
          • 3.1.2.2.1 Height and Width of Output
          • 3.1.2.2.2 Partial Output Options
          • 3.1.2.2.3 Interrupting Options
          • 3.1.2.2.4 Resuming Options
        • 3.1.2.3 Display Output Options
          • 3.1.2.3.1 Display Hardware Settings
          • 3.1.2.3.2 Setting your Display Gamma
          • 3.1.2.3.3 Display Related Settings
          • 3.1.2.3.4 Mosaic Preview
        • 3.1.2.4 File Output Options
          • 3.1.2.4.1 Output File Type
          • 3.1.2.4.2 Output File Name
          • 3.1.2.4.3 Output File Buffer
          • 3.1.2.4.4 CPU Utilization Histogram
          • 3.1.2.4.5 File Type
          • 3.1.2.4.6 File Name
          • 3.1.2.4.7 Grid Size
        • 3.1.2.5 Scene Parsing Options
          • 3.1.2.5.1 Constant
          • 3.1.2.5.2 Input File Name
          • 3.1.2.5.3 Include File Name
          • 3.1.2.5.4 Library Paths
          • 3.1.2.5.5 Language Version
        • 3.1.2.6 Shell-out to Operating System
          • 3.1.2.6.1 String Substitution in Shell Commands
          • 3.1.2.6.2 Shell Command Sequencing
          • 3.1.2.6.3 Shell Command Return Actions
        • 3.1.2.7 Text Output
          • 3.1.2.7.1 Text Streams
          • 3.1.2.7.2 Console Text Output
          • 3.1.2.7.3 Directing Text Streams to Files
          • 3.1.2.7.4 Warning Level
          • 3.1.2.7.5 Help Screen Switches
        • 3.1.2.8 Tracing Options
          • 3.1.2.8.1 Quality Settings
          • 3.1.2.8.2 Automatic Bounding Control
          • 3.1.2.8.3 Removing User Bounding
          • 3.1.2.8.4 Anti-Aliasing Options
    • 3.2 Scene Description Language
      • 3.2.1 Language Basics
        • 3.2.1.1 Identifiers and Keywords
        • 3.2.1.2 Comments
        • 3.2.1.3 Float Expressions
          • 3.2.1.3.1 Literals
          • 3.2.1.3.2 Identifiers
          • 3.2.1.3.3 Operators
          • 3.2.1.3.4 Functions
          • 3.2.1.3.5 Built-in Constants
          • 3.2.1.3.6 Built-in Variables
        • 3.2.1.4 Vector Expressions
          • 3.2.1.4.1 Literals
          • 3.2.1.4.2 Identifiers
          • 3.2.1.4.3 Operators
          • 3.2.1.4.4 Operator Promotion
          • 3.2.1.4.5 Functions
          • 3.2.1.4.6 Built-in Constants
        • 3.2.1.5 Specifying Colors
          • 3.2.1.5.1 Color Vectors
          • 3.2.1.5.2 Color Keywords
          • 3.2.1.5.3 Color Identifiers
          • 3.2.1.5.4 Color Operators
          • 3.2.1.5.5 Common Color Pitfalls
        • 3.2.1.6 User-Defined Functions
          • 3.2.1.6.1 Sum and Product functions
          • 3.2.1.6.2 Functions and Macros
          • 3.2.1.6.3 Declaring User-Defined Float Functions
          • 3.2.1.6.4 Declaring User-Defined Vector Functions
          • 3.2.1.6.5 Declaring User-Defined Color Functions
          • 3.2.1.6.6 Internal Pre-Defined Functions
        • 3.2.1.7 Strings
          • 3.2.1.7.1 String Literals
          • 3.2.1.7.2 String Identifiers
          • 3.2.1.7.3 String Functions
        • 3.2.1.8 Array Identifiers
          • 3.2.1.8.1 Declaring Arrays
          • 3.2.1.8.2 Array Initializers
        • 3.2.1.9 Spline Identifiers
          • 3.2.1.9.1 Splines and Macros
      • 3.2.2 Language Directives
        • 3.2.2.1 Include Files and the #include Directive
        • 3.2.2.2 The #declare and #local Directives
          • 3.2.2.2.1 Declaring identifiers
          • 3.2.2.2.2 #declare vs. #local
          • 3.2.2.2.3 Identifier Name Collisions
          • 3.2.2.2.4 Destroying Identifiers with #undef
        • 3.2.2.3 File I/O Directives
          • 3.2.2.3.1 The #fopen Directive
          • 3.2.2.3.2 The #fclose Directive
          • 3.2.2.3.3 The #read Directive
          • 3.2.2.3.4 The #write Directive
        • 3.2.2.4 The #default Directive
        • 3.2.2.5 The #version Directive
        • 3.2.2.6 Conditional Directives
          • 3.2.2.6.1 The #if...#else...#end Directives
          • 3.2.2.6.2 The #ifdef and #ifndef Directives
          • 3.2.2.6.3 The #switch, #case, #range and #break Directives
          • 3.2.2.6.4 The #while...#end Directive
        • 3.2.2.7 User Message Directives
          • 3.2.2.7.1 Text Message Streams
          • 3.2.2.7.2 Text Formatting
        • 3.2.2.8 User Defined Macros
          • 3.2.2.8.1 The #macro Directive
          • 3.2.2.8.2 Invoking Macros
          • 3.2.2.8.3 Are POV-Ray Macros a Function or a Macro?
          • 3.2.2.8.4 Returning a Value Like a Function
          • 3.2.2.8.5 Returning Values Via Parameters
    • 3.3 Scene Settings
      • 3.3.1 Camera
        • 3.3.1.1 Placing the Camera
          • 3.3.1.1.1 Location and Look_At
          • 3.3.1.1.2 The Sky Vector
          • 3.3.1.1.3 Angles
          • 3.3.1.1.4 The Direction Vector
          • 3.3.1.1.5 Up and Right Vectors
          • 3.3.1.1.6 Aspect Ratio
          • 3.3.1.1.7 Handedness
          • 3.3.1.1.8 Transforming the Camera
        • 3.3.1.2 Types of Projection
          • 3.3.1.2.1 Perspective projection
          • 3.3.1.2.2 Orthographic projection
          • 3.3.1.2.3 Fisheye projection
          • 3.3.1.2.4 Ultra wide angle projection
          • 3.3.1.2.5 Omnimax projection
          • 3.3.1.2.6 Panoramic projection
          • 3.3.1.2.7 Cylindrical projection
          • 3.3.1.2.8 Spherical projection
        • 3.3.1.3 Focal Blur
        • 3.3.1.4 Camera Ray Perturbation
        • 3.3.1.5 Camera Identifiers
      • 3.3.2 Atmospheric Effects
        • 3.3.2.1 Atmospheric Media
        • 3.3.2.2 Background
        • 3.3.2.3 Fog
        • 3.3.2.4 Sky Sphere
        • 3.3.2.5 Rainbow
      • 3.3.3 Global Settings
        • 3.3.3.1 ADC_Bailout
        • 3.3.3.2 Ambient_Light
        • 3.3.3.3 Assumed_Gamma
          • 3.3.3.3.1 Monitor Gamma
          • 3.3.3.3.2 Image File Gamma
          • 3.3.3.3.3 Scene File Gamma
        • 3.3.3.4 HF_Gray_16
        • 3.3.3.5 Irid_Wavelength
        • 3.3.3.6 Charset
        • 3.3.3.7 Max_Trace_Level
        • 3.3.3.8 Max_Intersections
        • 3.3.3.9 Number_Of_Waves
        • 3.3.3.10 Noise_generator
        • 3.3.3.11 Radiosity Basics
      • 3.3.4 Radiosity
        • 3.3.4.1 How Radiosity Works
        • 3.3.4.2 Adjusting Radiosity
          • 3.3.4.2.1 radiosity adc_bailout
          • 3.3.4.2.2 always_sample
          • 3.3.4.2.3 brightness
          • 3.3.4.2.4 count
          • 3.3.4.2.5 error_bound
          • 3.3.4.2.6 gray_threshold
          • 3.3.4.2.7 low_error_factor
          • 3.3.4.2.8 max_sample
          • 3.3.4.2.9 Media and Radiosity
          • 3.3.4.2.10 minimum_reuse
          • 3.3.4.2.11 nearest_count
          • 3.3.4.2.12 Normal and Radiosity
          • 3.3.4.2.13 Pretrace
          • 3.3.4.2.14 recursion_limit
          • 3.3.4.2.15 Save and load radiosity data
        • 3.3.4.3 Tips on Radiosity
    • 3.4 Objects
      • 3.4.1 Finite Solid Primitives
        • 3.4.1.1 Blob
        • 3.4.1.2 Box
        • 3.4.1.3 Cone
        • 3.4.1.4 Cylinder
        • 3.4.1.5 Height Field
        • 3.4.1.6 Julia Fractal
        • 3.4.1.7 Lathe
        • 3.4.1.8 Prism
        • 3.4.1.9 Sphere
        • 3.4.1.10 Sphere Sweep
        • 3.4.1.11 Superquadric Ellipsoid
        • 3.4.1.12 Surface of Revolution
        • 3.4.1.13 Text
        • 3.4.1.14 Torus
      • 3.4.2 Finite Patch Primitives
        • 3.4.2.1 Bicubic Patch
        • 3.4.2.2 Disc
        • 3.4.2.3 Mesh
          • 3.4.2.3.1 Solid Mesh
        • 3.4.2.4 Mesh2
          • 3.4.2.4.1 Smooth and Flat triangles in the same mesh
          • 3.4.2.4.2 Mesh Triangle Textures
        • 3.4.2.5 Polygon
        • 3.4.2.6 Triangle and Smooth Triangle
      • 3.4.3 Infinite Solid Primitives
        • 3.4.3.1 Plane
        • 3.4.3.2 Poly, Cubic and Quartic
        • 3.4.3.3 Quadric
      • 3.4.4 Isosurface Object
      • 3.4.5 Parametric Object
      • 3.4.6 Constructive Solid Geometry
        • 3.4.6.1 Inside and Outside
        • 3.4.6.2 Union
          • 3.4.6.2.1 Split_Union
        • 3.4.6.3 Intersection
        • 3.4.6.4 Difference
        • 3.4.6.5 Merge
      • 3.4.7 Light Sources
        • 3.4.7.1 Point Lights
        • 3.4.7.2 Spotlights
        • 3.4.7.3 Cylindrical Lights
        • 3.4.7.4 Parallel Lights
        • 3.4.7.5 Area Lights
        • 3.4.7.6 Shadowless Lights
        • 3.4.7.7 Looks_like
        • 3.4.7.8 Projected_Through
        • 3.4.7.9 Light Fading
        • 3.4.7.10 Atmospheric Media Interaction
        • 3.4.7.11 Atmospheric Attenuation
      • 3.4.8 Light Groups
      • 3.4.9 Object Modifiers
        • 3.4.9.1 Clipped_By
        • 3.4.9.2 Bounded_By
        • 3.4.9.3 Material
        • 3.4.9.4 Inverse
        • 3.4.9.5 Hollow
        • 3.4.9.6 No_Shadow
        • 3.4.9.7 No_Image, No_Reflection
        • 3.4.9.8 Double_Illuminate
        • 3.4.9.9 Sturm
    • 3.5 Textures
      • 3.5.1 Pigment
        • 3.5.1.1 Solid Color Pigments
        • 3.5.1.2 Color List Pigments
        • 3.5.1.3 Color Maps
        • 3.5.1.4 Pigment Maps and Pigment Lists
        • 3.5.1.5 Image Maps
          • 3.5.1.5.1 Specifying an Image Map
          • 3.5.1.5.2 The Filter and Transmit Bitmap Modifiers
          • 3.5.1.5.3 Using the Alpha Channel
        • 3.5.1.6 Quick Color
      • 3.5.2 Normal
        • 3.5.2.1 Slope Maps
          • 3.5.2.1.1 Normals, Accuracy
        • 3.5.2.2 Normal Maps and Normal Lists
        • 3.5.2.3 Bump Maps
          • 3.5.2.3.1 Specifying a Bump Map
          • 3.5.2.3.2 Bump_Size
          • 3.5.2.3.3 Use_Index and Use_Color
        • 3.5.2.4 Scaling normals
      • 3.5.3 Finish
        • 3.5.3.1 Ambient
        • 3.5.3.2 Diffuse Reflection Items
          • 3.5.3.2.1 Diffuse
          • 3.5.3.2.2 Brilliance
          • 3.5.3.2.3 Crand Graininess
        • 3.5.3.3 Highlights
          • 3.5.3.3.1 Phong Highlights
          • 3.5.3.3.2 Specular Highlight
          • 3.5.3.3.3 Metallic Highlight Modifier
        • 3.5.3.4 Specular Reflection
        • 3.5.3.5 Conserve Energy for Reflection
        • 3.5.3.6 Iridescence
      • 3.5.4 Halo
      • 3.5.5 Patterned Textures
        • 3.5.5.1 Texture Maps
        • 3.5.5.2 Tiles
        • 3.5.5.3 Material Maps
          • 3.5.5.3.1 Specifying a Material Map
      • 3.5.6 Layered Textures
      • 3.5.7 UV Mapping
        • 3.5.7.1 Supported Objects
        • 3.5.7.2 UV Vectors
      • 3.5.8 Triangle Texture Interpolation
      • 3.5.9 Interior Texture
      • 3.5.10 Cutaway Textures
      • 3.5.11 Patterns
        • 3.5.11.1 Agate
        • 3.5.11.2 Average
        • 3.5.11.3 Boxed
        • 3.5.11.4 Bozo
        • 3.5.11.5 Brick
        • 3.5.11.6 Bumps
        • 3.5.11.7 Cells
        • 3.5.11.8 Checker
        • 3.5.11.9 Crackle Patterns
        • 3.5.11.10 Cylindrical
        • 3.5.11.11 Density_File
          • 3.5.11.11.1 df3 file format
        • 3.5.11.12 Dents
        • 3.5.11.13 Facets
        • 3.5.11.14 Fractal Patterns
        • 3.5.11.15 Function as pattern
          • 3.5.11.15.1 What can be used
        • 3.5.11.16 Function Image
        • 3.5.11.17 Gradient
        • 3.5.11.18 Granite
        • 3.5.11.19 Hexagon
        • 3.5.11.20 Image Pattern
        • 3.5.11.21 Leopard
        • 3.5.11.22 Marble
        • 3.5.11.23 Object Pattern
        • 3.5.11.24 Onion
        • 3.5.11.25 Pigment Pattern
        • 3.5.11.26 Planar
        • 3.5.11.27 Quilted
        • 3.5.11.28 Radial
        • 3.5.11.29 Ripples
        • 3.5.11.30 Slope
        • 3.5.11.31 Spherical
        • 3.5.11.32 Spiral1
        • 3.5.11.33 Spiral2
        • 3.5.11.34 Spotted
        • 3.5.11.35 Waves
        • 3.5.11.36 Wood
        • 3.5.11.37 Wrinkles
      • 3.5.12 Pattern Modifiers
        • 3.5.12.1 Transforming Patterns
        • 3.5.12.2 Frequency and Phase
        • 3.5.12.3 Waveforms
        • 3.5.12.4 Noise Generators
        • 3.5.12.5 Turbulence
        • 3.5.12.6 Warps
          • 3.5.12.6.1 Black Hole Warp
          • 3.5.12.6.2 Repeat Warp
          • 3.5.12.6.3 Turbulence versus Turbulence Warp
          • 3.5.12.6.4 Turbulence Warp
          • 3.5.12.6.5 Mapping using warps
        • 3.5.12.7 Bitmap Modifiers
          • 3.5.12.7.1 The once Option
          • 3.5.12.7.2 The map_type Option
          • 3.5.12.7.3 The interpolate Option
    • 3.6 Interior & Media & Photons
      • 3.6.1 Interior
        • 3.6.1.1 Why are Interior and Media Necessary?
        • 3.6.1.2 Empty and Solid Objects
        • 3.6.1.3 Scaling objects with an interior
        • 3.6.1.4 Refraction
        • 3.6.1.5 Dispersion
          • 3.6.1.5.1 Dispersion & Caustics
        • 3.6.1.6 Attenuation
        • 3.6.1.7 Simulated Caustics
        • 3.6.1.8 Object-Media
      • 3.6.2 Media
        • 3.6.2.1 Media Types
          • 3.6.2.1.1 Absorption
          • 3.6.2.1.2 Emission
          • 3.6.2.1.3 Scattering
        • 3.6.2.2 Sampling Parameters & Methods
        • 3.6.2.3 Density
          • 3.6.2.3.1 General Density Modifiers
          • 3.6.2.3.2 Density with color_map
          • 3.6.2.3.3 Density Maps and Density Lists
          • 3.6.2.3.4 Multiple Density vs. Multiple Media
      • 3.6.3 Photons
        • 3.6.3.1 Overview
          • 3.6.3.1.1 Examples
        • 3.6.3.2 Using Photon Mapping in Your Scene
          • 3.6.3.2.1 Photon Global Settings
          • 3.6.3.2.2 Shooting Photons at an Object
          • 3.6.3.2.3 Photons and Light Sources
          • 3.6.3.2.4 Photons and Media
        • 3.6.3.3 Photons FAQ
        • 3.6.3.4 Photon Tips
        • 3.6.3.5 Advanced Techniques
          • 3.6.3.5.1 Autostop
          • 3.6.3.5.2 Adaptive Search Radius
          • 3.6.3.5.3 Photons and Dispersion
          • 3.6.3.5.4 Saving and Loading Photon Maps
    • 3.7 Include Files
      • 3.7.1 arrays.inc
      • 3.7.2 chars.inc
      • 3.7.3 colors.inc
        • 3.7.3.1 Predefined colors
        • 3.7.3.2 Color macros
      • 3.7.4 consts.inc
        • 3.7.4.1 Vector constants
        • 3.7.4.2 Map type constants
        • 3.7.4.3 Interpolation type constants
        • 3.7.4.4 Fog type constants
        • 3.7.4.5 Focal blur hexgrid constants
        • 3.7.4.6 IORs
        • 3.7.4.7 Dispersion amounts
        • 3.7.4.8 Scattering media type constants
      • 3.7.5 debug.inc
      • 3.7.6 finish.inc
      • 3.7.7 functions.inc
        • 3.7.7.1 Common Parameters
          • 3.7.7.1.1 Field Strength
          • 3.7.7.1.2 Field Limit
          • 3.7.7.1.3 SOR Switch
          • 3.7.7.1.4 SOR Offset
          • 3.7.7.1.5 SOR Angle
          • 3.7.7.1.6 Invert Isosurface
        • 3.7.7.2 Internal Functions
        • 3.7.7.3 Pre defined functions
          • 3.7.7.3.1 Pattern functions
      • 3.7.8 glass.inc, glass_old.inc
        • 3.7.8.1 Glass colors (with transparency)
        • 3.7.8.2 Glass colors (without transparency, for fade_color)
        • 3.7.8.3 Glass finishes
        • 3.7.8.4 Glass interiors
        • 3.7.8.5 Glass interior macros
        • 3.7.8.6 glass_old.inc
          • 3.7.8.6.1 Glass finishes
          • 3.7.8.6.2 Glass textures
      • 3.7.9 math.inc
        • 3.7.9.1 Float functions and macros
        • 3.7.9.2 Vector functions and macros
        • 3.7.9.3 Vector Analysis
      • 3.7.10 metals.inc, golds.inc
        • 3.7.10.1 metals.inc
        • 3.7.10.2 golds.inc
      • 3.7.11 rand.inc
        • 3.7.11.1 Flat Distributions
        • 3.7.11.2 Other Distributions
          • 3.7.11.2.1 Continuous Symmetric Distributions
          • 3.7.11.2.2 Continuous Skewed Distributions
          • 3.7.11.2.3 Discrete Distributions
      • 3.7.12 shapes.inc, shapes_old.inc, shapes2.inc, shapesq.inc
        • 3.7.12.1 shapes.inc
          • 3.7.12.1.1 The HF Macros
        • 3.7.12.2 shapes_old.inc
        • 3.7.12.3 shapes2.inc
        • 3.7.12.4 shapesq.inc
      • 3.7.13 skies.inc, stars.inc
        • 3.7.13.1 skies.inc
        • 3.7.13.2 stars.inc
      • 3.7.14 stones.inc, stones1.inc, stones2.inc, stoneold.inc
        • 3.7.14.1 stones1.inc
        • 3.7.14.2 stones2.inc
      • 3.7.15 stdinc.inc
      • 3.7.16 strings.inc
      • 3.7.17 textures.inc
        • 3.7.17.1 Stones
        • 3.7.17.2 Skies
        • 3.7.17.3 Woods
        • 3.7.17.4 Glass
        • 3.7.17.5 Metals
        • 3.7.17.6 Special textures
        • 3.7.17.7 Texture and pattern macros
      • 3.7.18 transforms.inc
      • 3.7.19 woodmaps.inc, woods.inc
        • 3.7.19.1 woodmaps.inc
        • 3.7.19.2 woods.inc
      • 3.7.20 Other files
        • 3.7.20.1 logo.inc
        • 3.7.20.2 rad_def.inc
        • 3.7.20.3 screen.inc
        • 3.7.20.4 stdcam.inc
        • 3.7.20.5 stage1.inc
        • 3.7.20.6 sunpos.inc
        • 3.7.20.7 font files (*.ttf)
        • 3.7.20.8 color_map files (*.map)
        • 3.7.20.9 image files (*.png, *.pot, *.df3)
    • 3.8 Quick Reference
      • 3.8.1 Quick Reference Contents
      • 3.8.2 The Scene
      • 3.8.3 Language Basics
        • 3.8.3.1 Floats
        • 3.8.3.2 Vectors
        • 3.8.3.3 Colors
        • 3.8.3.4 User defined Functions
        • 3.8.3.5 Strings
        • 3.8.3.6 Arrays
        • 3.8.3.7 Splines
      • 3.8.4 Language Directives
        • 3.8.4.1 File Inclusion
        • 3.8.4.2 Identifier Declaration
        • 3.8.4.3 File Input/Output
        • 3.8.4.4 Default Texture
        • 3.8.4.5 Version Identfier
        • 3.8.4.6 Control Flow Directives
        • 3.8.4.7 Message Streams
        • 3.8.4.8 Macro
        • 3.8.4.9 Embedded Directives
      • 3.8.5 Transformations
      • 3.8.6 Camera
      • 3.8.7 Lights
        • 3.8.7.1 Lightgroup
      • 3.8.8 Objects
        • 3.8.8.1 Finite Solid Objects
        • 3.8.8.2 Finite Patch Objects
        • 3.8.8.3 Infinite Solid Objects
        • 3.8.8.4 Isosurface
        • 3.8.8.5 Parametric
        • 3.8.8.6 CSG
      • 3.8.9 Object Modifiers
        • 3.8.9.1 UV Mapping
        • 3.8.9.2 Material
        • 3.8.9.3 Interior
        • 3.8.9.4 Interior Texture
      • 3.8.10 Texture
        • 3.8.10.1 Plain Texture
        • 3.8.10.2 Layered Texture
        • 3.8.10.3 Patterned Texture
        • 3.8.10.4 Pigment
        • 3.8.10.5 Normal
        • 3.8.10.6 Finish
        • 3.8.10.7 Pattern
        • 3.8.10.8 Pattern Modifiers
      • 3.8.11 Media
      • 3.8.12 Atmospheric Effects
        • 3.8.12.1 Background
        • 3.8.12.2 Fog
        • 3.8.12.3 Sky Sphere
        • 3.8.12.4 Rainbow
      • 3.8.13 Global Settings
        • 3.8.13.1 Radiosity
        • 3.8.13.2 Photons