Tiempos de render

En la charla de ayer de los técnicos de Minimo, hablaron de tiempos de render por frame de hasta 80h en películas como Avatar o John Carter of Mars, eso con granjas de render con Xeons, Opteron o Core i7 extremes de última generación y sin problemas de memoria.
Cuando se contrastan estas cifras con los renders en tiempo real de los videojuegos, como en el ejemplo que enlazo a continuación, uno se pregunta hasta qué punto se ha llegado a complicar el CGI para que en algún plano haya muchísimos más polígonos incluso que píxeles.
[youtube=http://www.youtube.com/watch?v=KLd8kEQJIzw]
Hace unos años tuve acceso a una estadística de la render farm de Dreamworks animation, donde se explicaba que con el paso de los años, los tiempos de render por frame se habían mantenido casi constantes en más de 20 años (desde los tiempos de PDI).

4 comentarios sobre “Tiempos de render

  1. En realidad el tiempo del render no se debe a mayor carga poligonal. Puedes tener una escena con 100 millones de polígonos que se renderizará muy rápido sin que le apliques materiales.

    Es más una conjunción de la resolución de salida, más las texturas usadas, los materiales, efectos, etc, etc. Obviamente el render en tiempo real de los videojuegos está optimizado para eso, tiempo real. De ahí que den más el «cante».

    Ultimamente se usan sistemas de cacheados de sombras y etc, con lo que parece que hay más calidad, pero en realidad son pequeñas trampas. Pero sí, resulta curioso que las gráficas tengan mayor potencia en coma flotante.

    De hecho es lo que se está haciendo ahora, migrar los motores de render de los Softwares de animación 3D para que se use CUDA, infinitamente más eficiente que cualquier microprocesador.

    Además, una escena típica de animación 3D en pelis no se hace de una pasada, sino que se realiza por «capas», que luego el montador afina. Eso hace que el tiempo de render se multiplique pues a veces puedes llegar a tener hasta 20 o 30 capas, más luego los efectos que les apliques a nivel global.

    Hay muchísimo trabajo de muchísima gente bajo el mundo de los efectos especiales y la animación 3D, y no siempre se les valora como debe.

    Por cierto, el enlace está mal, a mí me redirige a una playlist de videos que no es mía, desde luego…

    1. Gracias por la aclaración. Hago yo unos comentarios a tus comentarios:
      El tema de las capas no es actual, en una visita que hice a D2 en el 95, para un plano tenían ya entonces 80 capas, con la versión interna de lo que ahora es Nuke.
      El trabajo no es de los montadores, sino de los compositores.
      CUDA y microprocesador no se pueden mezclar.
      CUDA es un lenguaje de programación propietario de nVIDIA que se ejecuta en microprocesadores. Una versión
      abierta de lenguaje de programación paralela sería Open CL.
      Hay microprocesadores que son GPUs, otros son CPUs, otros son microcontroladores y además hay arquitecturas CISC y RISC, multiescalares y demás.
      La GPU es buena para procesos en paralelo muy simples, pero la programación para sacarle un buen rendimiento a sus capacidades es muy costosa. La CPU está más pensada para algoritmos más generalistas, y no siempre en todos los casos se saca más rendimiento en 300 cores de una tarjeta nVIDIA que en 300 cores de varias CPUs.
      Respecto al tema de polígonos, a más polígonos mayor tiempo de render en iguales condiciones que otra escena con menos polígonos. La ecuación
      de Kajiya de render define de forma simple y precisa cómo funciona en CG el render. Influye en el tiempo necesario de computación de la integral como bien dices texturas, resolución de salida, pero también antialiasing, shaders, número de luces, punto de vista y según sea un algoritmo basado en scanline, ray tracing, radiosity, o alguna técnica de global illumination, también puede tener mayor o menor impacto la cantidad de polígonos en el
      tiempo de render.
      Hay en todo pipeline tradicional de
      render procesos de culling, tessellation, span generation, hasta llegar al pixel
      shader cuya complejidad de procesado está directamente relacionada con el número y tamaño de los polígonos, y no creo que desde que dejé el CGI profesional hace ahora 12 años, esto haya cambiado tanto como para que las cantidades ingentes de polígonos, voxels o hogels no tengan impacto en los tiempos de render.
      Tras mi largo comentario no quiero decir que una escena con una luz y un cuadrado de 2 triángulos, modelo de iluminación flat para el material y sin textura no vaya muchísimo más rápido en su render que la misma escena con un displacement mapping con una textura de 512×512 aplicado a ese objeto.

      Ahora mismo busco de nuevo el link y lo actualizo en el post.

      1. Hombre, si nos ponemos así, no acabamos nunca…con 20 años de experiencia tresdesera a mis espaldas, puedo comentar los comentarios de mis comentarios 😛

        Estoy en parte de acuerdo, y en parte no…pero ya digo, demasiado largo.

Comentarios cerrados.