Articulo de referencia

Punto de vista-Rayo

{{Cite web |url=http://www.povray.org/documentation/view/3.6.1/10/ |title=POV-Ray: Documentation: 1.1.5.3 A Historic 'Version History' |website=povray.org |access-date=2018-12-1...

El trazador de rayos Persistence of Vision , comúnmente conocido como POV-Ray , es un programa de trazado de rayos multiplataforma que genera imágenes a partir de una descripción de escena en formato de texto. Originalmente se basó en DKBTrace, escrito por David Kirk Buck y Aaron A. Collins para ordenadores Amiga . POV-Ray es software libre y de código abierto , y su código fuente está disponible bajo la licencia AGPL-3.0 o posterior .

Historia

Un jarrón sobre un pedestal, renderizado con DKBTrace 2.12.

En algún momento de la década de 1980, David Kirk Buck descargó el código fuente de un trazador de rayos Unix a su Amiga . Experimentó con él durante un tiempo y finalmente decidió escribir su propio trazador de rayos, al que llamó DKBTrace por sus iniciales. Lo publicó en el sistema de tablón de anuncios (BBS) "You Can Call Me Ray" en Chicago, pensando que a otros les podría interesar. En 1987, Aaron A. Collins descargó DKBTrace y comenzó a trabajar en una versión para x86 . Él y David Buck colaboraron para añadir varias funciones más. POV también tenía/tiene similitudes con (y toma prestado de) Rayshade, otro trazador de rayos de la era de los BBS, incluyendo el libro de Rayshade .

Cuando el programa resultó ser más popular de lo previsto, no pudieron satisfacer la demanda de más funciones. Por lo tanto, en julio de 1991, David cedió el proyecto a un equipo de programadores que trabajaban en el foro "GraphDev" de CompuServe . Al mismo tiempo, David consideró inapropiado usar sus iniciales en un programa que ya no mantenía. Inicialmente se usó el nombre "STAR-Light" (Software Taskforce on Animation and Rendering), pero finalmente se cambió a "PV-Ray" y, por último, a "POV-Ray" (Persistence of Vision Ray Tracer), [ 2 ] un nombre inspirado en la pintura de Dalí , La persistencia de la memoria . [ 6 ] [ 7 ]

Las características de la aplicación y un resumen de su historia se analizan en una entrevista de febrero de 2008 con David Kirk Buck y Chris Cason en el episodio 24 de FLOSS Weekly . [ 7 ]

Características

Escena de vidrio renderizada por POV-Ray en 2006 que demuestra radiosidad , mapeo de fotones , desenfoque focal y otras capacidades fotorrealistas (imagen creada por Gilles Tran ).

POV-Ray ha madurado sustancialmente desde su creación. Las versiones recientes del software incluyen las siguientes características:

Versión actual

La versión oficial actual de POV-Ray es la 3.7. Esta versión introduce:

Algunas de las principales características introducidas en la versión anterior (3.6) son:

En julio de 2006, Intel Corporation comenzó a utilizar la versión beta de la 3.7 para demostrar su nuevo procesador Conroe de doble núcleo debido a la eficiencia de la implementación SMP (multiprocesamiento simétrico).

Primitivos

Representación del diagrama de Venn de cuatro esferas creado con geometría sólida constructiva (CSG). La fuente se encuentra en la página de descripción de la imagen.
Algunos dados de colores renderizados en POV-Ray. Se muestran CSG , refracción y desenfoque focal .

POV-Ray, además de las formas geométricas 3D estándar como toros , esferas y campos de altura , admite primitivas definidas matemáticamente , como la isosuperficie (una aproximación finita de una función arbitraria), la primitiva polinómica (un objeto infinito definido por un polinomio de orden 15 o inferior ), el fractal de Julia (una sección tridimensional de un fractal de cuatro dimensiones ), el elipsoide supercuadrático (un intermedio entre una esfera y un cubo) y la primitiva paramétrica (que utiliza ecuaciones que representan su superficie, en lugar de su interior).

POV-Ray representa internamente los objetos mediante sus definiciones matemáticas; todos los objetos primitivos de POV-Ray pueden describirse mediante funciones matemáticas . Esto difiere de muchos programas informáticos que incluyen modelos 3D, los cuales suelen utilizar mallas triangulares para componer todos los objetos de una escena.

Este hecho proporciona a POV-Ray varias ventajas y desventajas sobre otros sistemas de renderizado y modelado; las primitivas de POV-Ray son más precisas que sus contrapartes poligonales: los objetos que se pueden describir en términos de esferas, superficies planas, cilindros, toros, etc., son perfectamente suaves y matemáticamente precisos en los renderizados de POV-Ray, mientras que los artefactos poligonales pueden ser visibles en el software de modelado basado en mallas. Las primitivas de POV-Ray también son más simples de definir que la mayoría de sus contrapartes poligonales, por ejemplo, en POV-Ray, una esfera se describe simplemente por su centro y radio; en un entorno basado en mallas, una esfera debe describirse mediante una multitud de pequeños polígonos conectados (generalmente cuadriláteros o triángulos ).

Por otro lado, el modelado primitivo mediante scripts no siempre es un método práctico para crear ciertos objetos, como personajes realistas o artefactos complejos fabricados por el hombre, como automóviles. Estos objetos se pueden crear primero en aplicaciones de modelado basadas en mallas, como Wings 3D y Blender , y luego convertirlos al formato de malla propio de POV-Ray.

Ejemplos del lenguaje de descripción de escenas

A continuación se muestra un ejemplo del lenguaje de descripción de escenas que utiliza POV-Ray para describir una escena a renderizar. Demuestra el uso de un color de fondo, una cámara, luces, una forma de caja simple con una normal de superficie y un acabado, y los efectos de transformación de la rotación.

Salida de imagen POV-Ray basada en el script
#versión 3.6 ; // Incluye un archivo separado que define una serie de colores comunes #include "colors.inc" global_settings { assume_gamma 1.0 }// Establece un color de fondo para la imagen (gris oscuro) background { color rgb < 0.25 , 0.25 , 0.25 > }// Coloca una cámara // dirección: Establece, entre otras cosas, el campo de visión de la cámara // derecha: Establece la relación de aspecto de la imagen // mirar_a: Indica a la cámara hacia dónde mirar cámara { ubicación < 0.0 , 0.5 , - 4.0 > dirección 1.5 * z derecha x * ancho_imagen / alto_imagen mirar_a < 0.0 , 0.0 , 0.0 > }// Coloca una fuente de luz // color: Establece el color de la fuente de luz (blanco) // translate: Mueve la fuente de luz a la ubicación deseada light_source { < 0 , 0 , 0 > color rgb < 1 , 1 , 1 > translate < - 5 , 5 , - 5 > } // Coloca otra fuente de luz // color: Establece el color de la fuente de luz (gris oscuro) // translate: Mueve la fuente de luz a la ubicación deseada light_source { < 0 , 0 , 0 > color rgb < 0.25 , 0.25 , 0.25 > translate < 6 , - 6 , - 6 > }// Establece una caja // pigmento: Establece un color para la caja ("Rojo" como se define en "colors.inc") // acabado: Establece cómo la superficie de la caja refleja la luz // normal: Establece una rugosidad para la caja usando el modelo incorporado "ágata" // rotar: Rota la caja box { < - 0.5 , - 0.5 , - 0.5 >, < 0.5 , 0.5 , 0.5 > texture { pigmento { color Rojo } acabado { especular 0.6 } normal { ágata 0.25 escala 1 / 2 } } rotar < 45 , 46 , 47 > }

El siguiente fragmento de código muestra el uso de la declaración, asignación y comparación de variables, así como la estructura del bucle while:

Salida de imagen POV-Ray basada en el script
#declarar el_ángulo = 0 ;#while(the_angle<360)box{<-0.5,-0.5,-0.5><0.5,0.5,0.5>texture{pigment{colorRed}finish{specular0.6}normal{agate0.25scale1/2}}rotatethe_angle}#declarethe_angle=the_angle+45;#end

Modeling

The POV-Ray program itself does not include a modeling feature; it is essentially a pure renderer with a sophisticated model description language. To accompany this feature set, third parties have developed a large variety of modeling software, some specialized for POV-Ray, others supporting import and export of its data structures, including the free and open-source 3D creation suite Blender.[11]

A number of additional POV-Ray compatible modelers are linked from Povray.org: Modelling Programs.

In 2007, POV-Ray acquired the rights to Moray,[12] an interactive 3-D modeling program long used with POV-Ray. However, as of December 2016, Moray development is stalled.[13]

Software

Development and maintenance

Official modifications to the POV-Ray source tree are done and/or approved by the POV-Team. Most patch submission and/or bug reporting is done in the POV-Ray newsgroups on the news.povray.orgnews server (with a Web interfacealso available). Since POV-Ray's source is available there are unofficial forks and patched versions of POV-Ray available from third parties; however, these are not officially supported by the POV-Team.

Official POV-Ray versions currently do not support shader plug-ins.[14] Some features, like radiosity and splines are still in development and may be subject to syntactical change.

Platform support

POV-Ray 3.6 se distribuye en formato compilado para Mac , Windows y Linux . La versión para Mac no es compatible con Macs con procesador Intel , pero dado que Mac OS X es una versión de Unix, la versión para Linux se puede compilar en él.

Las versiones 3.7 con soporte SMP son compatibles oficialmente con Windows y Linux. Se pueden encontrar versiones no oficiales para Mac de la versión 3.7. [ 15 ]

POV-Ray se puede portar a cualquier plataforma que tenga un compilador C++ compatible.

Licencias

Originalmente, POV-Ray se distribuía bajo su propia Licencia POV-Ray ; a saber, la Licencia de Distribución POV-Ray 3.6 [ 16 ] y la Licencia de Código Fuente POV-Ray 3.6, [ 17 ] que permitía la distribución gratuita del código fuente y los binarios del programa, al tiempo que restringía la distribución comercial y la creación de obras derivadas que no fueran versiones completamente funcionales de POV-Ray.

Aunque el código fuente de versiones anteriores está disponible para su modificación, debido a las restricciones de la licencia 3.6 y anteriores, no se consideraba software libre ni de código abierto según la definición de la OSI o la FSF . Esto suponía un problema, ya que el intercambio de código fuente con el ecosistema FOSS era imposible debido a la incompatibilidad de la licencia con las licencias copyleft .

Una de las razones por las que POV-Ray no se licenció originalmente bajo la Licencia Pública General GNU (GPL) de software libre, ni bajo otras licencias de código abierto, es que POV-Ray se desarrolló antes de que las licencias de estilo GPL se generalizaran; los desarrolladores escribieron su propia licencia para el lanzamiento de POV-Ray, y los colaboradores del software trabajaron bajo el supuesto de que sus contribuciones se licenciarían bajo las Licencias POV-Ray 3.6.

En 2013, con la versión 3.7, POV-Ray fue re-licenciado bajo la Licencia Pública General Affero de GNU versión 3 (o posterior). [ 18 ] Por lo tanto, desde entonces POV-Ray es software libre según la definición de la FSF y también software de código abierto según la Definición de Código Abierto .

Véase también

  • Blender : un programa de software libre y de código abierto para modelado, animación y renderizado 3D.
  • Kerkythea : un programa gratuito de trazado de rayos con compatibilidad mejorada con SketchUp.
  • Sunflow : un sistema de renderizado de código abierto para la síntesis de imágenes fotorrealistas, escrito en Java.

Referencias

  1. "POV-Ray: Documentación: 1.1.5.3 Un 'Historial de versiones' histórico"" . povray.org . Archivado del original el 2018-12-20 . Consultado el 2018-12-19 .
  2. 1 2 "POV-Ray: Noticias" . povray.org . Consultado el 19 de diciembre de 2018 .
  3. "Versión 3.7.0.0" . 7 de noviembre de 2013. Consultado el 15 de marzo de 2018 .
  4. "POV-Ray Beta Release v3.8.0-beta.2" . POV-Ray. 09-08-2021 . Consultado el 29-08-2021 .
  5. "Licencia POV-Ray" . povray.org. Archivado del original el 15 de marzo de 2016. Consultado el 5 de mayo de 2014 .
  6. "Documentación: 1.1.5 La historia temprana de" . POV-Ray. Archivado del original el 4 de diciembre de 2014. Recuperado el 5 de mayo de 2014 .
  7. 1 2 "La red de transmisión TWiT con Leo Laporte" . Twit.tv. 7 de febrero de 2008. Consultado el 5 de mayo de 2014 .
  8. Paul Bourke: Supershape en 3D Archivado el 4 de junio de 2014 en Wayback Machine son ejemplos de imágenes POV-Ray hechas con código muy corto
  9. "POV-Ray: Documentación: 2.1.2.2 Opciones generales de salida" . www.povray.org . Consultado el 8 de septiembre de 2023 .
  10. 1 2 "POV-Ray: Documentación: 2.1.2.8 Opciones de trazado" . www.povray.org . Archivado del original el 8 de septiembre de 2023. Consultado el 8 de septiembre de 2023 .
  11. "Blender" . Archivado del original el 9 de julio de 2018. Consultado el 9 de julio de 2018 .
  12. "Noticias: Anuncio de Moray" . POV-Ray. 1 de febrero de 2007. Archivado del original el 27 de marzo de 2014. Consultado el 5 de mayo de 2014 .
  13. "POV-Ray/povray: La persistencia de Vision Raytracer" . POV-Ray. 6 de septiembre de 2013. Archivado del original el 5 de agosto de 2022. Consultado el 5 de agosto de 2022 .
  14. Para una implementación de este tipo, véase, por ejemplo, http://www.aetec.ee/fv/vkhomep.nsf/pages/povman2 . Archivado el 7 de febrero de 2007 en Wayback Machine.
  15. povrayunofficial_mac en megapov.inetart.net
  16. "Licencia de distribución de POV-Ray 3.6" . povray.org. Archivado del original el 13 de agosto de 2021. Consultado el 12 de diciembre de 2016 .
  17. "Licencia de código fuente de POV-Ray 3.6" . povray.org. Archivado del original el 23 de marzo de 2022. Consultado el 12 de diciembre de 2016 .
  18. Cason, Chris (8 de noviembre de 2013). "Descargar POV-Ray 3.7.0" . Archivado del original el 25 de marzo de 2022. Recuperado el 11 de noviembre de 2013. A partir de la versión 3.7, POV-Ray se publica bajo la licencia AGPL3 (o posterior) y, por lo tanto, es software libre según la definición de la FSF. [...] El código fuente completo está disponible, lo que permite a los usuarios crear sus propias versiones y a los desarrolladores incorporar partes o la totalidad del código fuente de POV-Ray en su propio software, siempre que se distribuya bajo una licencia compatible (por ejemplo, la AGPL3 o, a su elección, cualquier versión posterior).
  • Sitio web oficial