plx_0

Investigando un poco, el cómo renderizar más rápido una animación en Blender, me encontré con algunas herramientas muy útiles, llamadas Distriblend y LokiRender, ambas programadas en java, que permiten la creación de una red distribuida de ordenadores para renderizar en paralelo uno o varios ficheros de Blender. Pero luego buscando un poco más, encontré que Blender ya trae esta opción incorporada, llamada Network Render (NR). Con esta opción podemos hacer exactamente lo mismo que los anteriores programas haciendo solamente, uso del Blender.

Este tipo de trabajo, permite que el tiempo de renderizado de una animación sea inversamente proporcional al número de máquinas que trabajen en paralelo, ya que a mayor cantidad de máquinas menor será el tiempo de renderizado total.

El funcionamiento general de esta herramienta es muy fácil. Contamos con una máquina Master (Maestra), la cual es la encargada de distribuir el trabajo entre los Slaves (Esclavos), encargados estos de hacer el trabajo (dígase renderizar). Y por último los Client (Clientes), que seríamos nosotros, somos los que enviamos nuestras animaciones al Master. A continuación mostraré como podemos configurar estas opciones en Blender:

Configurar Master
  • Abrir Blender y en la opción de Render Engine, seleccionar Network Render.
  • Seleccionar Master del Modo de operación.
  • Opcionalmente se puede seleccionar la dirección IP y el puerto, aunque esto lo hace por defecto el Blender.
  • Seleccionar Start Service (Comenzar servicio). Esto nos abrirá una ventana de renderizado en blanco y una línea de estado del renderizado reflejando las acciones del servidor.
  • El Master puede ser detenido presionando Esc, como si fuera la cancelación de un render normal.

img1Cuando el Master está ejecutado, este nos presenta dos interfaces web que nos  proveen información sobre los Slaves y los trabajos en progreso. Una de estas interfaces está en la dirección http(s)://dirección_ip_Master:Puerto_Master/ y otra un poco más agradable a la vista en la dirección http(s)://dirección_ip_Master:Puerto_Master/html/newui/.

img4

Configurar Slave(s)

  • Abrir Blender y en la opción de Render Engine, seleccionar Network Render.
  • Seleccionar Slave del Modo de operación.
  • Opcionalmente se puede seleccionar la dirección IP y el puerto, aunque si no seleccionamos ninguno, este automáticamente detecta el Master en la red (si hay alguno).
  • Seleccionar Start Service (Comenzar servicio). Esto nos abrirá una ventana de renderizado en blanco y una línea de estado del renderizado reflejando las acciones del Slave.
  • El Slave puede ser detenido presionando Esc, como si fuera la cancelación de un render normal.

img2Configurar Client

  • Abrir el .blend que deseamos renderizar y confirmar las propiedades de renderizado (tamaño, etc).
  • Salvar el archivo (este archivo va a ser el enviado a renderizarse).
  • En la opción de Render Engine, seleccionar Network Render.
  • Seleccionar Client del Modo de operación.
  • Seleccionar la dirección del servidor Master y el puerto, o presionar el botón “Refresh” para escanear los servidores en nuestra área de trabajo.
  • Presionar Send Job (Enviar trabajo), para ser atendido por el servidor Master.
  • El resultado final es mostrado una vez que damos pausa o cuando se termina el trabajo.

img3Es posible si lo deseamos, ejecutar el Master, El Cliente y el Esclavo en un mismo sistema operativo.

Bueno esto es todo, proximamente publicaré algo más sobre cómo utilizar los programas Distriblend y LokiRender, así como permitir su descarga para los interesados.

Más información:

http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Performance/Netrender