Dans cet article, on débute une série sur le traceur de rayons Povray. Le but de ce premier article est de faciliter son utilisation aux débutants Linux.
Persistence of Vision Ray-Tracer (POV-Ray) Copyright 1996 POV-Team.
Introduction.
Povray (Persistence of Vision Raytracer) est un traceur de rayons basique. Il n'est pas facile d'expliquer ce que signifie ce concept sans entrer dans certains détails, mais nous expliquerons par la suite de manière détaillée ce qu'est un traceur de rayons (dans les prochains articles). Ici, nous nous contenterons de faire l'ébauche du concept de traceur de rayons. Le tracé de rayons est une technique pour représenter des scènes imaginaires définies dans l'ordinateur au moyen de modèles, qui établissent des objets et des formes, ainsi que des angles de lumière et une caméra. La forme dont l'ordinateur essaye d'obtenir une image la plus réaliste possible consiste toujours en la meilleure image avec les moindres coûts en processus de calcul.
Lorsque c'est possible, on essaye d'imiter la nature, sinon on cherche seulement un effet ressemblant. Sans ces raccourcis, il serait impossible d'obtenir une image en un temps raisonnable. L'ordinateur devra calculer un grand nombre de trajectoires, mais il ne le fera pas de manière identique à ce que fait la nature. Pour celle-ci, les rayons sont issus de la source principale de lumière et chaque fois qu'ils rencontrent une surface, ils génèrent une source secondaire de lumière qui se réfléchit dans la rétine du spectateur ou dans la pellicule d'une caméra. On donnera maintenant un unique détail, pour anticiper sur la suite. Dans un traceur de rayons, ceux-ci circulent en sens contraire : depuis un point de la rétine ou de la pellicule vers les objets en premier pour arriver en dernier à la source de lumière. Nous laisserons l'explication détaillée de ceci, ainsi que d'autres aspects, pour l'article suivant.
La qualité du traceur de rayons Povray est excellente et n'a rien à envier aux produits commerciaux. Les produits commerciaux de dessin basés sur le tracé de rayons sont intégrés dans une série d'outils pour dessiner confortablement toutes sortes d'objets.
Dans le cas de Povray, on peut utiliser des outils de modélisation en provenance de diverses maisons d'édition indépendantes, ou des traducteurs de format, et en règle générale, une grande variété d'outils. Ce qui ne veut pas dire qu'on ne peut pas obtenir de jolis tracés, y compris parfois spectaculaires, en utilisant exclusivement Povray. Pour cela, il suffit surtout d'avoir beaucoup d'imagination.
En outre, les sources sont publiques, ce qui permet d'approfondir les techniques utilisées. Le Copyright de Povray est décrit dans l'annexe A du manuel, et il s'agit, comme Linux, d'un Freeware. Les détails doivent être consultées dans le texte original de la Licence.
Le manuel de Povray est disponible dans la version texte (idéal pour des recherches rapides), en format HTML, et en format postscript. Si vous avez l'intention d'imprimer le document en postscript, il faut préparer environ 600 pages. En effet, les possibilités de Povray sont énormes, mais il ne faut pas avoir peur. Cet article vous aidera à vous initier à Povray et dans les articles qui suivent, on traitera des concepts basiques.
Ce qui est certain, c'est que Povray nous permet de faire une incursion dans le monde de l'infographie par la grande porte, au vu de ses incroyables capacités techniques. Selon ma propre conception de l'infographie, le domaine de la technique nous permet d'obtenir, de manière approchée, des images d'un réalisme incroyable, mais la valeur d'une image n'a rien à voir avec le réalisme ni avec la technique. La technique est une aide précieuse, mais ce qui possède une vraie valeur artistique doit être préalablement conçu dans notre tête. L'idée est ce qui compte.
Souvent, j'aime à jouer avec les concepts de réalisme et de fiction. L'infographie se prête à ce jeu de mille et une façons différentes, provoquant un conflit stimulant pour le spectateur. Je conserve une petite sélection d'images créées avec Povray dans :
http://slug.ctv.es/~acastro/infograf/catalog.htm
Voici un exemple d'un concept hybride: un avion, un voilier et une mouette
Seagull 1
Dans cette première image nous avons de bonnes chances de voir une mouette.
Seagull 2
Toutefois, vu sous un autre angle, on peut dire qu'elle ressemble plus à un avion alors qu'il s'agit toujours du même objet.
L'objet a la silhouette d'une mouette. Dans la partie supérieure, elle a un cockpit transparent et les deux pilotes se voit aisément. La pigmentation est bizarre mais avec le lancé de rayons ces images peuvent démontrer un degré étonnant de réalisme.
Lorsqu'on montre ces images à un enfant de cinq ans, et qu'on lui demande son avis, il dira que c'est une photo et non un dessin. Par contre, un adulte aura plus de mal à les classer. Il dira, certes, qu'il ne s'agit pas d'un dessin, mais qu'il ne s'agit pas non plus d'une photo. Il saura peut-être que l'image a été obtenu grâce à l'ordinateur, mais il se demandera comment celui-ci a pu obtenir un résultat aussi étrange et aussi beau.
A mon avis, c'est ce type de résultat qu'il est intéressant d'obtenir dans les dessins. Des images déconcertantes, où le synthétique et l'artificiel s'harmonisent avec des effets réalistes surprenants.
J'ai passé beaucoup de temps sur Povray et je suis sûr que tout le monde éprouvera du plaisir à l'utiliser.
Quelques caractéristiques élémentaires de Povray :
- rendu partiel d'une image, possibilité de continuer le rendu complet
- options pour faire des rendus avec des résolutions distinctes, et avec des degrés de perfectionnement pour réduire le temps du processus.
- possibilité de visualiser une image durant sa création (en SVGA et Xwindows)
- possibilité d'aperçu en mosaique.
- création de logs (registres) très complets qui permettent d'analyser les coûts du CPU.
- analyse syntaxique avec un bon traitement d'erreurs
- bibliothèque de textures très bien fournie, avec d'énormes possibilités pour créer pratiquement n'importe quelle texture.
- effets de surface : rugosité, brillance, reflets, transparence,...
- figures géométriques simples : sphères, cônes, plans, cubes, prismes,..
- figures géométriques basées sur des équations mathématiques complexes,
- figures formées par des réseaux triangulaires,
- arrondissement des arêtes, par exemple pour des figures formées par des triangles,
- figures complexes formées par un agrégat d'autres figures,
- délimitation des objets complexes au moyen de figures simples pour optimiser le rendement du traceur,
- pigmentation d'une figure à partir d'une image plane,
- figures générées proportionnellement à la couleur d'un pixel à partir d'une autre image (très utile pour générer des terrains),
- figures générées par révolution (modelée "au tour"),
- textes tridimensionnels à partir de sources TIFF,
- effets atmosphériques, par exemple brouillard, effets lumineux, avec divers types de lumières,...
- options distinctes de "Anti-Aliasing" : ces effets permettent qu'une diagonale apparaisse comme plus linéaire, camouflant l'effet d'échelle au moyen d'un léger dégradé. Il existe différentes méthodes pour cela dans Povray.
- un langage complet de description de scènes,
- possibilité de générer des animations avec différentes méthodes :
- boucle externe (utilisation de l'option Clock=n.n)
- boucle interne (utilisation de paramètres internes à la source)
- données qui permettent la définition de constantes et qui peuvent être localisées dans un fichier include. Il est possible aussi de générer des animations externes au moyen d'utilitaires ou de scripts qui actualisent ces fichiers à chaque photogramme. Ce système, bien qu'utilisé dans les premières versions de Povray, est toujours utile
Où peut-on obtenir Povray :
Povray peut être obtenu grâce à ftp.
Le site officiel est le suivant :
http://www.povray.org
ftp://ftp.povray.org
Il existe une revue électronique sur Povray : bien que sa parution soit arrêtée, elle conserve quelques articles excellents qui ont été édités à la même époque que la version 3.0 de Povray .
http://www.povray.org/pub/povray/ezine
Il existe de nombreux sites miroirs qui ont un caractère officiel :
Contenu : (15 janvier 1998) ftp.povray.org
Pour se faire une idée du contenu du site officiel, voici un extrait :
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
|
Pour Linux, il y a deux répertoires qui nous intéressent particulièrement : 'pub/povray/Official-3.0/Linux et 'pub/povray/Hall-Of-Fame'. Le dernier n'est pas indispensable, mais on aura ici ce qu'on ne peut obtenir dans le fameux manuel de Povray.
Le manuel est excellent, mais il a toujours été dit qu'une image vaut mieux que mille paroles. Ce manuel n'est pas illustrée de manière adéquate. On peut donc trouver ici une grande quantité d'images qui sont le complément idéal du manuel. Cela ne veut pas dire que le manuel est complètement dénué d'exemples, au contraire il y en a beaucoup. Chaque exemple illustre un concept, ce qui est excellent pour l'acquisition de la technique. Quelques exemples sont superbes, mais dans "Hall-Of-Fame", nous trouvons une sélection d'images très bonnes : un authentique musée d'art infographique. Chaque image est accompagnée d'un texte explicatif, où on explique les outils et les techniques qui permettent d'obtenir ces résultats incroyables.
Il faut cependant dire que de nombreux outils qui sont mentionnés fréquemment comme modélisateurs, convertisseurs,... ne sont pas encore disponibles pour Linux.
On peut néanmoins recommander
ftp.povray.org/pub/povray/Official-3.0/Linux
et aussi ftp.povray.org/pub/povray/Hall-Of-Fame
non seulement pour le plaisir visuel, mais aussi comme une importante source d'inspiration créative.
Nous allons décrire une installation type, qui devrait fonctionner sur n'importe quelle version de Linux, bien qu'elle n'ait été essayé complètement que sur la Debian.
Installation
Comme pour toute installation, nous nous loguons dans le système en tant que super utilisateur (root).
Nous supposons que nous possédons tous les fichiers nécessaires dans notre système dans le répertoire:
"/incoming/pub/povray/Official-3.0/Linux"
Puis nous taperons au clavier les différentes commandes :
# 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
|
Cela devrait suffire, puisqu'il n'y a rien à compiler.
Il faut simplement vérifier que tout le monde possède le droit d'exécuter chacun des fichiers contenus dans le répertoire /usr/local/apli/povray/povray3 et pour les exécutables x-povray et s-povray.
Dans notre cas, nous devons dans l'installation modifier quelques permissions au moyen de la commande 'chmod 755 (répertoire ou fichier).
Configuration
La configuration de Povray doit servir à ce que la bibliothèque des fichiers 'includes' soit accessible, que la carte graphique soit reconnue, ainsi que pour établir les formats de fichiers en sortie et quelques autres problèmes.
P>Je crois, qu'au lieu d'expliquer ce qui est déjà très bien expliqué dans le manuel (Quick Start), il est préférable de prendre une configuration assez générale, qui permette à la plupart des utilisateurs de Linux d'utiliser Povray facilement, de manière confortable et immédiate.
Povray peut être utilisé en mode SVGA, mais cela nous obligerait à établir des configurations pour chaque carte graphique. Nous allons supposer que vous avez dans votre système Xwindows installé et que vous utilisez comme visualisateur d'images 'xv'.
La configuration pour pouvoir travailler sur Linux avec les nouvelles versions de 'Povray' peut être simplifiée au maximum. On peut utiliser des variables mais il est plus pratique de générer un fichier de configuration *.ini qui contienne tout le nécessaire.
Il existe des fichiers *.ini fournies à titre d'exemples pour des cas généraux. Cela donne lieu à diverses possibilités pour établir une configuration. On peut référencer dans une variable le fichier de configuration par défaut, où on peut utiliser des variables pour localiser la bibliothèque de "includes" par défaut, etc.. On peut aussi passer comme arguments un grand nombre d'options : nous nous contenterons d'inclure tout cela dans un fichier de configuration *.ini, qu'on passera comme argument dans la ligne de commande. Si vous n'êtes pas convaincu par ce système, consultez le manuel et vous vous rendrez compte qu'il existe diverses possibilités pour atteindre le même résultat, mais il n'est pas question dans cet article de décrire toutes ces possibilités, mais d'indiquer la plus utile possible.
Il existe aussi un shell utile pour générer toutes les images correspondant aux exemples de "allscene.h".
Vous souhaiterez probablement, au lieu de générer la totalité des scènes avec une résolution pauvre, en choisir une et la rendre avec une meilleure résolution.
Dans ce cas, allez sur le répertoire de l'exemple et lancez povray en utilisant le fichier ini suivant :
-------------------------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<--------------------------------------
Les deux premières lignes déterminent la résolution finale de l'image. La ligne de commande pour obtenir l'image est la suivante :
La ligne de commande pour obtenir l'image est la suivante :
$ s-povray ini.ini +i source.pov
Le fichier 'fuente.pov' est le nom du fichier qu'on souhaite travailler. On obtiendra une image 'out.tga' qu'on pourra ensuite visualiser avec xv out.tga.
POV : Un utilitaire pour travailler avec Povray
'pov' est un script pour travailler confortablement. En premier lieu, nous montrerons son 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)
#
#####################################################################
# Auteur : Antonio Castro Snurmacher (1.998) (1.998)
#
# pov (ver 1.0)
#
# Cette version est destinée à être incluse dans la
# revue Linuxfocus (freeware)
#
# Ce programme peut être utilisé, distribué et modifié librement
# freely but always has to respect the intellectual
# mais on devra respecter la propriété intellectuelle de l'auteur.
# Cet entête doit être conservée tel quel dans toutes les
# modifications.
#
# En cas de traduction, on devra conserver le texte original de
# l'entête et ajouter la traduction à la suite.
#
# L'auteur renonce à tout type de bénéfice économique et
# n'est pas responsable des préjudices éventuels dus à son
# utilisation.
#
# 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 "Les projets doivent se trouver dans le répertoire"
echo "${HOMEPOV} et on utilisera le même nom pour le répertoire"
echo "et pour le fichier source principal *.pov"
echo "(STD) est la resolution qui fait référence standard."
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
# on baisse la priorité du process si on veut faire autre chose.
nice -20 x-povray ${PREFIX}.ini
if [ $SAVE != "yes" ]
then echo " Attention !! Cette version ne génère pas de sauvegarde!"
fi
------------------------8<-----------------------------------
Lorsqu'on dessine, il faut recommencer à plusieurs reprises, pour se rapprocher petit à petit du résultat souhaité.
*.ini, lance le traceur Povray et visualise ensuite le résultat. On suppose qu'on va travailler dans le répertoire du type $HOME/dat/pov/(nom-projet) et que le nom du fichier principal est (nom-projet).pov
Ce script génère des fichiers *.ini qui sont pratiquement suffisants dans la grande majorité des cas. En outre, il est orienté pour travailler de manière concrète, mais si vous n'aimez pas cette façon de travailler, il est facile de la modifier.
Cet utilitaire établit en plus un système qui conserve les dernières modifications dans des fichiers sources, car il arrive souvent qu'on souhaite, après divers changements, revenir à une version antérieure pour s'orienter autrement. Comme il a déjà été dit, le process créatif, c'est comme si on donnait des coups de pinceau au fur et à mesure, et qu'on décidait petit à petit comment poursuivre. Si on lance le programme avec les résolutions les plus basses, il ne se produit aucun déplacement de versions ni de backup : on considère que c'est un essai sans intérêt. Ce type d'essai s'effectue pour obtenir rapidement une idée qui permette de déterminer si les positions aux traits des objets conviennent bien.
Tout ceci peut être modifié, mais en ce qui me concerne, il m'est utile de travailler de cette manière. Pour obtenir une petite aide, tapez 'pov' sans arguments.
Quelques résolutions disponibles coïncident avec des modes standard de quelques résolutions vidéos. D'autres sont des fractions de la résolution 800x600. Si vous n'avez pas l'habitude de travailler avec Povray, cela vous servira de méthodologie initiale de travail. Plus tard, il est probable que vous souhaitiez adapter cet outil à vos besoins particuliers.
Il vous faut créer les répertoires adéquats pour travailler dans votre répertoire $HOME et vous verrez qu'il est très simple de faire des choses dès le premier jour. Nous baserons les exercices sur cet outil. Bien qu'il ne soit pas indispensable de l'utiliser, il rendra votre travail plus confortable.
Nous commencerons avec un exemple simple pour essayer toutes les fonctions :
------------------------8<-----------------------------------
#include "colors.inc"
#include "textures.inc"
#include "glass.inc"
// Auteur : Antonio Castro
// La caméra pointe sur divers points
// de plusieurs sphères
camera {
location <0, 15, 35>
look_at <0, 10, 0>
}
// source de lumière blanche
object {
light_source {
<20, 100, 50>
color White
}
}
// Ciel avec des nuages blancs
object {
sphere { <0, 0, 0> 200000} // Great vault of heaven
texture {Blue_Sky scale <50000, 6000, 50000>} // We strecht the clouds
}
// Boule en or
sphere { <-10, 10, 0> 10
texture { Gold_Metal }
}
// Boule de miroir
sphere { <10, 10, 0> 10
texture { Mirror }
}
// Boule de cristal
sphere { <0, 5, 10> 5
texture { T_Glass1 }
}
// sol
// Il est réalisé au moyen d'une grande sphère qui touche le centre
// mais on aurait pu le réaliser sur une surface plane.
sphere {<0, -1000000, 0> 1000000
pigment {checker color Red color Yellow scale 2 } // Checker texture
}
------------------------8<-----------------------------------
Copier ceci dans $HOME/dat/pov/sample1/sample1.pov.
Si c'est nécessaire, créer en premier une structure correcte de répertoires. Puis vous utiliserez l'outil 'pov' qu'on fournit dans cet article, en le lançant depuis une session xterminal de Xwindows avec son utilitaire.
$ pov sample1 4 9
Vous devrez utiliser en même temps 'xv' pour le visualiser, ce qui rendra votre travail très confortable. Lorsque vous souhaiterez réaliser vos propres scènes, nous vous recommandons d'ouvrir une autre fenêtre 'xterm' avec la version texte du manuel éditée par exemple avec vi en mode lecture seule pour chercher rapidement les mots-clés du langage et ainsi vous pourrez consulter rapidement sa syntaxe, avec un exemple d'utilisation.
../../common/March1998/sample1.gif
|