Gracias Gracias:  0
Resultados 1 al 1 de 1

Tema: Pathtracing y Mapa de Fotones Yafray

  1. #1
    Administrador y fundador. Avatar de 3dpoder
    Fecha de ingreso
    Apr 2002
    Mensajes
    15,455

    Pathtracing y Mapa de Fotones (Yafray)

    El método de PathTracing fue introducido por Kajiya en 1986 basandose en las ideas del Distributed Ray Tracing para calcular todos los posibles caminos de luz. Algunos problemas de integración del método que no quedaban resueltos como el calculo de la iluminación indirecta obtenida por el rebote de la luz en una superficie difusa, son resueltos por el PathTracing trazando un rayo aleatorio dentro del dominio de integración para estimar el valor de esta integral. La resolución de la función que queremos conocer (la distribución de la luz) se resuelve trazando rayos aleatoriamente por todos los caminos de luz (debido a que la solución exacta por otros métodos de integración no es abordable) y dividiendo por el número de muestras que tomamos por cada píxel obtenemos una estimación del valor de la integral teniendo en cuenta todos los posibles caminos de luz en ese píxel. Este método de resolución se basa en la técnica de integración de Monte Carlo.


    Una de las principales diferencias entre este método y el RayTracing original es la construcción del camino de la luz. En PathTracing sólo se lanza un único rayo en la llamada recursiva, lo cual nos produce un camino (Path), y no un árbol de rayos. Este rayo puede ser un rayo difuso, un rayo especular (espejo) o un rayo transmitido, con una cierta probabilidad.


    El principal problema del método de PathTracing es la lenta convergencia a la solución final, lo que se traduce en ruido. Si se conoce la distribución de las regiones más brillantes de la escena, se pueden concentrar las muestras en esas zonas para reducir la varianza rápidamente. En esta idea se basa el método del mapeado de fotones.



    Figura 01. Esquema de Construcción y Utilización del Mapa de Fotones: Construcción (Izquierda) y Uso (Derecha).



    El uso de Mapas de Fotones fue propuesto por Jensen en 2001, y se basa en desacoplar la representación de la iluminación de la geometría. Se realiza en dos pasos, primero se construye la estructura del mapa de fotones (trazado de fotones), desde las fuentes de luz al modelo (ver Figura 1 (Izquierda)). En una segunda estapa de render se utiliza la información del mapa de fotones para realizar el renderizado de manera más eficiente (Figura 1 (Derecha)).


    Cuando se emite un fotón, éste es trazado a través de la escena de igual forma que se lanzan los rayos en raytracing, excepto por el hecho de que los fotones propagan flux en lugar de radiancia. Cuando un fotón choca con un objeto puede ser reflejado, transmitido o absorbido (según las propiedades del material y un factor aleatorio dentro del dominio del material). En realidad el mapa de fotones esta formado por dos estructuras; una para guardar los impactos de fotones debido a las caústicas (efectos de concentración de luz cuando pasan a través de lentes, objetos de cristal... Ver ejemplo de esfera de cristal en Figura 2), y otro para representar la iluminación global.





    Figura 02. Representación del Mapa de Fotones y Uso.



    En la segunda etapa se renderiza empleando PathTracing, con varias muestras por píxel. Primero se calcula de forma precisa la iluminación directa, de forma similar a como se realizó en RayTracing. Las posibles caústicas de la escena se calculan empleando el mapa de fotones de caústicas que se calculó en la primera etapa. No se utiliza nunca el método de PathTracing para calcular las caústicas debido a que es muy ineficiente (en Figura 2, se percibe el impacto de los fotones de caústicas sobre el suelo). Finalmente, la iluminación indirecta se calcula empleando el mapa de fotones global. Gracias a esta información, el método de Monte Carlo converge antes a la solución correcta y se suaviza enormemente el ruido que presentan este tipo de métodos.


    En general, el uso de mapas de fotones ayuda al PathTracing en escenas de difícil iluminación (por ejemplo, interiores con la fuente de luz que incide desde una pequeña ventana) o en la simulación de caústicas.
    Yafray: Un buen PathTracer con Mapas de Fotones

    Yafray es un motor de render externo a Blender, aunque las opciones de configuración y el resultado del render esta integrado. De este modo, habrá que instalarlo independientemente. La nueva versión actualizada de Yafray se denomina Yaf(a)ray, desarrollada desde cero y sin integración en el interfaz de usuario. En este curso emplearemos la versión anterior (Yafray) por contar con paquete oficial debían, y por su sencillez de uso.



    Yafray esta como paquete oficial en muchas distribuciones de Linux. En este caso bastara con instalar el paquete del repositorio. Debes comprobar que Yafray esta instalado desde un terminal ejecutando yafray -v. La versión con la que trabajaremos en este curso es la 0.0.9. Si tu distribución no cuenta con paquetes oficiales de Yafray, puedes descargar la última versión oficial de la siguiente página web: Descarga Yafray. Cuidado con no descargar el motor de Yaf(a)ray por equivocación!.

    Una vez instalado Yafray, podemos elegirlo como motor de renderizado en la lista de motores de render de la pestaña Render (ver Figura 3).




    Figura 03.
    Pestaña Render.



    Cuando seleccionamos Yafray en la lista desplegable aparecen dos nuevas pestañas con las opciones de configuración de Yafray (Figura 4 y 5). En la pestaña Yafray, se muestran las opciones generales de configuración:




    • XML: xml permite exportar el fichero XML que Yafray toma de entrada. En general y salvo que queramos guardar el fichero para enviarlo a un grid, es mejor no guardar el XML y obtener la representación interactiva (XML desactivado).
    • AutoAA: indica a Yafray que seleccione automáticamente el nivel de AntiAliasing (Oversampling), según el valor indicado en OSA en Blender y el parámetro de calidad de la siguiente pestaña. En general, es buena idea dejar este botón activo.
    • Clamp RGB: Realiza AntiAliasing en zonas de alto contraste.
    • Raydepth: Profundidad máxima del trazado de rayos.
    • Gam / Exp: Ajuste de gama y exposición.


    En la pestaña de configuración de Iluminación Global Yafray GI hay dos listas desplegables. En la lista de método de iluminación Method, podemos elegir entre SkyDome, en el que la luz se calcula proveniente únicamente desde el cielo (un cielo infinito del color que hayamos definido el valor Sky en las propiedades del mundo, como vimos en la sección 5.1), o Full, que realiza un calculo de iluminación global completa (con iteración de la luz entre objetos).


    Si elegimos el método SkyDome, Yafray únicamente nos pide el valor de emisión EmitPwr. Esta es la intensidad con que se realizara la iluminación de la escena. Es habitual que una escena bien iluminada con el motor integrado de blender se vea algo oscura en Yafray. Mediante este parámetro podemos ajustar el nivel total de iluminación. El otro método que pro*por*ciona yafray (se*leccio*nan*do en la lista des*ple*gable Method la opción Full) es mucho más realista.


    La lista desplegable de calidad Quality situada debajo (ver Figura 5) ajusta, según el parámetro seleccionado, el número de muestras de luz que empleara Yafray internamente. Con el método de renderizado completo, tendremos que especificar dos nuevos parámetros; Depth (rebotes de la luz entre objetos) y CDepth (rebotes de la luz dentro de objetos translúcidos para obtener caústicas). El parámetro EmitPower situado en el inferior del panel permite, como hemos comentado anteriormente, ajustar la intensidad de las fuentes de luz de la escena. En algunas escenas habrá que ajustar este parámetro (normalmente incrementarlo) para obtener un valor de iluminación correcto.



    Figura 04.
    Pestaña Yafray.


    Figura 05. Pestaña YafrayGI.





    Muy Importante: Las primeras pruebas de render deben realizarse a baja resolución (25% de la resolución definitiva o incluso menor), a baja calidad (parámetro Quality a Low) y desactivando el Oversampling (OSA). Cuando los valores de iluminación sean correctos, activaremos el render a mayor calidad con un nivel de Oversampling aceptable (8 suele ser suficiente).

    Si activamos el modo Cache, aceleraremos los cálculos empleando Irradiance Cache. Esta cache nos evita tener que calcular la iluminación global en cada punto; selecciona algunos píxeles para realizar los cálculos y después interpola el valor de iluminación, acelerando notablemente los cálculos. En general, es buena idea activar el botón Cache. En ShadQu indicamos la calidad de las sombras; con valores más altos obtenemos mejores resultados (naturalmente, con mayor tiempo de calculo). Prec indica la precisión del píxel (un valor más bajo implica mayor calidad). Ref es un valor umbral, donde especificamos el cambio de intensidad que vamos a permitir entre muestras. Valores más pequeños dan resultados más precisos.


    El botón NoBump permite evitar el calculo de cambio del vector normal en la superficie si se utiliza Bump Mapping. Esto es mucho más rápido si se esta utilizando Irradiance Cache.
    Mapas de fotones con Yafray

    Los fotones Photons ayudan al calculo de la iluminación. Funcionan especialmente bien en escenas de interiores donde no hay cielos visibles, donde la luz entra por una zona definida (por ejemplo, una ventana o una ranura en una pared). Count indica el número de fotones a lanzar, un número mayor implica un restulado más suave. Radius indica el nivel de difuminado entre fotones. Es importante encontrar un valor adecuado para que el resultado sea suave. MixCount indica el número de fotones que van a situarse dentro del radio anterior. Finalmente, el botón Tune Photons sirve para obtener una respresentación preliminar del mapeado de fotones y ver si la imagen acabara correctamente iluminada.
    Ejemplo de uso


    La imagen resultado inicial Video: 00:06 se ha obtenido empleando los materiales por defecto y Ambient Occlusion (Appróximate) como método de render. Añadimos propiedades básicas de materiales (reflexión y transparencia), y una textura de imagen para el plano del suelo Video: 01:23. A continuación elegimos el motor de render Yafray Video: 01:28, desactivamos XML para obtener una representación de los pasos del render Video: 01:30 y elegimos el método de iluminación global completa Full, con baja calidad Low (para realizar las pruebas) y activando Irradiance Cache Cache Video: 01:38. Definimos de nuevo algunas propiedades de materiales. Cuando elegimos Yafray como motor de render, la pestaña de Mirror Transp Video: 01:46 cambia ligeramente, y permite elegir entre configuraciones para cristales y materiales reflectantes realistas. Elegimos el objeto transparente y le asignamos el preset de cristal de color Video: 01:50. Procedemos de forma analoga con el otro objeto asignandole el preset de reflexión uniforme. El resultado es mucho mejor que el obtenido con el motor interno de Blender Video: 02:20.


    Ficheros asociados a este ejemplo






    Figura 06. Izquierda: Ambient Occlusion - Centro: Yafray sin HDRI - Derecha: Yafray con HDRI.



    A continuación utilizaremos un mapa de iluminación HDRI, como explicamos en la sección 5.1. Como el resultado en Video: 03:45 esta un poco quemado (debido a que el mapa de iluminación tiene una intensidad alta), bajamos el valor de EmitPwr y GIPwr Video: 03:52. En la Figura 6 se muestra una comparativa de la calidad conseguida entre el motor interno de Blender y Yafray. Como se puede apreciar en el suelo de la figura de la derecha, el uso de mapas HDRI llevan asociados el calculo de caústicas.




    Autores: Carlos Gonzalez Morcillo y David Vallejo Fernandez
    Archivos adjuntados Archivos adjuntados
    Última edición por 3dpoder; 05-09-2009 a las 16:21
    Si vas a subir un trabajo al foro, hazlo adjuntando la imagen, archivo, vídeo o lo que sea, no publicando enlaces de otros sitios. http://www.foro3d.com/f45/forma-correcta-de-insertar-imagenes-y-archivos-en-nuestro-mensaje-98930.html

    |Agradecer cuando alguien te ayuda es de ser agradecido|

Temas similares

  1. Blender Blender mas Yafaray pathtracing mas Volumetrics
    Por dsth en el foro Problemas con Programas
    Respuestas: 1
    Último mensaje: 28-05-2011, 04:52
  2. guardar mapa de fotones ayuda
    Por carlosall en el foro Render, Iluminación y Cámaras
    Respuestas: 17
    Último mensaje: 05-01-2006, 01:32
  3. Mapa de fotones, que sirve y que no
    Por NELSONAPRENDIZ en el foro Render, Iluminación y Cámaras
    Respuestas: 16
    Último mensaje: 04-01-2006, 19:12
  4. Fotones mas rapidos en Yafray
    Por Caronte en el foro Plugins
    Respuestas: 9
    Último mensaje: 03-12-2005, 19:29
  5. Guardando mapa de fotones en vray
    Por Jose M. en el foro Render, Iluminación y Cámaras
    Respuestas: 7
    Último mensaje: 04-05-2005, 13:17

Actualmente estos son sus permisos de publicación en el foro.

  • -No puedes crear nuevos temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes responder temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes subir archivos adjuntos al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes editar tus mensajes al no estar registrado o no haber iniciado sesión en el foro.
  •