stringtranslate.com

POV-Rayo

The Persistence of Vision Ray Tracer , más comúnmente acrónimo 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 basó en DKBTrace, escrito por David Kirk Buck y Aaron A. Collins para computadoras Amiga . También hay influencias del anterior trazador de rayos Polyray [6] 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 por sus iniciales. Lo publicó en el sistema de tablón de anuncios (BBS) "You Can Call Me Ray" en Chicago, pensando que otros podrían estar interesados ​​en él. 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 previsto, no pudieron satisfacer la demanda de más funciones. Así, 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 consideró 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 "POV-Ray" (Persistence of Vision Ray Tracer), [2] a Nombre inspirado en el cuadro 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 madurado sustancialmente desde su creación. Las versiones recientes del software incluyen las siguientes características:

Uno de los principales atractivos de POV-Ray es su gran colección de activos 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 aquellos que quieran aprender cómo funcionan el trazado de rayos y los algoritmos de gráficos por computadora y geometría 3D relacionados.

Versión actual

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

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

En julio de 2006, Intel Corporation comenzó a utilizar la versión beta 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 creadas con geometría sólida constructiva o CSG. La fuente está en la página de descripción de la imagen.
Algunos dados de colores renderizados en POV-Ray. Se demuestran 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 orden 15 o polinomio 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 objetos usando 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 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 pueden describirse 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 visible en el software de modelado basado en mallas. Las primitivas de POV-Ray también son más sencillas 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 estar descrita por una multitud de pequeños polígonos conectados (normalmente cuadrángulos o triángulos ).

Por otro lado, el modelado primitivo basado en guiones no siempre es un método práctico para crear ciertos objetos, como personajes realistas o artefactos complejos hechos 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 utilizado por 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 superficie normal y un acabado, y los efectos transformadores de la rotación.

Salida de imagen POV-Ray basada en el script
 #versión 3.6 ; // Incluye un archivo separado que define una cantidad de colores comunes #include "colors.inc" global_settings { supuesto_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 cámara { 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) // traducir: mueve la fuente de luz a la ubicación deseada light_source { < 0 , 0 , 0 > color rgb < 1 , 1 , 1 > traducir < - 5 , 5 , - 5 > } // Coloca otra fuente de luz // color: establece el color de la fuente de luz (gris oscuro) // traducir: mueve la fuente de luz a la ubicación deseada light_source { < 0 , 0 , 0 > color rgb < 0.25 , 0.25 , 0.25 > traducir < 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 de la caja refleja la luz // normal: establece una irregularidad para el cuadro usando el modelo incorporado "ágata" // rotar: Gira el cuadro cuadro { < - 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 declaración de variables, asignación, comparación y la construcción 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 > textura { pigmento { color Rojo } acabado { especular 0.6 } normal { ágata 0.25 escala 1/2 } } rotar the_angle _ } #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 sofisticado lenguaje de descripción de modelos. 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, incluido el paquete de creación 3D gratuito y de código abierto Blender.

Varios modeladores adicionales compatibles con POV-Ray están vinculados desde Povray.org: Programas de modelado.

En 2007, POV-Ray adquirió los derechos de Moray, [12] un programa interactivo de modelado 3D utilizado durante mucho tiempo con POV-Ray. Sin embargo, a diciembre de 2016, el desarrollo de Moray está estancado. [13]

Software

Desarrollo y mantenimiento

Las modificaciones oficiales al árbol fuente de POV-Ray las realiza y/o aprueba el equipo POV. La mayor parte del envío 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 (también disponible con una interfaz web ). Dado que la fuente de POV-Ray está disponible, existen bifurcaciones no oficiales y versiones parcheadas de POV-Ray disponibles de terceros; sin embargo, estos no cuentan con el respaldo oficial del POV-Team.

Las versiones oficiales de POV-Ray actualmente no admiten complementos de sombreado . [14] 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 compatibilidad con Intel Mac no está disponible en la versión para Mac , pero dado que Mac OS X es una versión de Unix , la versión de Linux se puede compilar en él.

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

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

Licencia

Originalmente, POV-Ray se distribuía bajo su propia licencia POV-Ray . Es decir, la licencia de distribución POV-Ray 3.6 [16] y la licencia fuente POV-Ray 3.6, [17] que permitían la distribución gratuita del código fuente y los archivos binarios del programa, pero restringen la distribución comercial y la creación de trabajos derivados que no sean completamente funcionales. versiones de POV-Ray.

Aunque el código fuente de versiones anteriores está disponible para modificación, debido a la versión 3.6 anterior y a las restricciones de licencia anteriores, no era software de código abierto ni gratuito según la definición del término OSI o FSF . Esto fue un problema ya que el intercambio de código fuente con el ecosistema FOSS en general era imposible debido a la incompatibilidad de la licencia con las licencias copyleft .

Una de las razones por las que POV-Ray no tenía originalmente la licencia de software libre GNU General Public License (GPL), u otras licencias de código abierto, es que POV-Ray se desarrolló antes de que las licencias estilo GPL se utilizaran ampliamente; 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 tendrían la licencia POV-Ray 3.6.

En 2013, con la versión 3.7, se volvió a obtener la licencia de POV-Ray bajo la Licencia pública general de Affero versión 3 (o posterior). [18] Así, 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 .

Ver también

Referencias

  1. ^ "POV-Ray: Documentación: 1.1.5.3 Un historial histórico de versiones'". povray.org . Consultado el 19 de diciembre de 2018 .
  2. ^ ab "POV-Ray: Noticias". povray.org . Consultado el 19 de diciembre de 2018 .
  3. ^ "v3.7.0.10 (versión de mantenimiento del código fuente) más reciente". 8 de julio de 2021 . Consultado el 8 de marzo de 2023 .
  4. ^ "Lanzamiento Beta de POV-Ray v3.8.0-beta.2". POV-Rayo. 2021-08-09 . Consultado el 29 de agosto de 2021 .
  5. ^ "Licencia de rayos POV". povray.org . Consultado el 5 de mayo de 2014 .
  6. ^ "Poliray v1.7". Alejandro R. Enzmann . Consultado el 5 de julio de 2016 .
  7. ^ "Documentación: 1.1.5 La historia temprana de". POV-Rayo . Consultado el 5 de mayo de 2014 .
  8. ^ ab "La red TWiT Netcast con Leo Laporte". Twitter.tv. 2008-02-07 . Consultado el 5 de mayo de 2014 .
  9. ^ Paul Bourke: Supershape en 3D son ejemplos de imágenes POV-Ray creadas con 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 seguimiento". www.povray.org . Consultado el 8 de septiembre de 2023 .
  12. ^ "Noticias: Anuncio de Moray". POV-Rayo. 2007-02-01 . Consultado el 5 de mayo de 2014 .
  13. ^ "POV-Ray/povray: la persistencia de Vision Raytracer". POV-Rayo. 2013-09-06 . Consultado el 5 de agosto de 2022 .
  14. ^ para dicha implementación, consulte, 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 POV-Ray 3.6". povray.org . Consultado el 12 de diciembre de 2016 .
  17. ^ "Licencia de origen POV-Ray 3.6". povray.org . Consultado el 12 de diciembre de 2016 .
  18. ^ 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