Développé par | L'équipe POV |
---|---|
Première version | |
Dernière version |
3.7.0.0 ()[1] 3.7.0.10 ()[2] |
Dépôt | github.com/POV-Ray/povray |
Écrit en | C++ |
Système d'exploitation | GNU/Linux, Microsoft Windows, macOS et Unix |
Environnement | Multi-plateforme |
Formats lus | POV-Ray scene description (d) |
Formats écrits | POV-Ray scene description (d) |
Type | Lancer de rayon |
Licence | GNU Affero General Public License[3] |
Site web | www.povray.org |
POV-Ray (de l'anglais Persistence of Vision Raytracer), ou simplement POV, est un logiciel libre de lancer de rayons (technique de synthèse d'image en 3D), disponible sur une grande variété de plateformes (Windows, Mac OS, GNU/Linux, etc.). Il a été fondé à l'origine sur les sources de DKBTrace, et dans une moindre proportion sur Polyray.
POV-Ray ne dispose pas d'une interface graphique (de modeleur 3D) intégré comme la plupart des logiciels de synthèse actuels, mais utilise des scripts de description de scène, dans lesquels tous les objets, les lumières, etc. doivent être décrits.
Des modeleurs dédiés uniquement à POV-Ray existent (KPovModeler, Moray, Yet another POV-Ray modeller…), de nombreux autres exportent vers le format de fichier de POV-Ray. Son format de fichier est de l'ASCII, l'extension par défaut du fichier est « .pov ».
Cela permet d'avoir des formes de bases (sphères, boîtes, tores, etc.) sur lesquelles on peut réaliser des opérations booléennes grâce à la CSG. Cela permet également des volumes ou des surfaces basés sur des fonctions mathématiques, telles que les isosurfaces.
Exemple : function {x*x - F/y*y + z*z} dessine une sorte de puits de gravité, avec F qui représente sa force.
Il est aussi possible d'importer des objets d'autres logiciels (comme 3D Studio Max, Poser, etc.) qui seront rendus dans POV-Ray comme un assemblage de triangles, car de nombreux logiciels sont compatibles, mais il est très difficile d'exporter des objets POV-Ray vers d'autres formats.
POV-Ray permet également de faire des animations[4].
Les versions officielles, depuis les versions 3.7, sont multiprocessus. Ceci n'avait pas une grande importance puisque POV-Ray pouvait depuis longtemps découper le rendu d'une image, et donc ce rendu pouvait être réparti sur plusieurs machines, donc processeurs, avec une interface.
Depuis la version 3.7, le logiciel est sous licence AGPL3 en accord avec la définition de la Free Software Foundation[5].
Précédemment, d'un point de vue strict, POV-Ray n'était pas considéré comme un logiciel libre, au sens GNU du terme, pour des raisons historiques. En effet POV-Ray est plus ancien que le mouvement GNU, il a cependant été développé dans un esprit collaboratif propre aux logiciels Libres. Or POV-Ray étant un logiciel de très grande qualité, il a dû se doter lui-même d'une licence de distribution Libre pré-GNU afin d'en empêcher les abus. Notamment il n'est pas autorisé que du code de POV-Ray soit repris et réutilisé dans un autre logiciel qu'une variante de POV-Ray, ce qui est incompatible avec les axiomes énoncés par le GNU pour qu'un logiciel soit considéré comme libre. Cependant les sources sont accessibles, modifiables et redistribuables pour mettre à disposition une distribution modifiée de POV-Ray. On peut ainsi citer deux versions parallèles Povray-mpich et Povray-pvm.
Étant donné le grand nombre de contributions, lesquelles ont été faites assumant la licence POV-Ray, et que toutes les traces n'ont pas été conservées scrupuleusement, il a été long et difficile de basculer POV-Ray sous une autre licence. Par ailleurs, une réécriture complète de POV-Ray fut à un moment considérée pour résoudre ce problème, cette version totalement neuve ("POV-Ray 4.0") aurait été diffusée sous une licence libre, selon toute vraisemblance la licence GPL v3[6].
POV-Ray calcule en double précision, ce qui le rend beaucoup plus précis pour les calculs intermédiaires, mais aussi un peu plus lent, et inadaptable en l'état avec OpenCL, qui ne calcule qu'en simple précision pour des raisons de vitesse (une extension peut corriger cela[7].). Vulkan est trop récent pour être utilisé.