www.yafray.org
    
¿Qué es Yafray?
Yafray
es simplemente Yet Another Free Ray Tracer,
y básicamente se trata de un raytracer opensource que toma como entrada
un fichero xml en el que se define la geometría de la escena y su
iluminación. Actualmente se está desarrollando la integración de este
raytracer con Blender.
Los orígenes de Yafray
YafRay (Yet Another Free
Raytracer) es un raytracer opensource y multiplataforma que surge como
proyecto personal de Alejandro Conty Estévez, miembro de Co.A.L.A,
en Julio de 2002. Inicialmente se trataba de un raytracer básico para
el sistema operativo GNU/Linux. Posteriormente se le fueron añadiendo
características, una de las más importantes fue el cargador de escenas
en un formato propio utilizando XML. De este modo fue posible la
exportación de escenas desde programas de modelado para la posterior
generación de la imagen utilizando YafRay.
Este hecho produjo un gran interés en
comunidades
internacionales
relacionadas con el mundo de los gráficos tridimensionales por
computadora (ElYsiun, Blender.org, Wings3D.com, entre otras), creándose
programas que permitían la exportación de escenas desde los modeladores
más importantes dentro del software libre como son Blender y Wings3D.
Este interés conllevó la necesidad de ampliar el
desarrollo de YafRay a
otros sistemas operativos a parte de GNU/Linux. Primero se llevó a cabo
la traducción para sistemas operativos Windows (9x, Me, 2000 y XP). De
manera casi simultánea se desarrollaron versiones para Mac OS X por
terceras personas. Posteriormente, Apple España cedió temporalmente un
equipo para mejorar el desarrollo de YafRay.
Actualmente, YafRay se basa en un modelo de
plugins, en el cual el
motor de render está contenido en una librería separada del cargador
xml. De esta manera, es relativamente sencillo construir otros
cargadores o invocar a YafRay desde otros programas. A su vez, el motor
de render (librería principal) es el encargado de cargar, en tiempo de
ejecución, los plugins relativos a los métodos de ilumnación (shaders,
luces, etc). Esta modularidad ha facilitado la integración de YafRay
con Blender. En estos momentos (release 2.32 de Blender), dicha
integración está aún en fase de pruebas y desarrollo.
Una descripción técnica
YafRay es un programa de línea
de comandos, es decir, que no posee ningún entorno gráfico o visual
integrado. YafRay toma como parámetro una escena descrita en formato
xml. En este xml se describe tanto la geometría como los modelos de
iluminación empleados en la escena, así como la posición de la cámara y
algún otro parámetro. Evidentemente, salvo para escenas muy sencillas,
es casi imposible crear un archivo de estas características a mano.
Por ello, lo interesante es poder convertir
escenas
creadas en un
modelador cualquiera al formato xml de YafRay. Los primeros intentos se
realizaron con los modeladores wings3d y blender3d.
En el primer caso se trataba de una opción
dentro del
propio programa
que permitía generar la imagen con YafRay. Sinceramente desconozco cual
es el nivel integración con Wings, pero tratándose de la primera
integración de este tipo, supongo que esté bastante avanzada.
El segundo caso, el de Blender, tiene un poco
más de
historia, o al
menos es más conocida para mi. En un principio Andrea Carbone,
aprovechando la versatilidad de Blender y su interacción con python,
creó un script en python llamado Yable, que se ejecutaba desde el
propio Blender, y que permitía ajustar los parámetros de la escena
modelada para su exportación como xml. Más tarde Leope amplió dicho
script creando el YableX. John Matthews (guitargeek) programó
posteriormente extractor, un nuevo y más completo script de exportación
Blender->YafRay.
En la actualidad, ya está desarrollada la
integración
Blender/YafRay.
Desde la version 2.32 de Blender se permite la renderización
de la escena con YafRay sin ayuda de scripts, es decir, de manera
integrada en el programa. Dicha integración está aún en fase preliminar
y, aunque hay características de YafRay que no se pueden utilizar desde
Blender, ya se pueden crear escenas más o menos complejas. Es decir, si
se selecciona YafRay como motor de render, al pulsar F12 (botón de
renderizado) lo que se realiza es una llamada a YafRay y la imagen
resultante se muestra en la ventana de render. Además, se exporta un
xml en formato YafRay en un directorio especificado por el usuario.
Este xml puede ser editado (con cualquier editor
de
texto) para
modificar parámetros sin necesidad de usar Blender, bien porque al
usuario le resulte más cómodo o bien para "tocar" algún parámetro cuyo
manejo aún no es posible desde Blender. Existen también una serie de
GUI's para varios sistemas operativos, que permiten modificar de una
manera visual los parámetros del xml. Quizás el más completo (y además
multiplataforma) sea Bagisas, aunque en este momento desconozco su
estado de desarrollo.
Hay que aclarar que, aunque se hable de
integración con
otros programas
como Blender, YafRay es un programa independiente. Es decir, que aunque
instalemos Blender deberemos instalar también YafRay. La instalación es
sumamente sencilla. Bajo Linux existen paquetes rpm y deb (disponible
oficialmente en Debian sid). Para Windows existe un instalador. En el
caso de Windows, si queremos que YafRay pueda ser invocado desde
cualquier punto dentro de la consola de comandos, deberemos incluir el
directorio de YafRay al path. La forma de realizarlo depende de la
versión de Windows, aunque conviene saber que no es necesario si lo
vamos a utilizar conjuntamente con Blender, ya que éste se encarga de
la localización del ejecutable vía registro de Windows. También existe
un paquete para Mac OS X y para IRIX.
Actualmente se están desarrollando scripts de
exportación para 3D
Studio MAX (3,4,5) y GMAX.
En resumen
Para terminar algunas de las características de
YafRay:
- Definición de escenas en xml. Cargador.
- Salida en fichero .tga
- Texturas en tga y jpeg.
- Tipos de iluminación: Arealights, photon lights
(caústicas), sunlight, hemilight, spot light.
- Antialias
- Efecto niebla.
- Bump mapping
- Shading Blocks (Crafter, editor
de shaders)
Imagen de fondo.
- Fondo HDRI (iluminación HDRI)
- Texturas procedurales.
- Efecto fresnel.
- Halo en spot light.
- Photon light cacheada.
Agradecimientos
Especialmente a Luis
Fernando Ruiz Gago, que es
el que nos ha facilitado toda esta información (nosotros solo la hemos
montado).
|