12 Archivos adjunto(s)
Tutorial del sistema de render sunflow
tutorial del sistema de render sunflow. Por Cristopher kulla.
Introducción.
En este tutorial presentaré algunas características básicas de sunflow y cómo usarlas desde Blender.
Sunflow es el sistema de render de código abierto que he creado. Esta construido alrededor de un pequeño, pero muy flexible núcleo que le permite ser completamente configurable. Contiene una colección de algoritmos modernos que lo convierten en un buen candidato para generar imágenes realistas. Ha sido recientemente conectado a Blender mediante un simple script de exportación que iré describiendo.
Instalación.
Sunflow esta programado en java. Esto significa que necesitaremos descargar e instalar las librerías java Sun jre (o jdk) en el caso de que no las tengas ya instaladas. Vete a http://java, Sun.com/ y sigue las instrucciones para tu sistema operativo en particular (los usuarios de OS X necesitan dirigirse a la web de Apple). Sunflow requiere java versión 5 (algunas veces denominada 1.5) o posterior.
Una vez realizada la instalación, iremos a la línea de comando y escribiremos: java -versión.
Si aparece el número de versión correcto, la instalación ha tenido lugar correctamente.
A continuación, descarga el fichero binario desde la web de sunflow (v0.05.5 en el momento de escribir esto) y descomprimirlo a un directorio de tu elección. Vete a ese directorio en modo línea de comando y escribe la línea de comando descrita en el archivo readme incluido en la distribución. Deberías ver aparecer la siguiente ventana:
Archivo adjunto 215808
Finalmente, consigue el script de exportación de Blender desde la web de sunflow e instalala en el directorio de scripts de Blender (dentro de tu carpeta de instalación de Blender). Cuando arranques Blender podrás ver que aparece una nueva opción en el menú file->export:
Archivo adjunto 215809
Ya esta todo preparado para que realices el render de tu primera imagen.
Primer render: oclusión ambiental.
He preparado una escena muy simple para mostrar cómo funciona. Aunque puedes utilizar cualquiera de tus objetos favoritos. Este es el aspecto que tiene mi escena en la vista 3d:
Archivo adjunto 215810
Vete a la opción file -> export y selecciona el sunflow exporter que acabas de instalar. Nos mostrara la siguiente ventana de opciones:
https://www.foro3d.com/extras/tutori...56-2_img_8.jpg
Vamos a cambiar algunas pocas opciones esta primera vez. El objetivo es obtener un render simple con oclusión ambiental para tenerlo como referencia en el proceso. No te preocupes por la cantidad de opciones que ves, trabajaremos con la mayoría más adelante.
En el panel AO override, pulsaremos sobre AMB OCC. Con esto le decimos al exportador que pasaremos por encima todos los sombreados en la escena con el mencionado sombreador Ambient Occlusion.
Las opciones más importantes son samples (número de rayos trazados para calcular la oclusión) y el valor distance (hasta dónde llegan para otros objetos).
Por ahora, dejaremos el valor samples como esta, y ajustaremos la distancia a un valor razonable para nuestra escena. El valor 0 por defecto se corresponde con una longitud infinita de los rayos.
Ahora pulsa el botón export y selecciona dónde guardaras el fichero de escena exportado. Puedes mirar en la ventana de salida de Blender para visualizar los pasos que el exportador esta realizando. Puede llevar un tiempo revisar la escena si hay muchos objetos. Una vez el fichero ha sido exportado volverás a la ventana de opciones del exportador.
Ahora vete a la ventana de sunflow que has abierto anteriormente y abre el archivo de la escena que has guardado. Si el proceso de carga se produce sin errores, la opción del menú de render estará ahora habilitada.
Selecciona en primer lugar render -> IPR. La imagen comenzara a procesarse con cuadros grandes que se irán definiendo progresivamente. Tras unos segundos, deberíamos poder ver cómo va a quedar la imagen final. Se puede cancelar el proceso de render en cualquier momento. La mayoría de las veces sólo es necesario menos del 10% de la imagen antes de lanzar un render en alta resolución.
Ahora seleccionaremos render -> render. Esta vez la imagen comenzara a procesarse con cuadro pequeños. Si posturas un ordenador multiprocesador veras varios cuadros inmediatamente. Tras unos segundos deberíamos ver algo similar a la imagen de abajo.
Archivo adjunto 215811
Felicidades. Acabas de realizar tu primer render con sunflow.
Tu imagen tendrá una apariencia ruidosa y con muchos pequeños artefactos. No te preocupes. Aprenderemos a mejorar la calidad de la imagen más adelante.
Ahora, hagamos un poco más interesante nuestra escena añadiéndole algunas luces y materiales.
Luces y materiales.
Vuelve a Blender y añade algún material diferente para cada superficie. Recuerda que el exportador no soporta aún todo el amplio rango de sombreadores y texturas de Blender.
Por ahora, crearemos materiales tipo difuso regular. Para cada material, simplemente asígnale un único color. Éste es el único atributo que es leído por defecto, mientras que todas las demás opciones son ignoradas. Hay algunas excepciones a esta norma para generar otros sombreadores sunflow, pero lo veremos más adelante.
A continuación, necesitaremos luces. Actualmente el exportador sólo soporta luces tipo Lamp y square área. Las luces área proyectan sombras suaves a costa de incrementar el tiempo de render. Mi escena con sombreadores y luces básicas se parece ahora a la imagen de la derecha.
Una vez estés contento con tu escena, es hora de exportarla de nuevo. Esta vez, vamos a tratar de entender las diversas configuraciones y cómo afectan a la calidad de la imagen.
Lo más importante son probablemente las configuraciones a. Los valores mínimo y máximo controlan cuanto cálculo se necesita para cada píxel. Valores negativos significan que los cálculos serán interpolados a partir de varios píxeles, valores positivos significan más cálculos a llevar a cabo para cada píxel. Cero significa que un simple cálculo es realizado para cada píxel. Por ejemplo: los valores por defecto de -2 y 0 significan que el renderizador comenzara calculando cada 4º píxel, y se adaptara a disminuir el cálculo a un nivel de píxel simple donde es necesario. Esta vez, intenta establecer tu valores de a a 0 y 2. Cada píxel será ahora la sombra por lo menos una vez, y hasta 16 veces (nivel 2).
Si calculamos más de un valor por píxel, tendremos que promediarlos juntos. La forma en que se haga esto es controlado por la configuración del filtro de imagen. Vamos a elegir el filtro Mitchell puesto que proporciona una buena nitidez de imagen. Este filtro en particular tiene una altura y anchura fijas, de forma que las configuraciones desaparecerán del cuadro de diálogo cuando es seleccionado.
La configuración del servidor de luz (light server) permite controlar la cantidad de rayos que se utilizan por la luz. El valor por defecto de 16 es un poco alto, pero generalmente da buena calidad.
La pestaña GI controla la iluminación global. Éste es un tema avanzado que vamos a explorar en la siguiente sección. Por ahora deja todos los controles en sus valores por defecto.
La pestaña accelerator (acelerador) contiene ajustes que no tienen influencia sobre la calidad de la imagen, pero que pueden tener efectos drásticos en el tiempo de cálculo de la imagen. El acelerador por defecto es el kdtre y es generalmente la mejor elección.
Puedes experimentar con diferentes tipos de aceleradores y ver cual es el que aporta resultados más rápidos para tu escena. Puedes también ajustar la condición bucket en esta pestaña. Cambiar a espiral esta vez para tener la imagen calculada desde el centro.
Archivo adjunto 215812
Bajo la pestaña light (luz), tenemos la opción de ajustar la intensidad de todas las luces en la escena. Puesto que sunflow utiliza más cálculos basados en la física que Blender, la potencia de las luces no suele coincidir. Este factor de escala global puede ayudarte a compensarlo para esto. He configurado las minas a 5, pero esto puede variar de escena a escena. Notar que el factor de escala afecta sólo a las área lights.
Finalmente, recordar deseleccionar el botón AMB OCC de la pestaña AO override si todavía es seleccionado a partir de la anterior exportación.
Podemos ahora exportar y renderizar de nuevo. Si exportas al mismo directorio de antes (sobrescribiera el anterior archivo), puedes simplemente usar la opción del menú file -> re-open en el sunflow GUI para recargar rápidamente tu escena.
Archivo adjunto 215813
Usa la característica IPR de nuevo para ver a lo que se parece tu escena rápidamente. Probablemente necesitara un par de ciclos de exportación antes de que obtenga las intensidades de luz adecuadas. Aquí está mi resultado (imagen inferior izquierda).
Incluso con las sombras suaves, esta imagen no es muy realista aún. Le mostraré la forma de abordar esto en la siguiente sección.
Técnicas de iluminación global.
Como mencioné en la introducción, sunflow es un renderizador muy personalizable. Por lo tanto, es capaz de incorporar diferentes algoritmos de GI en un marco coherente. Esto da a los artistas diferentes formas de alcanzar sus objetivos y permite a los desarrolladores introducir nuevos algoritmos, sin estropear viejas escenas.
Ahora describiré ampliamente uno de los métodos de cálculo de iluminación global: Path tracing (camino trazado). Éste es el método de aprender más exacto y fácil. Las capturas en el pueden tomar bastante tiempo para obtener resultados de alta calidad.
En el exportador, ir a la pestaña GI y activar el botón Path. El algoritmo es controlado por dos parámetros: samples (muestras) y bounces (rebotes). El primero por defecto vale 32 y controla la calidad del resultado. El segundo por defecto vale 1 y controla cuantos rebotes se le permite hacer a la luz.
Deja los valores por defecto por ahora para ver sus efectos. Puesto que este algoritmo producirá resultados con mucho ruido, ir a la pestaña a y poner a 0 min y max. Esto forzara a tomar sólo una muestra por píxel, lo cual evitara el antialiasing al ser obligados a supermuestrear cada píxel debido al ruido.
Puedes también necesitar ajustar el filtro de nuevo a box (anchura y altura 1) para evitar la introducción de artefactos de filtrado del ruido.
Exporta y renderiza de nuevo. He añadido algunas paredes detrás de mi escena para ver el efecto de los rebotes. Compara estos dos resultados, con y sin iluminación global:
Archivo adjunto 215814
Escena con GI.
Archivo adjunto 215815
Escena sin GI.
Archivo adjunto 215816
Tal vez te resulte difícil deshacerte del ruido en la imagen en un plazo de tiempo razonable, incluso si tomas un número de muestras muy elevado. Ésta es una limitación teórica del algoritmo del camino trazado. Photon Maps e irradiance caching son dos algoritmos que cuando son combinados pueden dar lugar a una solución mucho más eficiente, sin embargo, son mucho más complicados de configurar, incluso para usuarios experimentados.
En lugar de entrar a detalles de estos métodos avanzados, tal vez sería mejor saber que muy probablemente pronto aparecerán en sunflow algoritmos más simples y eficientes.
Iluminación basada en imágenes.
En esta sección cubriremos el uso de mapas ambientales HDRI para iluminación. De regreso a tu escena Blender, carga un mapa ambiental HDRI longitude-Latitude cómo textura en el nivel world. Asegúrate de desmarcar relative paths al cargar el mapa. Renombra el objeto textura a ibllight cómo se muestra. Esto permite al exportador conocer que deseas tratar este mapa como una fuente de luz ambiente.
Vete por delante y oculta todas las luces que estabas usando antes (el exportador respeta las capas Blender), y asegúrate de que tú escena esté open (abierta). Este tipo de iluminación asume que la luz viene de lejos, desde el infinito, por lo que es mejor adaptarla a representaciones al aire libre. Las escenas de interiores se llevaran muy mal con esta técnica.
Sunflow aproxima el mapa ambiental con un número fijo de luces direccionales. Esto es controlado por la configuración direct samples en el exportador. Usando el valor por defecto de 16 es probable que se vean algunos bordes afilados en las sombras de las luces individuales utilizadas. Basta con aumentar el número de muestras de luz hasta que las fronteras de las sombras afiladas se reduzca a un nivel aceptable.
Exportando y rederizando de nuevo, debería obtener algo parecido a esto:
Archivo adjunto 215817
Nota como las regiones sombreadas ya no son completamente oscuras y como hemos obtenido algunos sutiles sangrados de color sobre el suelo y entre los objetos.
Archivo adjunto 215818
Esta imagen es bastante realista, a pesar de que no hemos utilizado ninguna iluminación global. Por supuesto que puedes activar el Path tracing como lo hicimos antes para simular los rebotes extra de luz.
Materiales brillantes.
Por último, vamos a hacer nuestros sombreados un poco más interesantes. Hasta ahora hemos usado sombreadores completamente difusos.
Comencemos con el Shiny Shader (sombreador brillante). Simplemente añade una fina capa de reflexión sobre la parta superior del color difuso. Renombra uno de tus materiales objeto de forma que su nombre comience con sfshiny. El exportador leerá ahora el atributo raymirr para determinar la cantidad de reflexión a aplicar.
El siguiente es el Phong Shader que produce reflexiones borrosas. Renombra el material que desees editar de forma que comience con sfphong. El Specular color (color especular) ahora controla la cantidad de reflexión, mientras que el valor hard (duro) controla la borrosidad. Valores de dureza mayores dan lugar a reflexiones más nítidas. Para mí escena he utilizado valores en el rango de 5 a 50.
Ahora que hemos agregado varias capas de reflexiones, tenemos que poner atención a la configuración max depth en la ventana de diálogo del exportador. Esto controla cuantos niveles de reflexión son permitidos. El valor por defecto de 9 es bastante alto así que, lo reduciremos a 3 esta vez.
Aquí está el resultado final, renderizado con la iluminación basada en imágenes de la sección previa:
Archivo adjunto 215819
Conclusión.
Espero que hayas disfrutado con este rápido recorrido por algunas de las características del sistema de renderizado sunflow.
Un tutorial no es suficiente para cubrir todo lo que es posible hacer con este software. Muchas más cosas están soportadas, como texturas, refracciones, profundidad de campo, cáusticas, e incluso procedimientos de sombreado. Por favor, visita la página principal de sunflow (http://sunflow.sourceforge.net) y los foros elysiun (http://www.elysiun.com/) para obtener más información. Feliz renderizado.
Cristopher kulla es el principal programador del sistema de renderizado sunflow. En su ocupación diaria trabaja como desarrollador de software para reel FX creative Studios en dallás, Texas, trabajando en proyectos de comerciales, directo-a-DVD y largometrajes de animación. http://sunflow.sourceforge.net.