en la técnica de radiosidad ([radiosity) esta técnica se calcula el intercambio de luz entre superficies difusas. Esto se consigue subdividiendo el modelo en pequeñas unidades denominadas parches, y estos a su vez en otras unidades más pequeñas elementos, que serán la base de la distribución de luz final. Inicialmente los modelos de radiosidad calculaban las interacciones de luz entre superficies difusas (aquellas que reflejan la luz igual en todas las direcciones), aunque existen modelos más avanzados que tienen en cuenta modelos de reflexión más complejos.
figura 01. empleo del método de radiosidad.
El modelo básico de radiosidad calcula una solución independiente del punto de vista. Sin embargo, el cálculo de la solución es muy costos o en tiempo y en espacio de almacenamiento. No obstante, cuando la iluminación ha sido calculada, puede utilizarse para renderizar la escena desde diferentes ángulos, lo que hace que este tipo de soluciones se utilicen en visitas interactivas y videojuegos en primera persona. En el ejemplo de la figura 1 (a), en el techo de la habitación se encuentran las caras poligonales con propiedades de emisión de luz. Tras aplicar el proceso del cálculo de radiosidad obtenemos la malla de radiosidad figura 1 (b) que contiene información sobre la distribución de iluminación entre superficies difusas. En la figura 1 (c) puede verse el resultado de renderizar la malla de radiosidad.
El modelo de radiosidad es independiente del punto de vista, lo que hace que este tipo de soluciones se utilicen ampliamente en visitas arquitectónicas y en escenarios de videojuegos interactivos.
En 1988, [Cohen introdujo una variante de cálculo basada en el refinamiento progresivo que permite que la solución de radiosidad encontrada en cada iteración del algoritmo sea mostrada al usuario. Este método progresivo es un método incremental que requiere menos tiempo de cómputo y de almacenamiento, en cada iteración se calcula la interacción entre una superficie y el resto. Este método al final tiende a la misma solución que el original, proporcionando resultados intermedios que van siendo refinados. Blender implementa este método de refinamiento progresivo.
En general, el cálculo de la radiosidad es eficiente para el cálculo de distribuciones de luz en modelos simples con materiales difusos, pero resulta muy costos o para modelos complejos (debido a que se calculan los valores de energía para cada parche del modelo) o con materiales no difusos. Además, la solución del algoritmo se muestra como una nueva malla poligonal que tiende a desenfocar los límites de las sombras. Esta malla poligonal puede ser inmanejable en complejidad si la representación original no se realiza con cuidado o si el modelo es muy grande, por lo que este tipo de técnicas no se utilizan en la práctica con modelos muy complejos.
Uso en Blender.
Al inicio de la sección se ha comentado que el método de radiosidad calcula el intercambio de luz entre superficies. Por tanto, serán las superficies las que deban tener propiedades de emisión de luz. Como vimos en la tercera sesión del curso, hay un parámetro de los materiales dentro de la pestaña Shaders llamado emit que sirve para indicar las cantidad de energía luminosa que emite un material. Sera este parámetro el que emplearemos para definir fuentes de luz. La dirección y sentido de la iluminación vendrá definida por el Vector normal de la superifice. Por tanto, resultara crítico que el sentido del Vector normal sea el adecuando.
Por ejemplo, si quisiéramos definir un cuadrado en el techo que ilumine una habitación, el Vector normal tendrá que apuntar hacia el suelo. Para representar el Vector normal de una cara debemos estar en modo edición , y en la pestaña Mesh tools more activar el botón draw normals (ver figura 2). El parámetro Nsize indica el tamaño con el que se dibujaran las normales.
Si el Vector normal apunta en la dirección incorrecta, podemos rotar la cara poligonal 180 grados, o bien seleccionar la cara en modo edición y pulsar w Flip Normals (ver figura 2).
Figura 02. ajuste sentido Vector normal.
Una vez tengamos configurada la escena, con las fuentes de luz definidas mediante superficies y materiales con parámetro emit, emplearemos el subgrupo de botones de radiosidad
Que se encuentran dentro del grupo de botones de sombreado
(ver figura 3). Por defecto, la tercera pestaña calculation sólo esta visible después de utilizar el botón collect meshes de la pestaña radio tool. Veamos las opciones más interesantes de cada pestaña.
Figura 03. grupo de pestañas de radiosidad.
Radio render.
En esta pestaña se encuentran las opciones generales de calidad de la solución de radiosidad. Hemires define la resolución de una de las estructuras principales del cálculo de la radiosidad (un hemicubo). El valor por defecto suele ser adecuando para la mayoría de las situaciones. Max iterations define el número máximo de iteraciones para calcular la radiosidad (que, como hemos visto, es un proceso de refinamiento progresivo). Si se deja el valor a 0 (por defecto), Blender parara cuando se alcance el valor de convergencia convergence, que indica el nivel de energía que queda por disparar. En el ejemplo de la figura 3, cuando la cantidad máxima de energía que quede por intercambiar entre superficies sea menor que 0.1, el proceso parara automáticamente. Finalmente los controles de mult y gamma permiten multiplicar el valor de energía y ajustar el contraste de los valores de energía respectivamente. condición de parada condición de parada de radiosidad.
Refinamiento progresivo: el cálculo de la solución de radiosidad puede ser un proceso lento, dependiendo de los niveles de división elegidos y el nivel de convergencia. La solución encontrada en cada momento se muestra de forma interactiva al usuario, que puede parar el proceso cuando quiera pulsando escape. La malla de radiosidad calculada hasta ese instante podrá utilizarse igual que si fuera la solución final.
radio tool.
Pulsando el botón collect meshes, Blender añadirá las mallas poligonales que tuviéramos previamente seleccionadas al módulo del cálculo de radiosidad. Deberemos seleccionar previamente todos los elementos que queramos que intervengan en el cálculo (objetos de la escena y superficies que emiten luz). Hecho esto, aparecerá el panel que veremos a continuación calculation. El botón free radio data de la pestaña radio tool permite liberar de memoria la solución de radiosidad existente (si queremos cambiar parámetros y volver a realizara el cálculo, utilizaremos este botón). El botón replace meshes sustituye las mallas originales por la solución de radiosidad (en general, no es recomendable). En general, es más conveniente utilizar add new meshes que, añade la malla de radiosidad a la escena como un nuevo objeto.
La siguiente lista de botones wire, solid o gour elige el modo de representación interactiva de la malla de radiosidad.
Los parámetros pamax, pamin, elmax y elmin configuran el tamaño máximo y mínimo de los parches y de los elementos. El botón de limit subdivide realiza manualmente la subdivisión en parches y elementos. En general, no es necesario pulsarlo, ya que se realiza automáticamente cuando se inicia el cálculo de la radiosidad mediante el botón go de la siguiente pestaña.
Calculation.
El botón go permite iniciar la simulación de radiosidad. Una vez que tenemos la malla de radiosidad calculada, con los botones Facefilter podemos suavizar más la solución, element filter suaviza los bordes de las sombras, y removedoubles optimiza los elementos vecinos cuya diferencia de color es menor que la especificada en Lim.
Ejemplo de uso: Cornell box
[URL=https://www.foro3d.com/attachment.php?attachmentid=112642&stc=1&d=1252152 15
Ficheros asociados a este ejemplo [/url].
En el siguiente ejemplo de uso utilizaremos el fichero de ejemplo de la escena de la caja de Cornell. Comenzamos añadiendo un plano en el techo de la habitación
Video: 00:15, definiendo la dirección del Vector normal correctamente
Video: 00:45. Añadimos un material de color blanco con propiedades de emisión de luz
Video: 01:05. Seleccionamos todos los objetos de la escena a
Video: 01:17 y pulsamos collect meshes
Video: 01:22. A continuación pulsamos go
Video: 01:29 con los valores por defecto. Blender inicia el cálculo de la solución de radiosidad. Al utilizar un esquema adaptativo, en cada iteración calcula la contribución de la superficie que aporta más energía radiante a la escena (al principio
Video: 01:30 - 01:35 es la luz del techo). Según va contribuyendo a la escena, esa superficie tiene menos que aportar, y entonces comenzara a calcular el intercambio de energía indirecta entre superficies
Video: 01:35. La primera superficie que aporta energía al resto de la escena es el techo de los dos cubos, porque fueron los que recibieron más energía en las etapas anteriores. Posteriormente se calcula la interacción de las paredes con los cubos, etc. Por esa razón, la pared roja de la izquierda tinta del mismo color la cara izquierda del cubo.
Después de un rato de cálculo, pulsamos escape
Video: 02:33 (de igual modo podíamos haber dejado que acabara la simulación), y pinchamos en add new meshes
Video: 02:52. Sin deseleccionar la malla de radiosidad, la movemos a otra capa
Video: 02:55. Como ya tenemos la solución de radiosidad en una malla calculada, podemos liberar los datos que haya en memoria free radio data
Video: 03:03. En la capa donde hemos movido la solución de radiosidad, podemos habilitar la representación texturizada
Video: 03:10 y comprobar cómo el cálculo de la iluminación esta asociado a la malla poligonal, permitiendo su representación interactiva independiente del punto de vista. El tiempo de render de la escena es menor a 1 segundo
Video: 03:25.