Motores de iluminación
Rendrib
La página natal de BMRT es http://www.bmrt.org y allí encontraremos a la versión 2.4 de este paquete. Lo cierto es que en el momento de escribir estas líneas ya ha aparecido la 2.5, pero aún no está terminada la versión para Windows. Al descomprimir el fichero zip con el paquete se creará un árbol de subdirectorios dentro del directorio raíz de la instalación. Por ahora nos bastará con saber que los programas se guardarán en el subdirectorio bin, los ejemplos en el subdirectorio examples y la documentación (en formato html) en el subdirectorio doc.

Dicho esto vamos a hacer nuestra primera prueba: desde el entorno de Windows hay que abrir la carpeta examples y pinchar dos veces sobre el fichero teapots. Como este fichero es un rib deberá estar asociado al programa rendrib situado en el subdirectorio bin. Por esta razón automáticamente se abrirá una caja de MS-DOS y el programa comenzará a generar un archivo tif con la imagen en proceso. Hay que editar las propiedades del fichero si se quiere grabar la imagen o no. Otra posibilidad es que abramos una ventana de Windows, nos situemos en el subdirectorio examples e impartamos una orden parecida a esta:

C:\bmrt\bin\rendrib teapots.rib

"Rendrib" no es precisamente un programa de corte moderno, pero lo importante son los resultados. A continuación veremos cómo podemos controlar el render: muchas veces los ficheros rib (que son archivos ASCII normales) tienen incluidas instrucciones especificando la resolución a que debe generarse el render. Si estas instrucciones no existen, el render se lanzará por defecto a 640*480 pixeles. Esto puede cambiarse con una orden como esta:

rendrib -res 320 240 teapot.rib

Pero el comando -res será ignorado si el fichero incluye sentencias de resolución. (Por ahora no sabemos cómo cambiar ésto).

Por defecto, "Rendrib" crea siempre un fichero tif con la imagen pero podemos limitarnos a generar la imagen en el monitor con el comando -d (rendrib -d teapot.rib). Y podemos añadir un valor a este comando para que el render se efectúe a intervalos de x pixeles, luego a x/2 pixeles y así sucesivamente hasta concluir el render. De esta manera, podremos hacernos una idea de cómo va a quedar la escena mucho antes de que finalice el render. (Probad con rendrib -d 16 teapot.rib). También se pueden emplear los comandos -stats, que genera información estadística sobre el render, y -v, que indica otros datos.

Por defecto, "Rendrib" utiliza trazado de rayos para generar las escenas. Si queremos emplear también radiosidad tendremos que añadir el comando -radio y darle como parámetro el número de pasos a realizar. Una de las limitaciones del trazado de rayos es que no hace cálculos de reflexión difusa, lo cual es una limitación importante ya que es este tipo de reflexión la que crea la llamada iluminación ambiental (que muchos renders calculan de una manera muy tosca, sumando un valor constante a las superficies donde no llega la luz directa). Esta iluminación ambiental existe gracias a que los rayos de luz rebotan en las superficies como bolas de billar. Lo hacen innumerables veces, debilitándose poco a poco, y son estas múltiples reflexiones las que hacen que, por ejemplo, haya luz en un patio (al aire libre) donde no cae directamente la luz del sol. Así pues, con una orden como la siguiente:

rendrib -radio 50 teapots.rib

"Rendrib" realizará un preproceso de la distribución de energía de la escena con 50 pasos. Cuanto mayor sea el valor asignado a -radio y más regulares las proporciones de los objetos de la escena, mejor resultará el experimento. (Si ordenamos un render de la mesita de noche de un dormitorio, el render resultará bien, a menos que demos un valor muy bajo a -radio. Si, en cambio, pretendemos renderizar a una hormiga que camina por la mesita, entonces la cosa será más difícil). Naturalmente el tiempo de preproceso será siempre el mismo para una escena dada, sin que importe la resolución a que ordenemos el render. En definitiva, estos comandos son suficientes para los primeros experimentos, pero podéis consultar el fichero rendribdocs.html para más detalles.

Ejemplo de luz difusa con LightFlow
Ejemplo de la radiosidad del render de BMRT
El cristal y los liquidos con LightFlow
Una muestra del trabajo de Petrov
Anterior Siguiente