Ir al contenido principal

Render Distribuido usando mental ray desde 3D Studio Max en una estación de trabajo SGI

Render Distribuido usando mental ray desde 3D Studio Max en una estación de trabajo SGI

Prólogo

En el 2006 era un chavo entusiasta (más que de lo que soy ahora) a quien le interesaba hacer pruebas y demostrar con hechos qué cosas convenían y qué cosas no para el departamento de Mundos Virtuales y 3D del extinto CEUPROMED. Siempre se me exigía dar lo mejor y por ende trataba de demostrar que las adquisiciones fueran justificables y no solo comprar por comprar, o porque había buenos recursos.
El departamento de 3D era una carta de presentación y arrojaba tremendos resultados, la producción llegó a ser de 3 CDs interactivos con modelos y animaciones en un solo año gracias a nosotros, y especialmente gracias a un servidor, quien se encargaba de revisar y repartir el trabajo para crear los contenidos 3D de los CDs. Razón por la cual se nos "consentía" a la hora de adquirir equipo de cómputo.
En ese entonces no había tareas triviales, se le daba mucha libertad creativa y de investigación a los encargados de cada departamento. ¡Claro! Había unos que eramos más destacados que otros y por ende generábamos envidias tanto dentro del centro como fuera del mismo. Aunque muchas veces compartíamos nuestras máquinas para demostrar el uso de los equipos, no éramos egoístas, ni disfrutábamos de la envidia de otros. Simplemente nos gustaba jugar videojuegos y el 3D. La paga era un buen plus de la cual (por inocencia) a veces surgía el recurso económico para hacer este tipo de pruebas.
El presente es un reporte especial para considerar la compra de un programa de rendereo de gráficas tridimensionales para animaciones. Es solo una prueba y se explican algunos de los procedimientos que en ese entonces tenían que hacerse.
También se explica el material de apoyo que se usó. Agradezco la confianza de DARCO de Occidente, la empresa que me ayudó a hacer este reporte al enviarnos, sin costo alguno, el standalone de Mental Ray, así como la licencia de prueba para tal experimento.

Objetivos

Analizar la compra de una versión standalone de mental ray, si es factible para realizar Rendering Distribuido, y partiendo de esa conclusión determinar qué tan conveniente es comprar y mantener un cluster de render SGI con mental ray instalado y cuál sería su costo.

Introducción

La tecnología de computadoras y redes ha permitido que el trabajo o las tareas de una sola computadora pueda ser distribuido a varias computadoras y que todas saquen un mismo resultado a la vez, a esta tecnología se le conoce como Paralelismo.

Aplicado al 3D el paralelismo permite que el trabajo de una animación pueda realizarse en menos tiempo y que pueda distribuir ese trabajo en varias máquinas, a esto le llamaremos Render Distribuido.

Render Distribuido en Max y Mental Ray.

El departamento de Mundos Virtuales y 3D del CEUPROMED utiliza 3 aplicaciones para poder crear sus animaciones y modelos, y una cuarta para exportar sus modelos a ambientes virtuales. Para el modelado y la animación usamos: 3D Studio Max, Maya y Blender, y para exportar y manejar diferentes formatos y depurar el Deep Exploration.

La parte que nos interesa aquí es la creación de animaciones que posteriormente en otro departamento agregarán el audio y la compresión de video necesarias para esa animación.

Nuestras escenas pueden contar con muchos elementos como: objetos, luces, sombras y materiales (shaders). Cuando una escena es demasiado compleja en ese sentido el proceso para producir un solo cuadro de animación (al cual denominaremos de aquí en adelante Render) se incrementa pudiendo tardar minutos y horas para producirse un solo cuadro, aumentando al hecho de que para una animación se requieren de 30 cuadros para generar un solo segundo entonces esto generaría un retrazo en nuestro trabajo de animación pudiendo tardar semanas o meses en hacer el Render de una animación en una sola máquina. En cambio si ese trabajo puede dividirse en varias máquinas el Render saldría más rápido.

3D Studio Max y Mental Ray son aplicaciones que han sido diseñadas para aprovechar el paralelismo de hardware, y establecer una red de computadoras que permitan sacar adelante ese trabajo en menos tiempo.

En 3D Studio Max existen 2 formas de distribuir render. Una de ellas es usando el software de Autodesk que viene integrado con el 3DS Max que se llama Backburner 2 y la otra es usando las opciones de paralelismo del motor de render que se esté utilizando, en este caso el mental ray.

Mental Ray utiliza el protocolo TCP/IP para distribuir el trabajo de un solo cuadro en los diferentes huéspedes (hosts), estos se configuran en un archivo específico que le indica al Mental Ray del Max qué segmento (bucket) del cuadro se encuentra en proceso (Rendering) al momento de generar la imagen.

Mental Ray al ser multiplataformas permite utilizar Servidores o Estaciones de Trabajo de SGI para distribuir sus render, dado el objetivo de este artículo utilizaremos una estación de trabajo Fuel SGI y una PC.

Material de instalación.

  • Hardware.
    • PC Pentium Xeon Dual de 2.8GHz (HT activado) y 1GB de RAM
    • PC Pentium IV de 3GHz (HT activado) y 1GB en RAM
    • SGI Fuel R16000 de 700Mhz
    • Dongle para seguridad por hardware por puerto serial
  • Software
    • CD de instalación de Mental Ray 3.2 y SPM
    • CD de instalación de 3D Studio Max 6




CD de instalación de Mental Ray, instructivo y dongle de seguridad.

Instalación de mental ray standalone 3.2

Como preámbulo de la instalación podemos decir que tuvimos que prescindir de usar el Max 7.5 que está instalado en todas las computadoras del Departamento de Mundos Virtuales y 3D, ya que ese 3D Studio Max cuenta con una versión 3.4 de Mental Ray y por lo mismo no es compatible con la Standalone 3.2 que usamos para esta prueba. Así que tuvimos que instalar el 3D Studio Max 6 que sí cuenta con una versión 3.2 de Mental Ray y por lo mismo es compatible, de otra forma nuestros renders que manden peticiones a la Silicon Graphics no responderán y el sistema se congelará.

Instalación en IRIX

Seguimos el manual de instalación del CD-ROM que se encuentra en la ruta:
\common\doc\install\install.UNIX.ps
Para la instalación solamente nos preocupamos por la instalación de Mental Ray y por indicarle dónde íbamos a instalar la licencia SPM que autoriza el uso de esta versión standalone.
Menú de instalación en ventana de terminal de Unix.

Términos y condiciones de derechos del software.
Otras opciones de instalación.

Instalación en Windows XP

    Como ya mencionamos, tuvimos que instalar el standalone también en la PC, en esta computadora también instalamos el SPM License Server (Servidor de Licencias), seguimos el asistente de instalación al pie de la letra y configuramos los puertos adecuados.

Proceso de Autorización.

    Una vez instalado el software que se nos dio en ninguno de los manuales trae referencias de qué es el dongle, da por sentado que el usuario debe ser experto para poder instalarlo. Al principio intentamos conectarlo a la SGI, pero se necesita montar el hardware y al parecer el SPM en IRIX no generaba una clave de manera exitosa. Por eso decidimos instalarlo en una PC que fuera nuestro servidor de licencias para agilizar las cosas un poco.
    Una vez instalado no había instrucciones de cómo generar el código de solicitud de licencia para nuestra licencia de prueba, tuvimos problemas al querer generarlo, cambiábamos el dongle del puerto serial 1 al 2 para tratar de solucionar el problema, finalmente introducimos el serial en la caja de texto de autorización y nos generó el código, aunque después no necesitó de eso. Ignoramos la causa del problema. Esto nos dio un retrazo de tiempo, finalmente generamos el archivo, tal como indicaba el manual de instalación de la versión para Windows, ubicado en:
    Entramos a la página de discreet, tal como indica el manunal, para solicitar directamente la autorización pero se tardaron muchos días en responder, finalmente le avisamos a nuestro proveedor y él nos regresó la autorización, este proceso tardó unos 2 o 3 días.
    El archivo venía como attachment y es un archivo de texto, esto dificultó las cosas porque el correo no se desplegaba bien, así que tuvimos que copiarlo directamente del código fuente, lo cual tampoco sirvió pues no venía decodificado como texto ASCII correctamente. Entonces lo re-enviamos el correo a otra cuenta con todo y attachment y desde ahí se pudo copiar el contenido del texto en la caja de texto de la interfaz gráfica del SPM License Server. Nos mandó finalmente un mensaje de exitoso y pudimos pasar a la siguiente etapa.
Ventana de la herramienta de licencia en Windows.

Prueba de mental ray.

    Nos pasamos a la SGI para probar el mental ray ahí instalado, comprobamos que los archivos de configuración respectivos de la SGI tuvieran todo en orden y entonces nos dirigimos al directorio donde se instaló el mental ray, para la prueba tuvimos que ejecutar el comando: ./ray –v. Para poder comprobar si estaba detectando la licencia instalada en nuestra PC. La prueba fue exitosa y pasamos a la siguiente parte.
Ventana de terminal para comprobar instalación.

Desarrollo

Características de las escenas de prueba.

 Para la escena de prueba creamos una esfera primitiva con los siguientes parámetros:

Y agregamos una luz reflector de Mental Ray (mr Area spot light) a la que le ajustamos nada más los parámetros de sombra:
Agregamos un plano debajo de la esfera para que nos quedara una escena de la siguiente manera:
Finalmente agregamos una luz Skylight arriba de la escena para que pueda iluminar todo lo demás y le ajustamos el color en sus parámetros:

Para la parte del motor de render (Mental Ray) configuramos el antialiasing, la iluminación global (GI) y el Final Gather para que el rebote de la luz y los colores de los materiales entre los objetos sea más suave, con más degradados, esto aumentará el tiempo de render pero es precisamente lo que queremos, para ver cómo repartirá los “final gathering points” entre los procesadores.




Finalmente agregamos la IP del servidor SGI en el archivo  “c:\3dsmax6\mentalray\max.rayhost”. Y activamos la casilla de Render Distribuido.

Resultados de la prueba.

En las siguientes imágenes se muestran los resultado de la prueba, primero podemos notar la ventana de mensajes de mental ray que nos sirve para ver qué tantos procesos hizo localmente y qué procesos realizó en la SGI. Enseguida podemos ver el render.


También hicimos otras pruebas con mapas de bits, aquí principalmente quisimos probar las sombras, los rebotes de luz con la Iluminación Global (GI) y los rebotes de luz del Final Gathering que nos permiten agregarle más fotorealismo a la escena. Estos son los datos que se comunicaban entre la conexión del mental ray de max 6 y el standalone.

Conclusiones.


Ventajas y desventajas de mental ray

El simple hecho de usar paralelismo para realizar un proceso es una verdadera ventaja, el trabajo no se verá menguado por una sola máquina, sino que se repartirá entre una red. Cuenta también con una variedad creciente de shaders que permiten simular piel de manera “rápida”, no podemos asegurar qué tan rápido puede ser, porque sabemos que a final de cuentas el render se tardará tanto en salir como polígonos tenga la escena y las luces y los fondos que estén actuando sobre el objeto con SSS (Sub-Surfaces Scattering) o shader de Piel. La configuración puede llegar a ser rápida, pero el render se va a tardar más. Comparado con otros motores de render puede dar cierta libertad para crear shaders, pero a veces es mejor hacer las cosas de la manera más rápida posible y que le render quede de calidad decente pero que no tarde tanto tiempo, aún contando con una granja de render.
    Las desventajas es que a pesar de ser multiplataforma cada vez los sistemas computacionales están mudándose a tecnología Intel, muchas SGI ya usan Sistemas Operativos Linux con procesadores AMD o Intel. También el alto costo comparado con otros motores de render y el servicio de actualización que este tiene.
    No podemos verificar qué tan avanzada está la versión 3.4 y tampoco pudimos probarlo con Maya pues no son compatibles, aquí habría que hacer una prueba con cada versión, ver qué se necesita para hacer compatible una versión standalone de mental ray tanto para max como para maya. Por lo pronto lo que pudimos observar y comprobar es que el mental ray no es compatible con versiones anteriores o superiores, por lo que si se actualiza la versión incluida del 3ds Max o del Maya a 3.5 también tendríamos que actualizar nuestra versión y licencia de mental ray. La desventaja de V-Ray es que aún no hay versión para Linux, ni tampoco hay versión para Procesadores de 64-bits, lo cual es una pequeña ventaja que sí tiene el Mental Ray.

Seguridad en la red.

    Mental Image recomienda que uno tenga bien administrada la red para evitar huecos en la seguridad que deja el motor de render bajo cualquier sistema ya que usa el protocolo TCP/IP y deja 2 puertos abiertos sin seguridad alguna, permitiendo que cualquier usuario pueda entrar al sistema a causar estragos. Mental Images recomienda que el administrador de la red deje que el mental ray tenga acceso a la red local para la distribución del proceso, pero que procure no dejar al sistema el libre acceso a Internet.

Costos.

Si tuvieramos que actualizar nuestra versión de Mental Ray debido a la incompatibilidad con el software de modelado esta nos costaría $995USD por cada procesador (CPU), no por cada máquina. Luego entonces esto sería más caro a la hora de actualizar, pues sus versiones no son compatibles una con la otra. Comparado con V-Ray que es el software que actualmente usamos el costo es realmente caro. La mayoría de los motores de render: Maxwell, Renderman, Mental Ray cuestan exactamente lo mismo: $995USD. Mientras que el V-Ray tiene un costo de $799USD y no importa la cantidad de procesadores que tengan, eso no es todo, V-Ray puede instalarse en cuantas máquinas de Max se tenga y puede funcionar hasta 5 máquinas a la vez en un render distribuido con la misma licencia, lo cual acelera más el trabajo y lo hace más barato.

En resumen:

Desventajas:
  • Alto Costo.
  • Incompatibilidad entre versiones de mental.
  • Tedioso y caro método de autorización.
  • Incompatibilidad entre versiones de Max.
  • Poca seguridad en la red.
  • Tediosa configuración del render.
Ventajas
  • Multiplataformas.
  • Paralelismo.
  • Gran cantidad de shaders.
  • Compatible con sistemas de 64bits.

Comentarios

  1. Interesantes los recursos, además de el despliegue profesional en el ámbito personal.

    ResponderEliminar
  2. Gracias mi hermano. Ya sabemos que son cosas que no todo ser humano valora.

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

Rame Tep, Rame Tep

I searched all over the internet and this is the only full lyrics that I found of the "Rame Tep" chant from the "Young Sherlock Holmes" movie: Rame Tep, Rame Tep! Rame Tep, Rame Tep! Rame Tep, Rame Tep! Rame Tep, Rame Tep! Etare Homentep, Etare Syristep, Etare Homentep, Etare Rame, Rame Tep! Rame Tep, Rame Tep! Rame Tep, Rame Tep! Rame Tep, Rame Tep! Rame Tep, Rame Tep! Etare Homentep, Etare Syristep, Etare Homentep, Etare Rame, Rame Tep! Rame Tep... Rame Tep... El Maltemal, Tey Han De Brahn Mobbit! (Rame Tep, Rame Tep!) El Maltemal, Tey Han De Brahn Mobbit! (Rame Tep, Rame Tep!) El Maltemal, Tey Han De Brahn Mobbit! (Rame Tep, Rame Tep!) El Maltemal, Tey Han De Brahn Mobbit! (Rame Tep, Rame Tep!) El Maltemal, Tey Han De Brahn Mobbit! (Etare Homentep) El Maltemal, Tey Han De Brahn Mobbit! (Etare Syristep) El Maltemal, Tey Han De Brahn Mobbit! (Etare Homentep) El Maltemal, Tey Han De Brahn Mobbit! (Etare Rame, Ra...

"Dos capitanes hunden el barco" ¿Estas de acuerdo con la frase? ¿porque? ¿lo has visto suceder? ¿te ha pasado?

Sí, definitivamente sí, de hecho eso pasa constantemente en mi trabajo donde a veces hay como 3, 4 o hasta 5 capitanes. Así son fáciles los hundimientos de los barcos. Lo peor es cuando los capitanes son también ciegos y no se dan cuenta de esto, dejando hundir aún más el barco. Preguntame de todo (Política, VFX, Chismes) aunque no prometo nada xD :

El cuento del Tornillo (Actualizada 21/03/2024) Origen del cuento.

ACTUALIZACIÓN (21/03/2024): Resulta que el día de hoy me voy enterando que esta historia sí existe y transcribo en español la información que me llegó: ¿Recuerda la historia del ingeniero que pidió un pago de $10,000 USD y lo justificó como $1 USD para girar el tornillo y $9,999 USD para saber qué tornillo girar? Bueno, ese famoso ingeniero existió, su nombre fue Charles Proteus Steinmetz (1865-1923) Una vez, su camino se cruzó con el de Henry Ford. En la planta de Ford en River Rouge había un problema técnico con un generador grande y los ingenieros eléctricos de la planta no podían averiguar dónde estaba el problema. El propio Ford recurrió a Steinmetz en busca de ayuda. Cuando el "pequeño gigante" llegó a la fábrica, rechazó cualquier tipo de ayuda y exigió una libreta, un bolígrafo y un catre. Pasó dos días y dos noches en la fábrica, escuchando el ruido del generador, mientras realizaba innumerables cálculos extraños y complicados. Luego, bruscamente, les exigió que le t...