This article begins a series about the Povray raytracer.
The purpose of the current article is to help novice Linux users to get started with POV-Ray.
Persistence of Vision Ray-Tracer (POV-Ray) Copyright 1996 POV-Team.
Introduction.
Povray (Persistence of Vision Raytracer) is basically a ray tracer.
It is hard to explain what this term means without getting into a
number of details so let us leave a detailed explanation of what a ray tracer
is for future articles. For the moment it suffices to sketch
the concept of raytracing: It is a technique to render imaginary scences
defined in the computer through the use of models, which declare the
existence of objects and their shapes, as well as points, light sources
and a camera. The computer tries to render an image as reallisticaly
as possible while mantaining a minimum processing time.
When possible POV-Ray tries to imitate nature. Sometimes
POV-Ray has to settle for just imitating or simulating a natural effect.
Without such shortcuts it would be impossible to render an image in
a reasonable amount of time. Raytracing algorithms work by computing
a large amount of rays (like light beams), however these rays do not
behave like real optical rays. In nature, rays originate in light sources,
move in space and whenever they encounter a physical obstacle (i.e a surface)
they scatter, generating a new ray that goes from the point on impact to
the retina's viewer or the camera's film. On the other hand, in a raytracer
rays move backwards, from the viewer or film to the objects and then
back to the light sources. We will leave a detailed explanation as to why and
how of this algorithm for the next article.
The quality of Povray is excellent and is comparable to most
commercial raytracers. Commercial design products based on raytracing
do have integrated tools for designing confortably all sort of
objects.
In the case of Povray, it is possible to use modellers from different
independent companies or format filters, and in general the user has
a great variety of tools available. This does not mean that it is impossible
to achieve a beautiful or even fantastic design using exclusively Povray.
Imagination is all that is required.
Another important point is that the source code is public, allowing
us to examine the various techniques used. Povray's copyright is described
in Appendix A of the manual, as Linux it is a freeware licence. Check out
the details in the original licence.
There is a
Povray manual available in a text version (easy for fast browsing),
in HTML and postscript formats. If you think to print out the postscript
file, you should prepare about 600 sheets; huge because of the great
possibilities of Povray, but do not feel intimidated. In the present
article you will be able to try out Povray and in next articles we will
learn basic concepts.
Povray lets us enter the world of infography through the front door, all
thanks to its wonderful technical capabilities. My concept of
infography is based on the notion that although pure technique can
help us to obtain images with high realism, nevertheless artistic value
does not equal realism nor technique itself. Technology is a
valuable assistance, but everything that has real artistic value has
to be conceived in our minds first. The idea is the main goal.
Many times I like to play with the concepts of realism and fantasy.
Infography allows us to play this game of one and a thousand shapes
creating an interesting conflict in the viewer. I keep a small image
gallery created using Povray at:
http://slug.ctv.es/~acastro/infograf/catalog.htm
Here is an example, a hybrid design: an airplane, a sailing ship
and a seagull.
Seagull 1
In this first image we can see more likely a seagull.
Seagull 2
However, from a second perspective you can say that it resembles more an airplane
while it is still the same object.
The object has the silhoulette of a seagull. In the upper part, it
has a transparent cockpit and two pilots are easily visible. The pigmentation
is strange but with the raytracing these pictures can achieve a degree of
astonishing realism.
If you show these pictures to a 5-year old child, and ask him
what he sees, he will likely answer that it is a photo, not a drawing. Showing
the same pictures to an adult, he would have some difficulties to classify it.
He will say that it is clearly neither a drawing nor a photo. Maybe he will know
that was produced by a computer, but how can a machine can create this strange and
beautiful scene?
This kind of effect is the one I seek in my
designs. Conflicting images where synthetic and artificial are put together
in harmony with several realistic features. For it you need without a doubt
imagination and a good knowledge of the technique.
On the other hand, to get very realistic images, you should have a complete
control over the technique, but maybe this can not be necessarely called art.
I have truly spent many very good times with Povray and I'm sure that
anyone that gets to know it will enjoy it the same.
Some of the most important
features of Povray
-
Partial rendering of an image. It is possible to continue processing a
previously interrupted redering.
-
Options for rendering with different resolutions and perfection scales in order
to decrease processing time.
-
Capable of displaying an image while creating it. (In SVGA and XWindows).
-
Quick mosaic style preview.
-
Complete logging of operations with profiling information that let us
examine what steps consume the most CPU time.
-
Preliminary syntactic parsing with a good error detection.
-
Large number of libraries of textures, with enormous possibilities
for the creation of any kind of texture.
-
Surface effects: roughness, bright, reflections, transparency, etc,
-
Simple geometrical primitives (spheres, cones, planes, cubes, prisms, etc.).
-
Geometrical objects based on complex mathematical equations.
-
Shapes formed with meshes of triangles.
-
Smoothening of edges, e.g. on surfaces defined by a mesh of triangles.
-
Complex objects made by aggregation of simpler ones.
-
Delimitation of complex objects by means of simple shapes to optimise the
efficiency of the tracer.
-
Shape pigmentation from a plain image.
-
Shapes generated from a flat colored image by raising the pixels
proportionaly to its color (Very useful for generating terrains).
-
Objects generated by revolution.
-
3-D texts from TIFF sources.
-
Atmospheric effects, e.g. mists.
-
Lighting effects with several kinds of light sources, spot lights, etc.
-
Different options of antialiasing. Antialiasing enhances our line
appearence by removing the well-known stair effect that often
happens at low resolution. Povray offers
several methods for antialiasing.
-
A complete language for scene description.
-
Generation of animations through several methods:
-
External loop (option Clock=n.n).
-
Internal loop (using internal parameters within the source itself).
-
It allows to define constants defining them in a include file, so it's possible
to produce external animations by utilities or scripts that update these includes
every animation step.
How to obtain Povray
Povray can be obtained by ftp.
The official site where you can get it, is the following:
http://www.povray.org
ftp://ftp.povray.org
There is also an electronic magazine about povray, however, it looks
abandoned, it keeps some good issues that first appeared
when the Povray 3.0 was released.
http://www.povray.org/pub/povray/ezine
There are lots of MIRRORS but none of them are official.
Index: (15-Enero-1998) ftp.povray.org
Here, we enclose a short listing of the contents of the official site.
pub
lrwxr-xr-x 1 povray vuser 15 Aug 24 11:12 HEADER -> povray/.message
drwxr-xr-x 5 povray vuser 512 Aug 24 13:13 povray
pub/povray
-rw-r--r-- 1 povray vuser 305 Jan 9 01:30 .message
lrwxr-xr-x 1 povray vuser 8 Aug 24 13:13 HEADER -> .message
dr-xr-xr-x 2 povray vuser 1536 Aug 24 13:13 Hall-Of-Fame
-r--r--r-- 1 povray vuser 3262 Aug 24 10:52 MIRRORS
dr-xr-xr-x 10 povray vuser 512 Aug 24 11:14 Official-3.0
-r--r--r-- 1 povray vuser 3262 Aug 24 10:52 README.MIRRORS
-r--r--r-- 1 povray vuser 3731 Aug 24 10:52 README.MIRRORS.HTML
dr-xr-xr-x 2 povray vuser 1024 Aug 24 13:13 Ray-Tracing-News
pub/povray/Hall-Of-Fame
-r--r--r-- 1 1017 1017 235235 May 14 1996 6x86.jpg
-r--r--r-- 1 1017 1017 393630 Sep 30 1994 6z4.jpg
-r--r--r-- 1 1017 1017 308 Sep 30 1994 6z4jpg.txt
-r--r--r-- 1 1017 1017 154256 Oct 13 1995 astplant.jpg
-r--r--r-- 1 1017 1017 2991 Oct 13 1995 astplant.txt
-r--r--r-- 1 1017 1017 110322 Sep 30 1994 ballz5.gif
-r--r--r-- 1 1017 1017 287164 Dec 8 1994 bell_jar.jpg
-r--r--r-- 1 1017 1017 57111 Oct 13 1995 bkntools.jpg
-r--r--r-- 1 1017 1017 610 Oct 13 1995 bkntools.txt
-r--r--r-- 1 1017 1017 331058 Sep 30 1994 brass.jpg
-r--r--r-- 1 1017 1017 254 Sep 30 1994 brass.txt
-r--r--r-- 1 1017 1017 284250 Sep 30 1994 bug1.gif
-r--r--r-- 1 1017 1017 279273 Sep 30 1994 camera.jpg
-r--r--r-- 1 1017 1017 367490 Oct 13 1995 crane.jpg
-r--r--r-- 1 1017 1017 2650 Oct 13 1995 crane.txt
-r--r--r-- 1 1017 1017 101473 Sep 30 1994 dragons.jpg
-r--r--r-- 1 1017 1017 295129 Sep 30 1994 frosty.gif
-r--r--r-- 1 1017 1017 777531 Sep 30 1994 frosty.tga.zip
-r--r--r-- 1 1017 1017 88350 Sep 30 1994 geodome.jpg
-r--r--r-- 1 1017 1017 2252 Sep 30 1994 geodome.txt
-r--r--r-- 1 1017 1017 11801 Sep 30 1994 geosmall.gif
-r--r--r-- 1 1017 1017 356889 Oct 13 1995 gofood1.jpg
-r--r--r-- 1 1017 1017 483 Oct 13 1995 gofood1.txt
-r--r--r-- 1 1017 1017 375781 Oct 13 1995 gogadget.jpg
-r--r--r-- 1 1017 1017 825 Oct 13 1995 gogadget.txt
-r--r--r-- 1 1017 1017 72337 Oct 13 1995 info_hwy.jpg
-r--r--r-- 1 1017 1017 1796 Oct 13 1995 info_hwy.txt
-r--r--r-- 1 1017 1017 109462 Oct 13 1995 jmwarmup.jpg
-r--r--r-- 1 1017 1017 3346 Oct 13 1995 jmwarmup.txt
-r--r--r-- 1 1017 1017 628 Sep 30 1994 julia.txt
-r--r--r-- 1 1017 1017 50762 Sep 30 1994 kettle.jpg
-r--r--r-- 1 1017 1017 295555 Sep 30 1994 kkteaset.jpg
-r--r--r-- 1 1017 1017 96 Sep 30 1994 kkteaset.txt
-r--r--r-- 1 1017 1017 151503 Sep 30 1994 lionfish.gif
-r--r--r-- 1 1017 1017 112 Sep 30 1994 mindmaz1.txt
-r--r--r-- 1 1017 1017 341101 Sep 30 1994 museum.jpg
-r--r--r-- 1 1017 1017 564 Sep 30 1994 museum.txt
-r--r--r-- 1 1017 1017 364856 Aug 19 1995 pcktwtch.gif
-r--r--r-- 1 1017 1017 580 Aug 19 1995 pcktwtch.txt
-r--r--r-- 1 1017 1017 590679 Jan 29 1996 pcktwtch.zip
-r--r--r-- 1 1017 1017 417 Sep 30 1994 pclock.txt
-r--r--r-- 1 1017 1017 213426 Sep 30 1994 plntscap.gif
-r--r--r-- 1 1017 1017 2558 Sep 30 1994 plntscap.txt
-r--r--r-- 1 1017 1017 125648 Oct 13 1995 springeq.jpg
-r--r--r-- 1 1017 1017 1129 Oct 13 1995 springeq.txt
-r--r--r-- 1 1017 1017 239594 Sep 30 1994 studying.jpg
-r--r--r-- 1 1017 1017 244179 Oct 13 1995 subrace.jpg
-r--r--r-- 1 1017 1017 2681 Oct 13 1995 subrace.txt
-r--r--r-- 1 1017 1017 191332 Sep 30 1994 sundae.gif
-r--r--r-- 1 1017 1017 162140 Sep 30 1994 woild2.gif
pub/povray/Official-3.0
-r--r--r-- 1 povray vuser 80 Jul 20 01:47 .message
drwxr-xr-x 2 povray vuser 512 Dec 16 03:53 Amiga
dr-xr-xr-x 2 povray vuser 512 Aug 24 10:31 Docs
lr-xr-xr-x 1 povray vuser 11 Aug 24 11:14 HEADER -> ../.message
dr-xr-xr-x 2 povray vuser 512 Aug 24 10:31 Linux
dr-xr-xr-x 2 povray vuser 512 Aug 24 10:31 MS-Dos
dr-xr-xr-x 2 povray vuser 512 Aug 24 10:36 Macintosh
-r--r--r-- 1 povray vuser 83 Jul 20 01:48 README
-r--r--r-- 1 povray vuser 222 Feb 6 1997 README.HTML-DOCS
dr-xr-xr-x 2 povray vuser 512 Aug 24 10:31 SunOS
dr-xr-xr-x 2 povray vuser 512 Aug 24 10:32 Unix
dr-xr-xr-x 3 povray vuser 512 Aug 24 10:32 Windows
-r--r--r-- 1 povray vuser 15055 Jul 19 1996 gamma.gif
-r--r--r-- 1 povray vuser 1776 Jul 19 1996 gamma.gif.txt
-r--r--r-- 1 povray vuser 3735 Feb 6 1997 news.3.01.txt
-r--r--r-- 1 povray vuser 18452 Feb 5 1997 povlegal.doc
-r--r--r-- 1 povray vuser 24060 Feb 1 1997 povwhere.get
-r--r--r-- 1 povray vuser 110 Aug 24 11:01 www.html
pub/povray/Official-3.0/Docs
-r--r--r-- 1 1017 1017 413 Feb 7 1997 README
-r--r--r-- 1 1017 1017 286517 Feb 7 1997 povdoc.zip
-r--r--r-- 1 1017 1017 764628 Feb 7 1997 povdocps.zip
-r--r--r-- 1 1017 1017 1601733 Feb 7 1997 povhtml.zip
-r--r--r-- 1 1017 1017 18452 Feb 7 1997 povlegal.doc
-r--r--r-- 1 1017 1017 24060 Feb 2 1997 povwhere.get
pub/povray/Official-3.0/Linux * * * * *
-r--r--r-- 1 povray vuser 786 Jul 20 01:41 00_index.txt
-r--r--r-- 1 povray vuser 442 Jul 20 01:42 README
-r--r--r-- 1 povray vuser 1506794 Feb 2 1997 povdoc.html.tgz
-r--r--r-- 1 povray vuser 908752 Aug 1 1996 povdoc.ps.gz
-r--r--r-- 1 povray vuser 1678592 Jul 18 13:02 povlinux.tgz
|
Linux users will be specially interested in two directories:
'pub/povray/Official-3.0/Linux' and 'pub/povray/Hall-Of-Fame'
In latter we will find what we can not find in the great Povray
handbook: Examples.
The Povray handbook is really good but an image is better than
thousand words. First the handbook is not illustrated in the proper way.
And second in the other directory we can find several images that are
an ideal complement for the handbook. I'm not saying that the handbook
hasn't got enough examples, on the contrary it shows many. Every
example explains a concept, and it is all right to acquire technical
knowledge. Some handbook's examples are very beautiful, but
'Hall-Of-Fame' contains a selection of the best images ever created:
a real infografic gallery. Every picture has attached a text explaining
the tools and techniques used to obtain the incredible result.
We have to be aware that many of the tools mentioned (in the handbook)
as modellers, filters, etc. as a general rule are not available
for Linux yet.
We advise to download
ftp.povray.org/pub/povray/Official-3.0/Linux
and also ftp.povray.org/pub/povray/Hall-Of-Fame
not only to enjoy the pictures, but as an important starting point for designing.
We will describe how to execute a typical installation (it should work
in every Linux version, but it has been only completely tested with Debian).
Installing
As it is usual in installations, we have to log in as super user (root).
Let us assume that we have the distribution in the directory:
"/incoming/pub/povray/Official-3.0/Linux"
Then type in the following commands
# mkdir /usr/local/sbin
# mkdir /usr/local/apli
# mkdir /usr/local/apli/povray
# cp "/incoming/pub/povray/Official-3.0/Linux"
/usr/local/povray
# cd /usr/local/povray
# tar -xzf povlinux.tgz
# tar -xzf povdoc.html.tgz
# cd /usr/local/sbin
# ln -s /usr/local/apli/povray/povray3/x-povray
x-povray
# ln -s /usr/local/apli/povray/povray3/s-povray
s-povray
|
The last sequence of commands installed everything: there is nothing to be compiled.
You only have to check if the execution permissions are set
for everybody in every directory in /usr/local/apli/povray/povray3 and
for the x-povray and s-povray executables.
In our case, we needed to change these permissions with 'chmod 755
(directory or file)'.
Setup
Povray setup process is useful to make accessible the "include" files library, to
configure the graphics card, to define input and output file formats and many
other features.
Instead of explaining questions that are very well detailed in the handbook
(Quick start), we will consider a generic configuration that will allow Linux
users to use Povray in an easy, comfortable and immediate way.
Povray can display in SVGA mode but this is a card-dependent issue. We will
consider that you have an installation with Xwindows and using as image
displayer 'xv'.
The Linux configuration in the newer versions of povray can be simplified.
It is possible to use environment variables, but it is more practical to
create a config file *.ini with all you need.
There are several *.ini sample files for general purposes. This provides
several possibilities to set up the configuration. It is possible to refer our
default configuration file in a environment file, or to use variables to locate
the default include library, etc.. It also could be a good idea to pass as
arguments a number of options, but we pass almost everything in a configuration
file (*.ini) that at the same time we will specify as an argument of the command line.
If you do not like this method, check out the handbook and you will see that there
are several options to obtain the same result, however it is not a question
for an introductory article to detail each option, but only the most useful.
There is also a shell script for generating the images corresponding to all
the examples 'allscene.sh'.
Maybe instead of generating all the scenes with a low resolution, you
would like to choose one and render it with the highest resolution.
In this case, go to the example directory and execute povray using the
following 'ini' file:
-------------------------8<------------(ini.ini)----------------
Width=640
Height=480
Quality=8
Library_Path=/usr/local/apli/povray/povray3/include
Output_to_File=on
Output_File_Type=t
Output_File_Name=out.tga
verbose=on
-------------------------8<--------------------------------------
The first two lines will determine the resolution of the final image.
The command to obtain the image is:
$ s-povray ini.ini +i source.pov
The file 'source.pov' is the name of the file that we would like to process,
obtaining an image 'out.tga' that we can display with, for example, 'xv out.tga'.
POV: a utility to work with Povray
'pov' is a shell-script for using POV-ray easily. First we will show its listing:
------------------------8<-----------------------------------
#!/bin/bash
#####################################################################
# Autor: Antonio Castro Snurmacher (1.998)
#
# pov (ver 1.0)
#
# Esta versión esta dedicada a su inclusión en la
# revista LinuxFocus (freeware)
#
# Este programa puede ser utilizado, distribuido, y modificado
# libremente pero siempre se deberá respetar la propiedad
# intelectual de su autor. Esta cabecera debe ser conservada
# tal cual en todas las modificaciones.
#
# En caso de traducción deberá conservarse el texto original de
# esta cabecera y añadirse la traducción a continuación de ella.
#
# El autor renuncia a todo tipo de beneficio económico y no se hace
# responsable de los posibles perjuicios derivados del uso del mismo.
#
# E-mail (acastro@ctv.es)
#
#####################################################################
# Author: Antonio Castro Snurmacher (1.998)
#
# pov (ver 1.0)
#
# This version has been written to be included in
# the LinuxFocus magazine (freeware)
#
# This program can be used, distributed, and modified
# freely but always has to respect the intellectual
# property of the author. This header should be kept
# untouched in every modification.
#
# In case of translation the text of this header should be kept
# and the translation will be added after it.
#
# The author renounces to any kind of economic benefit
# and he is not responsible for any damage derived from
# the use of this script.
#
# E-mail (acastro@ctv.es)
#
#####################################################################
usage(){
echo "Usage: pov (project) (size=0..6) (quality=1..11)"
echo
echo "0) 40x30 (STD/20) No backup"
echo "1) 80x60 (STD/10) No backup"
echo "2) 100x75 (STD/8) No backup"
echo "3) 200x150 (STD/4)"
echo "4) 266x200 (STD/3)"
echo "5) 320x200 *"
echo "6) 400x300 (STD/2)"
echo "7) 640x480 *"
echo "8) 800x600 * (STD)"
echo "9) 1024x768 *"
echo
echo "The projects should be located in the directory pointed by"
echo "${HOMEPOV} and will use the same name for it and for"
echo "the main source file *.pov"
echo "(STD) is the standard resolution chosen."
echo
exit 1
}
newversion(){
mv ${PREFIX}.pov.8.gz ${PREFIX}.pov.9.gz 2> /dev/null
mv ${PREFIX}.pov.7.gz ${PREFIX}.pov.8.gz 2> /dev/null
mv ${PREFIX}.pov.6.gz ${PREFIX}.pov.7.gz 2> /dev/null
mv ${PREFIX}.pov.5.gz ${PREFIX}.pov.6.gz 2> /dev/null
mv ${PREFIX}.pov.4.gz ${PREFIX}.pov.5.gz 2> /dev/null
mv ${PREFIX}.pov.3 ${PREFIX}.pov.4 2> /dev/null
mv ${PREFIX}.pov.2 ${PREFIX}.pov.3 2> /dev/null
mv ${PREFIX}.pov.1 ${PREFIX}.pov.2 2> /dev/null
cp ${PREFIX}.pov ${PREFIX}.pov.1
gzip ${PREFIX}.pov.4 2> /dev/null
}
#################################################
size(){
export SAVE="yes"
case $1 in
0) Width=40 ; Height=30; SAVE="no" ;;
1) Width=80 ; Height=60 SAVE="no" ;;
2) Width=100; Height=75 SAVE="no" ;;
3) Width=200; Height=150;;
4) Width=266; Height=200;;
5) Width=320; Height=200;;
6) Width=400 ;Height=300;;
7) Width=640 ;Height=480;;
8) Width=800 ;Height=600;;
9) Width=1024;Height=768;;
*) usage
esac
}
quality(){
case $1 in
1) ;;
2) ;;
3) ;;
4) ;;
5) ;;
6) ;;
7) ;;
8) ;;
9) ;;
10) ;;
11) ;;
*) usage
esac
export Quality=$1
}
####################### main ##############################
export HOMEPOV=${HOME}/dat/pov
export PROYECT=$1
export PREFIX=${HOMEPOV}/${PROYECT}/${PROYECT}
if [ $# != 3 ]
then usage
fi
export POVRAY=/usr/local/apli/povray/povray3
size $2
quality $3
if [ $SAVE == "yes" ]
then newversion
fi
cat <<-FIN > ${PREFIX}.ini
Width=$Width
Height=$Height
Quality=$Quality
Library_Path=${POVRAY}/include
Input_File_Name=${PREFIX}.pov
Output_to_File=on
Output_File_Type=t
Output_File_Name=${PREFIX}.tga
verbose=on
Post_Scene_Command=xv ${PREFIX}.tga
FIN
# Output_File_Type=t
## Others hight performace options ##
# Antialias_Depth=3
# Antialias=On
# Antialias_Threshold=0.1
# Jitter_Amount=0.5
# Jitter=On
# Low priority, maybe I want to do other things.
nice -20 x-povray ${PREFIX}.ini
if [ $SAVE != "yes" ]
then echo "Warning !! There is no backup of this version."
fi
------------------------8<-----------------------------------
When we are designing, we often have to test ideas many times,
and we get closer to our ideal step by step.
To simplify the execution we are going to implement a shell-script
that generates a *.ini file, executes Povray tracer and after that displays the
result. We assume that we are working in the directory $HOME/dat/pov/(project name)
and that the name of the main file is (project name.pov)
This script generate files *.ini that usually are enough for most situations. It is
oriented to a specific way of working, but if you prefer another, it is easy to
change.
This utility backups the last changes on the source files because
very often we would like to revert to a previous version; after making many changes
looking for different results, often we decide to go back to a previous design path.
As we mentioned above, the creative process looks like brush painting, we
decide step by step how to continue.
If we execute the script with the lowest resolutions, it generates no
backup copy nor new version number: low resolution is an uniteresting test.
With this kind of tests, you can just get an idea on the relative positions
of the objects. This is a personal way of working, very easy.
If your are not familiar with Povray it will be a good starting methodology.
Maybe later you would like to adapt this tool to your particular necessities.
Some of the available resolutions are the same as the standards modes
of some video resolutions. Others are fractions of the 800x600 resolution.
Type in 'pov' without arguments to ge a short help menu.
Create an appropriate directory structure to work with it within your $HOME
directory and you will see how easy is to work from the first day. We will
base our exercises in the use of this tool. However it is not necessary to
use it, it will more comfortable for you.
We will begin with a simple example to check that everything works:
------------------------8<-----------------------------------
#include "colors.inc"
#include "textures.inc"
#include "glass.inc"
// Author: Antonio Castro
// The camera will look towards the contact point
// of both spheres
camera {
location <0, 15, 35>
look_at <0, 10, 0>
}
// Source of white light
object {
light_source {
<20, 100, 50>
color White
}
}
// Sky with white clouds
object {
sphere { <0, 0, 0> 200000} // Great vault of heaven
texture {Blue_Sky scale <50000, 6000, 50000>} // We strecht the clouds
}
// Golden ball
sphere { <-10, 10, 0> 10
texture { Gold_Metal }
}
// Mirror ball
sphere { <10, 10, 0> 10
texture { Mirror }
}
// Glass ball
sphere { <0, 5, 10> 5
texture { T_Glass1 }
}
// Floor
// It is made with a great sphere that touches the center <0,0,0>
// but it could be implemented with a plane.
sphere {<0, -1000000, 0> 1000000
pigment {checker color Red color Yellow scale 2 } // Checker texture
}
------------------------8<-----------------------------------
Copy it in $HOME/dat/pov/sample1/sample1.pov
If it is necessary create first the correct directory structure.
Then use the 'pov' utility provided in this article, executing it from a
XWindows xterminal session with your user as login.
$ pov sample1 4 9
You should launch 'xv' to display it. When you plan to implement your
own scenes, we recommend to open another 'xterm' window with the text verion
of the handbook in the 'vi' for example, in read only mode to search in a
fast way the keywords of the language, consulting its syntax, and some example
of its use.
../../common/March1998/sample1.gif
|