Sommaire Index Rechercher Liens A Propos
[LinuxFocus Image]
[Barre de Navigation]
  Nouveautés   Archives

Inititation à Povray

par Antonio Castro


Introduction

Quelques caractéristiques de Povray

Obtenir Povray

Installation

Configuration

POV

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 

Seagull 1

Dans cette première image nous avons de bonnes chances de voir une mouette.

 

Seagull 2 

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 :
    1. boucle externe (utilisation de l'option Clock=n.n)
    2. boucle interne (utilisation de paramètres internes à la source)
    3. 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 :


 
 
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

 

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.

sample1 

../../common/March1998/sample1.gif 
 
 

Traduit par Joaquin Gonzales

 

© 1998 Antonio Castro
Ce site web est mantainu par Miguel A Sepulveda.

mirror server hosted at Truenetwork, Russian Federation.