martes, 21 de julio de 2009

Cómo renderizar por zonas en el Softimage

Hola queridos lectores, hacía mucho tiempo que no actualizaba el blog, es que he estado en Mundosvirtuales a ampliar mi conocimiento de empresas y estudiar las posibilidades de ver por fin una salida en España sabiendo solo Softimage.... pero aprendí cosas muy bonitas y pude dar al menos una felicitación en persona a los de Ilion por la labor que están haciendo.

Bien, otro de los motivos por el que me retrasé en actualizar alguna cosilla que otra fue porque esta semana me pillaron para una animación contínua de minuto y medio de duración.

Pues el posteo de hoy viene a raíz de ese pequeño proyecto que hice, ya que se me ocurrió una técnica muy buena para poder ahorrar tiempos de renderizado. Dicha técnica es muy parecida a la que emplea 3D Studio Max para renderizar ciertas áreas de un encuadre, con la solvencia de que con Softimage podemos animar la escala y posición del "Region" en todo momento.

Esto puede parecer una tontería ya que normalmente lo que solemos hacer es un pase donde aislamos el elemento y dejamos el resto ocultos o a lo sumo con sus "Secondary Ray" activados.

Eso está bien cuando se trata de elementos aislados de la escena, pero cuando se trata de largas secuencias de elementos muy costosos de renderizar y que abarcan casi toda la escena, un pequeño ajuste como quitar una máscara o un pequeño cambio de geometría tendríamos que volver a renderizar todo de nuevo en un pase. Con esta técnica podemos en todo momento renderizar solo una porción de la escena y variarla en tamaño y posición para hacer un seguimiento del detalle. En 3D studio Max se puede llegar a reproducir lo mismo (ya que es una solución plástica que no toca ni lenguaje MEL ni Script) pero sería algo más tedioso debido a forma con la que trabaja con Morphers (en Softimage lo llamamos Shapes).


Bueno ahora sin más vacilamientos vamos a explicar el pequeño tutorial. Lso pasos son muy sencillos, pero hay que compaginarlo con muchas imágenes y explicaciones para que se pueda comprender... lo siento mucho.


1- CASO HIPOTÉTICO DEL PROBLEMA:

Imaginemos un caso de una fuerte simulación de oleada en las que queremos que vaya un modelo de un lado a otro y lo renderizamos.... en este ejemplo tardé 3 minutos, pero para cuando nos contraten para hacer una animación seria seguro que tardaremos cosa de 3 horas y sin poder tocar mientras el Softimage....




Pero claro luego clamamos al cielo cuando descubrimos que hay una máscara de un elemento que se nos olvidó poner en sus priopiedades que no lo queremos renderizar.... si fuera añadir un elementos no pasa nada porque se renderiza solo el elemento en un pase y ya está, pero en este caso es una máscara que está ahí arruinando el proyecto... en este caso hemos supuesto un lapsus, pero la técnica también soluciona en los casos de que queramos variar la geometría de enmascaramiento.

En pipeline estandard lo que haríamos sería pedir más tiempo y volver a gastar 3 horas de rendering mirando la pared, pero en este caso vamos a salvar una cantidad considerable de tiempo haciendo lo siguiente.....


2 - CREAR EL PASE DE CORRECCIÓN


Una vez visto las orejas al lobo cogemos y hacemos un pase de corrección, que consiste ni más ni menos que un duplicado del pase original en el que especificaremos el intervalo de frames a renderizar, que serán precisamente los que tenemos que corregir eliminando la máscara. Con eso solo ahorramos frames a renderizar.





Luego lógicamente modificamos las propiedades del elemento a corregir.... en este caso la partición del disco hacemos que no se pueda renderizar.



3 - CREAR LA MASCARA DE RECORTE DE LA IMAGEN





Para la máscara de recorte de la imagen lo que haremos será un grid de 3X3 que colocaremos justo en frente de la cámara y eliminamos el polígono del centro. A continuación con el CnsComp activado le hacemos un Constraint de Pose para que siga la cámara allá donde encuadre. Como material le pondremos un Constant negro con su alpha en 0 para que lo que haya fuera de la región a renderizar lo pinte de alfa plano.



También sería muy recomendable, por si las moscas, que en sus propiedades de visulización sólo tengamos activado los Primary Ray... por si lo renderizamos con final gathering o haya una luz detrás de la cámara etc....

4 - TRACKEAMOS LA ZONA A CORREGIR:

Cogemos los puntos del hueco del centro y dentro del SHAPE MODELLING MODE y por medio de transformaciones básicas como traslación y escalado situamos la "máscara de región" sobre el primer frame a corregir.

Acto seguido con el Grid seleccionado le damos a ANIMATE>Deform>Shape>Store and Apply Shape Key. Esto lo que hace es crear un Shape con un Weight dentro de la escena con la forma con la que hemos movido la geometría del Grid.

Luego vamos moviendo como veamos los puntos del agujero de tal manera que sigamos enfocando el fallo a corregir de la escena y hacemos el mismo paso que el anterior para aplicar KEY SHAPES a esa geometría.


El resultado de eso es que tenemos un GRID que siempre se mantiene en línea con la cámara y que tiene un agujero que enfoque el fallo a corregir lo largo de la animación.




5 - RENDERIZAR

A continuación renderizamos el pase de corrección que hemos hecho. Sólo renderizará todo lo que haya dentro del agujero y el resto lo rellenará de manera casi automática de alfa. En el ejemplo que hice se redujo los tiempos de render en 2 minutos sobre 3 (dos tercios de reducción de tiempos O__O).



6 - APLICAR LA CORRECCIÓN EN LA POSPO:

Una vez que tenemos el pase de corrección hecho solo tenemos que coger y por medio de un Over o alguna aplicación parecida de otro programa lo ponemos encima del pase original




CONCLUSIÓN:

Esta técnica que hemos hecho puede parecer una tontería, de hecho lo es, pero es una tontería que nos hace ahorrar una cantidad de tiempo de renderizado para correcciones cíticas de grandes escenas por modificaciones que solo se puede corregir renderizando otra vez todo.

Bien espero que haya gustado el tuto y sobre todo que os sea muy provechoso.

No hay comentarios:

Publicar un comentario