stringtranslate.com

Rayo de POV

El trazador de rayos Persistence of Vision , más 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 basada en texto. Originalmente se basaba en DKBTrace, escrito por David Kirk Buck y Aaron A. Collins para computadoras Amiga . También hay influencias del trazador de rayos Polyray [6] anterior debido a las contribuciones de su autor, Alexander Enzmann. POV-Ray es un software gratuito y de código abierto , con el código fuente 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 en su Amiga . Experimentó con él durante un tiempo y finalmente decidió escribir su propio trazador de rayos llamado DKBTrace en honor a 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 x86 del mismo. Él y David Buck colaboraron para agregar varias funciones más.

Cuando el programa resultó ser más popular de lo esperado, no pudieron satisfacer la demanda de más funciones. Por ello, en julio de 1991, David entregó el proyecto a un equipo de programadores que trabajaban en el foro "GraphDev" de CompuServe . Al mismo tiempo, David sintió que no era apropiado utilizar sus iniciales en un programa que ya no mantenía. Inicialmente se utilizó el nombre "STAR-Light" (Software Taskforce on Animation and Rendering), pero finalmente el nombre se convirtió en "PV-Ray" y, finalmente, en "POV-Ray" (Persistence of Vision Ray Tracer), [2] un nombre inspirado en la pintura de Dalí , La persistencia de la memoria . [7] [8]

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 . [8]

Características

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

POV-Ray ha evolucionado considerablemente desde su creación. Las versiones recientes del software incluyen las siguientes funciones:

Uno de los principales atractivos de POV-Ray es su gran colección de recursos y herramientas creados por terceros. En la web se puede encontrar una gran cantidad de herramientas, texturas, modelos, escenas y tutoriales. También es una referencia útil para quienes quieran aprender cómo funcionan el trazado de rayos y los algoritmos relacionados con la geometría 3D y los gráficos por computadora.

Versión actual

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

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 3.7 para demostrar su nuevo procesador Conroe de doble núcleo debido a la eficiencia de la implementación de SMP (multiprocesamiento simétrico).

Primitivos

Representación del diagrama de Venn de cuatro esferas creado con geometría sólida constructiva o 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 efectos CSG , refracción y desenfoque focal .

POV-Ray, además de 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 Julia (una porción tridimensional de un fractal de 4 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 utilizando sus definiciones matemáticas; todos los objetos primitivos de POV-Ray pueden describirse mediante funciones matemáticas . Esto es diferente de muchos programas informáticos que incluyen modelos 3D, que normalmente utilizan mallas de triángulos 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 y similares, son perfectamente suaves y matemáticamente precisos en las representaciones de POV-Ray, mientras que los artefactos poligonales pueden ser visibles en el software de modelado basado en malla. 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 malla, una esfera debe describirse por una multitud de pequeños polígonos conectados (generalmente cuadriláteros o triángulos ).

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

Ejemplos del lenguaje de descripción de escenas

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

Salida de imagen POV-Ray basada en el script
 #version 3.6 ; // Incluye un archivo separado que define una cantidad de colores comunes #include "colors.inc" global_settings { supposed_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 // look_at: le dice a la cámara dónde mirar camera { ubicación < 0.0 , 0.5 , - 4.0 > dirección 1.5 * z derecha x * ancho_imagen / alto_imagen look_at < 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 una 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 una ubicación deseada light_source { < 0 , 0 , 0 > color rgb < 0.25 , 0.25 , 0.25 > translate < 6 , - 6 , - 6 > }                              // Establece un cuadro // pigmento: Establece un color para el cuadro ("Rojo" como se define en "colors.inc") // acabado: Establece cómo la superficie del cuadro refleja la luz // normal: Establece una irregularidad para el cuadro usando el modelo incorporado "ágata" // rotar: Rota el cuadro box { < - 0.5 , - 0.5 , - 0.5 >, < 0.5 , 0.5 , 0.5 > textura { pigmento { color Rojo } acabado { especular 0.6 } normal { ágata 0.25 escala 1 / 2 } } rotar < 45 , 46 , 47 > }                               

El siguiente fragmento de script muestra el uso de la declaración de variables, la asignación, la comparación y la construcción del bucle while:

Salida de imagen POV-Ray basada en el script
 #declarar el_angulo = 0 ;    #while ( el_ángulo < 360 ) caja { < - 0.5 , - 0.5 , - 0.5 > < 0.5 , 0.5 , 0.5 > textura { pigmento { color Rojo } acabado { especular 0.6 } normal { ágata 0.25 escala 1 / 2 } } rotar el_ángulo } #declarar el_ángulo = el_ángulo + 45 ; #fin                                         

Modelado

El programa POV-Ray en sí no incluye una función de modelado ; es esencialmente un renderizador puro con un lenguaje de descripción de modelos sofisticado. Para acompañar este conjunto de funciones, terceros han desarrollado una gran variedad de software de modelado, algunos especializados para POV-Ray, otros que admiten la importación y exportación de sus estructuras de datos, incluida la suite de creación 3D de código abierto y gratuita Blender [12].

Hay varios modeladores adicionales compatibles con POV-Ray vinculados desde Povray.org: Programas de modelado.

En 2007, POV-Ray adquirió los derechos de Moray , un programa de modelado 3D interactivo que se utilizó durante mucho tiempo con POV-Ray. Sin embargo, a diciembre de 2016, el desarrollo de Moray se estancó. [14 ]

Software

Desarrollo y mantenimiento

Las modificaciones oficiales del árbol de código fuente de POV-Ray son realizadas y/o aprobadas por el equipo de POV-Ray. La mayoría de los envíos de parches y/o informes de errores se realizan en los grupos de noticias de POV-Ray en el servidor de noticias news.povray.org (con una interfaz web también disponible). Dado que el código fuente de POV-Ray está disponible, existen versiones parcheadas y bifurcaciones no oficiales de POV-Ray disponibles de terceros; sin embargo, el equipo de POV-Ray no las respalda oficialmente.

Las versiones oficiales de POV-Ray actualmente no admiten complementos de sombreado . [15] Algunas características, como la radiosidad y los splines, aún están en desarrollo y pueden estar sujetas a cambios sintácticos.

Soporte de plataforma

POV-Ray 3.6 se distribuye en formato compilado para Mac , Windows y Linux . La versión para Mac no es compatible con Intel Mac , pero como 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. [16]

POV-Ray se puede trasladar 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 [17] y la Licencia Fuente POV-Ray 3.6 [18] , que permitían la distribución gratuita del código fuente y los binarios del programa, pero restringían la distribución comercial y la creación de trabajos derivados 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 licencias anteriores y de la versión 3.6, no se trataba de software libre ni de código abierto según la definición del término de la OSI o la FSF . Esto era un problema, ya que el intercambio de código fuente con el ecosistema FOSS más amplio era imposible debido a la incompatibilidad de licencias con las licencias copyleft .

Una de las razones por las que POV-Ray no fue originalmente licenciado bajo la Licencia Pública General de GNU (GPL) de software libre, u otras licencias de código abierto, es que POV-Ray fue desarrollado antes de que las licencias de estilo GPL se volvieran ampliamente utilizadas; los desarrolladores escribieron su propia licencia para el lanzamiento de POV-Ray, y los contribuyentes al software trabajaron bajo el supuesto de que sus contribuciones estarían licenciadas 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 GNU versión 3 (o posterior). [19] Por lo tanto, POV-Ray es desde entonces 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

Referencias

  1. ^ "POV-Ray: Documentación: 1.1.5.3 Un 'Historial de versiones' histórico". povray.org . Consultado el 19 de diciembre de 2018 .
  2. ^ ab "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. ^ "Versión beta de POV-Ray v3.8.0-beta.2". POV-Ray. 2021-08-09 . Consultado el 2021-08-29 .
  5. ^ "Licencia POV-Ray". povray.org . Consultado el 5 de mayo de 2014 .
  6. ^ "Polyray v1.7". Alexander R. Enzmann . Consultado el 5 de julio de 2016 .
  7. ^ "Documentación: 1.1.5 La historia temprana de". POV-Ray . Consultado el 5 de mayo de 2014 .
  8. ^ ab "La red TWiT Netcast con Leo Laporte". Twit.tv. 2008-02-07 . Consultado el 2014-05-05 .
  9. ^ Paul Bourke: Supershape en 3D son ejemplos de imágenes POV-Ray creadas con un código muy corto
  10. ^ "POV-Ray: Documentación: 2.1.2.2 Opciones generales de salida". www.povray.org . Consultado el 8 de septiembre de 2023 .
  11. ^ ab "POV-Ray: Documentación: 2.1.2.8 Opciones de rastreo". www.povray.org . Consultado el 8 de septiembre de 2023 .
  12. ^ Licuadora
  13. ^ "Noticias: Anuncio de Moray". POV-Ray. 2007-02-01 . Consultado el 2014-05-05 .
  14. ^ "POV-Ray/povray: La persistencia de Vision Raytracer". POV-Ray. 2013-09-06 . Consultado el 2022-08-05 .
  15. ^ Para una implementación de este tipo, consulte, por ejemplo, http://www.aetec.ee/fv/vkhomep.nsf/pages/povman2 Archivado el 7 de febrero de 2007 en Wayback Machine.
  16. ^ povrayunofficial_mac en megapov.inetart.net
  17. ^ "Licencia de distribución de POV-Ray 3.6". povray.org . Consultado el 12 de diciembre de 2016 .
  18. ^ "Licencia de código fuente de POV-Ray 3.6". povray.org . Consultado el 12 de diciembre de 2016 .
  19. ^ Cason, Chris (8 de noviembre de 2013). "Descargar POV-Ray 3.7.0" . Consultado 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, AGPL3 o, a su elección, cualquier versión posterior).

Enlaces externos