5.4. RadiosidadEn 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 éstos 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 costoso 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. 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 costoso 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 BlenderAl inico 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. Será 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, resultará crítico que el sentido del vector normal sea el adecuado. ![]() Figura 02. Ajuste sentido vector normal. 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 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). 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 ![]() Figura 03. Grupo de pestañas de Radiosidad. Radio RenderEn 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 adecuado 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 parará 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 parará 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.
Radio ToolPulsando 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. CalculationEl 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
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 Después de un rato de cálculo, pulsamos Escape Player
|