Beginnen met Povray

ArticleCategory: [Kies een categorie voor je artikel]

Graphics

AuthorImage:[Hier komt een kleine foto van jou]

[Foto van de Auteur]

TranslationInfo:[Info over schrijver(s) en vertaler(s)]

original in en Antonio Castro

en to nl Egon Willighagen

AboutTheAuthor:[een korte biografie over de auteur]

Ik werk in de Computerwetenschappen en ik ben er ook als hobby mee bezig. Ik geef het toe! Ik ben een van de weinigen die Windows echt haten. MSDOS heeft tenminste nog enig nut als speelgoed dat doet alsof het iets waard is en je computer vult met ontelbare bestanden waarvan je nooit zult weten waarvoor ze nu echt dienen.

Abstract:[een kleine samenvatting/beschrijving van het artikel]

Dit artikel begint een serie over de Povray raytracer. Het doel van dit eerste artikel is om nieuwe linuxgebruikers te leren omgaan met Povray.

ArticleIllustration:[Titel-illustratie van het Artikel]

[Illustratie]

ArticleBody:[Het eigenlijke artikel: zet hier teks en HTML codes]

Inleiding

Pov-Ray (Persistence of Vision Raytracer, persistence= volharding) is een raytracer. Het is moeilijk uit te leggen wat dit betekent zonder in details te treden. Daarom beginnen we met het uitleggen van wat een raytracer is. Op dit moment volstaat het de concepten van raytracen te schetsen. Het is een techniek om virtuele taferelen weer te geven die als modellen in de computer bewaard worden. Deze modellen beschrijven de plaats, grootte, vorm van voorwerpen, maar ook de plaatsing, lichtsterkte en richting van lampen en de positie van de camera van waaruit de 'foto' wordt gemaakt. De computer probeert de 'foto' zo realistisch mogelijk weer te geven waarbij de computer zo min mogelijk belast moet worden.

Als het mogelijk is probeert Povray de natuur te kopiëren, maar soms moet Povray voldoen met het nadoen of simuleren van het natuurlijke effect. Zonder zulke aanpassingen is het bijna onmogelijk om binnen een redelijke tijd het tafereel er "foto-echt" te laten uitzien. Het raytracing algoritme maakt de foto door een grote hoeveelheid lichtstralen (=rays) te volgen (=tracen). Maar deze lichtstralen zijn anders dan echte lichtstralen: in de natuur zenden lichtbronnen de stralen uit; ze botsen met objecten en worden dan verstrooid. Bij het verstrooien ontstaan nieuwe lichtstralen die uiteindelijk uitkomen bij de camera die deze registreert. Een raytracelichtstraal echter, werkt andersom: ze beweegt van de camera (=de kijker) via de objecten naar de lichtbronnen. In het volgende artikel leggen we uit waarom deze methode wordt gebruikt.

De kwaliteit van de foto's die Povray maakt is uitstekend en is vergelijkbaar met die van veel commerciële raytracers. Commerciële design producten hebben vaak ook nog geïntegreerde tools voor het ontwerpen van de objecten in het tafereel. In het geval van Povray is het mogelijk om modelers van onafhankelijke bedrijven en invoerfilters te gebruiken. Er zijn veel verschillende van zulke tools beschikbaar. Het is echter ook heel goed mogelijk om mooie of zelfs fantastische ontwerpen te maken met Povray op zichzelf. Je hebt alleen verbeelding nodig.

Een ander belangrijk punt is dat de broncode van Povray publiek is. Hierdoor is het mogelijk om de gebruikte technieken te bekijken. Het copyright van het programma is beschreven in de appendix van de handleiding. Net zoals Linux is Povray freeware. De details zijn te vinden in de originele licentie.

De Povray handleiding is in verschillende formaten beschikbaar (tekst, HTML en PostScript). De handleiding telt ongeveer 600 pagina's en is daarmee niet eenvoudig uit te printen. Dit komt doordat Povray heel veel mogelijkheden biedt. Laat dit u echter niet ontmoedigen, want met de basisconcepten die wij u in deze serie laten zien, kunt u al veel bereiken.

Povray laat ons binnentreden in de wereld van de computer-grafiek (infografie), dankzij de uitgebreide technische mogelijkheden. Ons concept van infografie is gebaseerd op het besef dat techniek op zich ons wel plaatjes kan geven met een hoog realiteitsgehalte, maar dat artistieke waarde niet gelijk is aan die realiteit noch aan de gebruikte technieken. Techniek is een waardevol middel, maar alles met een echte artistieke waarde moet eerst door de kijker bevat worden. Het idee is het belangrijkste doel van elke afbeelding.

Vaak speel ik met de concepten van werkelijkheid en fantasie. Infografie laat ons spelen met het spel van duizend-en-één figuren die interessante tegenstrijdigheden oproepen bij de kijker. Ik heb een kleine galerij van plaatjes met Povray gemaakt:

http://slug.ctv.es/~acastro/infograf/catalog.htm

Hieronder staat een voorbeeld van zo'n hybride ontwerp: een vliegtuig, een zeilboot en een zeemeeuw.

Zeemeeuw 1 
Zeemeeuw 1

In dit eerste plaatje zien we vooral de zeemeeuw.

Zeemeeuw 2
Zeemeeuw 2

Het tweede perspectief echter, benadrukt veel meer de overeenkomsten van hetzelfde voorwerp met een vliegtuig.

Het object heeft het silhouet van een zeemeeuw. Aan de bovenkant is de transparante cockpit te zien waarin de piloten duidelijk zichtbaar zijn. Het kleurenspel is wat vreemd hier, maar met raytracing kunnen zulke plaatjes een hoge mate van realiteit bereiken.

Als u een vijfjarig kind zou vragen wat het was, zou hij zeer waarschijnlijk zeggen dat het een foto is, en niet een tekening. Laat hetzelfde plaatje zien aan een volwassene, dan zou deze wat moeilijkheden hebben met de beslissing: hij zou zeggen dat het een tekening noch een foto was. Misschien zou hij weten dat het gemaakt was met een computer, maar hoe kan een machine nu zo'n raar maar prachtig tafereel creëren?

Dit zijn de effecten die ik zoek in mijn ontwerpen. Tegenstrijdige plaatjes waar synthetische en namaak voorwerpen in harmonie zijn samengevoegd met enkele realistische eigenschappen. Hiervoor heb je ongetwijfeld fantasie nodig en een goede kennis van de technieken.

Om zeer realistische foto's te maken, aan de andere kant, is een zeer diepgaande kennis nodig van de technieken, maar misschien kunnen de resultaten niet altijd kunst genoemd worden.

Ik heb zeer veel goede ervaringen met Povray en weet zeker dat iedereen die ermee leert omgaan hetzelfde plezier zal beleven.

Enkele van de belangrijkste mogelijkheden van Povray

Waar kan ik Povray krijgen?

Povray kan via FTP gedownload worden. De officiële site is:

http://www.povray.org/ 
ftp://ftp.povray.org/ 
 

Er is ook een elektronisch tijdschrift over Povray, hoewel dat niet meer bijgehouden lijkt te worden. Enkele goede nummers zijn verschenen na het vrijkomen van Povray 3.0. Het adres van dit e-zine:

http://www.povray.org/povzine

Er zijn veel mirror sites te vinden, maar geen enkele hiervan is officieel:

FTP
sunsite.wits.ac.za:/pub/mirrors/ftp.povray.org
gd.tuwien.ac.at:/graphics/raytracing/povray
ftp.cdrom.com:/pub/povray
wuarchive.wustl.edu:/graphics/graphics/mirrors/ftp.povray.org
ftp.shu.ac.uk:/pub/computing/packages/raytrace/ftp.povray.org
sunsite.doc.ic.ac.uk:/Mirrors/ftp.povray.org
www.hensa.ac.uk:/ftp/mirrors/povray
ftp.etsimo.uniovi.es:/pub/raytrace
ftp.fh-rosenheim.de:/pub/mirror/ftp.povray.org
ftp.tu-clausthal.de:/pub/mirror/povray
kermit.stud.fh-heilbronn.de:/mirrors/povray
ftp.uni-erlangen.de:/pub/other/povray
stef.u-picardie.fr:/pub2/ftp.povray.org
ftp.ncu.edu.tw:/Packages/ray-tracing
ftp.vu.union.edu:/pub/povray
sunsite.icm.edu.pl:/pub/povray/
uiarchive.cso.uiuc.edu:/pub/graphics/povray/
ftp.flashnet.it:/pub/ftp.povray.org/
ftp.univ-lille1.fr:/pub/povray
ring.asahi-net.or.jp/pub/misc/povray/

HTTP
www.etsimo.uniovi.es/ftp/pub/raytrace 
stef.u-picardie.fr/ftp/pub2/ftp.povray.org
www.vu.union.edu/~ftp/pub/povray
sunsite.icm.edu.pl/pub/povray
ftp.ncu.edu.tw/Packages/ray-tracing/
serviceftp.flashnet.it/mirrors.htm
kermit.stud.fh-heilbronn.de/povray
ftp.uni-erlangen.de/pub/other/povray/
http://gd.tuwien.ac.at/graphics/raytracing/povray/
ftp.tu-clausthal.de/pub/mirror/povray

 

Index: (15-Enero-1998) ftp.povray.org

Hieronder staat de inhoudsopgave van de officiele 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

Voor Linuxgebruikers zijn vooral de mappen pub/povray/Official-3.0/Linux en pub/povray/Hall-Of-Fame interessant. In de tweede map staat namelijk wat niet in de uitgebreide handleiding staat: voorbeelden.

De Povray handleiding is uitstekend, maar een plaatje zegt meer dan duizend woorden. Ten eerste is de handleiding niet goed geïllustreerd. En ten tweede staan in de tweede directory verschillende plaatjes die een uitstekende aanvulling op het handboek zouden zijn. Ik wil niet zeggen dat het handboek niet genoeg voorbeelden heeft, integendeel, het heeft er vé&eacut;l. Elk ervan legt een concept uit en het is goed om je in technische zaken te verdiepen. Sommige voorbeelden zijn ook erg mooi, maar de 'Hall-Of-Fame' bevat een selectie van de mooiste plaatjes ooit gemaakt: een echt infografische galerij. Elk plaatje heeft een tekst die uitleg geeft over de gebuikte tools en technieken.

We zijn ons er hierbij van bewust dat veel van deze tools zoals de modellers en filters, niet beschikbaar zijn.

We raden u de Linuxversie van Povray (ftp.povray.org/pub/povray/Official-3.0/Linux) en de Hall Of Fame (ftp.povray.org/pub/povray/Hall-Of-Fame) aan.

Installatie

We gaan nu uitleggen hoe de installatie uitgevoerd kan worden. Het zou op elke Linux-versie moeten werken, maar is alleen uitvoerig getest op Debian.

Zoals gebruikelijk bij installaties loggen we in als super user (root). Laten we ervan uitgaan dat de Povray distributie in de directory /incoming/pub/povray/Official3.0/Linux staat. We typen dan de volgende commando's:

    # 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

De laatste opdrachten installeren alles: er hoeft niets gecompileerd te worden. Er moet wel nog gecontroleerd worden of alle directories en programma's (x-povray en s-povray) voor iedereen uitvoerbaar zijn. In ons geval moeten we deze nog goed zetten, en doen we dat met het commando 'chmod 755 (directory of bestand)'.

Setup

De taak van de Povray setup is om de 'include' bestandsbibliotheken toegankelijk te maken en de videokaart goed in te stellen. Veel andere instellingen kunnen veranderd worden, zoals de invoer- en uitvoerformaten.

In plaats van vragen te beantwoorden die zeer uitgebreid staan uitgelegd in de Quick Start van de handleiding, gaan we uit van een algemene configuratie die Linux-gebruikers eenvoudig kunnen gebruiken.

Povray kan taferelen weergeven in SVGA-modus maar dit is afhankelijk van de videokaart. We gaan er van uit dat u een Linux-versie heeft met Xwindows en 'xv' als programma gebruikt om plaatjes te laten zien.

De configuratie kan in nieuwere versies van Povray eenvoudiger. Het is mogelijk om omgevingsvariabelen te gebruiken, maar het is makkelijker om een configuratiebestand *.ini te maken met daarin alles wat nodig is.

Er zijn verschillende *.ini bestanden als voorbeeld gegeven voor algemene doeleinden. Deze voorbeelden geven aan hoe de configuratie opgezet kan worden. Het is mogelijk een verwijzing te maken naar ons originele configuratiebestand in een omgevingsbestand of variabelen te gebruiken om de lokatie te zetten. Het is misschien ook een goed idee om opties als argumenten mee te geven, maar wij hebben de voorkeur om alles in een configuratiebestand te zetten en deze via een argument mee te geven. Als deze methode niet bevalt, kunt u in het handboek andere methoden vinden die hetzelfde resultaat hebben. In dit introducerende artikel geven wij alleen de meest bruikbare methode.

Er is ook een shellscript beschikbaar dat de plaatjes maakt die als voorbeeld gegeven zijn: allscene.sh.

U kunt deze plaatjes dan ook in een hoge resolutie renderen. In dat geval kan Povray met het volgende configuratiebestand gestart worden:

-------------------------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<--------------------------------------

De eerste twee regels in dit bestand bepalen de resolutie van het plaatje dat gemaakt wordt. Het volledige commando om het plaatje te renderen is dan:

$ s-povray ini.ini +i source.pov 

Het bestand 'source.pov' is het bestand dat we willen verwerken, zodat we het plaatje met de bestandsnaam 'out.tga' krijgen. We kunnen dit plaatje bekijken met bijvoorbeeld xv : 'xv out.tga'.

POV: een hulpmiddel bij het werken met Povray

Het programma 'pov' is een shellscript dat het gebruiken van Povray makkelijker maakt. Hieronder staat de broncode:

------------------------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<-----------------------------------

Als we aan het ontwerpen zijn, is het handig om regelmatig ideeën te testen, waardoor we stap voor stap dichter bij ons doel komen.

Om het starten eenvoudiger te maken gaan we een shellscript schrijven dat configuratiebestanden maakt, daarna Povray start en tenslotte het resultaat laat zien. We gaan er van uit dat we in de directory $HOME/dat/pov/(projectnaam) werken en dat de naam van het hoofdbestand (projectnaam.pov) is.

Het script maakt een configuratiebestand dat voor de meeste situaties voldoet. Het is ontworpen voor een specifieke manier van werken, maar het is eenvoudig aan andere wensen aan te passen.

Het programma maakt een back-up van de laatste veranderingen in de broncode van het hoofdbestand, omdat we vaak terugwillen naar de vorige versie. Zo kunnen veel kleine veranderingen uitgeprobeerd worden, waarbij we altijd weer terug kunnen naar een eerdere ingeslagen weg in het ontwerp. Zoals als eerder gezegd is, is het een creatief proces dat op schilderen lijkt: bij elke stap bepalen we hoe we verder willen.

Als het script echter in lage resolutie wordt gebruikt, genereert het geen back-up en geen nieuwer versienummer. De lage resolutie is alleen voor oninteressante, korte testen. Met deze testen kunnen we snel een idee krijgen van de posities van de objecten tegenover elkaar. Dit is een manier van werken die mij erg ligt, en die ook erg goed werkt als je geen ervaring hebt met Povray. Later kunt u het script aanpassen aan persoonlijk eisen.

Sommige resoluties zijn gelijk aan die van videokaarten. Andere zijn fracties van de 800x600 resolutie. Gebruik het commando ´pov´ zonder argumenten om een kort helpmenu te krijgen.

Maak een handige directorystructuur om in te werken in jouw $HOME. Dit maakt het werken met Povray en pov van in het begin een stuk makkelijker. In deze serie zullen de oefeningen gebaseerd zijn op het pov script. Hoewel het niet noodzakelijk is om het te gebruiken, zal het wel een stuk comfortabeler zijn.

We beginnen met een eenvoudig voorbeeld om te testen of alles goed werkt.

------------------------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<-----------------------------------

Kopieer dit bestand naar $HOME/dat/pov/sample1/sample1.pov. Maak eventueel eerst deze directorystructuur aan. Het pov script moet gebruikt worden vanuit Xwindows met een terminal, waarbij uw eigen login gebruikt moet worden.

$ pov sample1 4 9 

Het script zou dan ´xv´ moeten starten en het resultaat moeten laten zien. Als u van plan bent zelf landschappen te maken, raden wij u aan om het Povray handboek als read-only tekstbestand te openen met bijvoorbeeld ´vi´. Het is dan eenvoudig om snel de Povray commando´s met hun syntax op te zoeken en gegeven voorbeelden te bekijken.

sample1 

 


© POV team

mirror server hosted at Truenetwork, Russian Federation.