viernes, 13 de marzo de 2009

Tutorial: Crea cientos de arboles en 3dstudio Max con Vray Proxy.

Vray Proxy es una herramiente que nos permite exportar en formato VRAY un objeto para luego poder duplicarlo en nuestra escena con todas las caracteristicas de Vray pero muchisimo menos pesado. De esta manera podemos generar cientos de copia de ese objeto sin que nuestra pc explote.

Primero seleccionamos el objeto que queremos exportar, botón derecho y Vray mesh export:








Nos aparecerá este diálogo:
Aquí seleccionaremos la ruta donde queremos guardar el archivo y su nombre.
Pondremos que lo exporte como un solo archivo, y de hecho, lo que estemos
exportando será un único objeto, luego explicaré por qué.

También activaremos “automatically create proxies” si queremos que el objeto
exportado sea reemplazado directamente por un proxy, si no, pues lo dejamos
desactivado.

Para importar ese proxy en otra escena los pasos son muy sencillos:
Panel crear, vray, vray proxy…













Solo tenemos que seleccionar la malla que hemos guardado antes y plantarla donde nos de la gana. Podemos decir que en el visor nos muestre el proxy creado, que no es mas que una versión optimizada del modelo completo, o que nos muestre una caja, lo que mas nos interese. Si luego entramos en el panel modificar podemos cambiar esas opciones, incluso seleccionar otra malla:

















Y con esto ya tenemos nuestro objeto proxy. No pesará tanto en el visor y nos ofrece otras ventajas que veremos a continuación.
Este sería nuestro proxy:











En este caso se parece mucho al objeto original, pero con cosas mas complejas no será así, veremos poco mas que lineas que definen la forma en general.

Cosas a tener en cuenta a la hora de trabajar con proxys:
-Cuando exportemos una malla, es importante que la coloquemos en el centro del espacio de trabajo, es decir, en las coordenadas 0,0,0 y con el pibote centrado en su base. Por qué? porque ahí colocará el pibote al exportarlo, si creamos un proxy de un objeto que está lejos del origen, al importarlo después nos lo colocará con ese desfase en el espacio, asi que nos será mas dificil encontrarlo y colocarlo en una escena grande. Se puede, pero siempre será mas cómodo hacerlo así. Si creamos un proxy de un arbol 3m por encima del suelo, al importarlo también estará 3m por encima del suelo, 3m encima de su pibote.

-Si queremos crear mas copias del mismo proxy, podemos clonarlo sin tener que crear otro, pero siempre con instance, si solo lo copiamos desaparece.

-Al exportarlo debe ser una única malla editable, si son varios objetos y lo exportamos como un unico archivo se cargará los materiales. Y si son varios objetos y lo exportamos como varios archivos, nos creará un montón de archivos que serán un coñazo de importar después.

-”Es un rollo crear un objeto complejo hecho de varias piezas y tener que ponerle materiales por id”. Pues si, es un rollo, y no hace falta, mucho mas sencillo:
Creas tu escena, por ejemplo, una casa con sus muros, puertas,
ventanas, cristales, etc. Mapeas y texturizas cada objeto como te de la gana.
Luego simplemente seleccionas todos los objetos y los colapsas dejando una única malla editable formada de varios elementos. En el editor de materiales si seleccionamos su material veremos que ahora es un multi-subobjeto creado por todos los que teníamos antes. Así nos queda una malla editable única pero perfectamente mapeada y texturizada. Ahora ya la podemos exportar tranquilamente.
*edit: No vale seleccionar los objetos y colapsarlos todos juntos, tendremos que hacerlo con attach.

-”Al importarlo no se me ven los materiales”. Claro, el material no viene con el paquete al exportarlo, para eso tienes que guardarlo en la escena desde la que lo exportaste, importarlo en la nueva y aplicarselo al proxy. Además ahora si cambias los materiales, te cambiarán en el proxy creado, logicamente.

-No puede haber modificadores al exportar, tiene que ser una malla editable, no los respeta. Del mismo modo no se le pueden aplicar modificadores al proxy importado. Tampoco puede estar animado, no importará la animación, una pena.

-”Tengo una escena con proxys y ahora quiero cambiar algo de uno”. Pues muy fácil, crea otro y sobreescribes el viejo, en la escena se actualizarán automáticamente.
Esto es muy util si por ejemplo en una urbanización tienes 100 casas iguales.
Puedes hacer un proxy de una casita básica, con solo los muros, seguir con el terreno, y cuando quieras, crear la casita definitiva y sobreescribir la malla exportada anteriormente.

Ahora un ejemplo de su capacidad:
Los proxys no solo son buenos por agilizar el trabajo solo a la hora de actualizar partes y cosas así. También liberan mucha memoria y hacen que puedas renderizar toda la geometría que te de la gana.
En este ejemplo vamos a ver lo útiles que son para los árboles. Primero he
creado un árbol con Onyx, lo he plantado en el medio del espacio y en el botón “Adjust” en la pestaña modificar, le he activado las casillas UV.
Por defecto los árboles de Onyx vienen coloreados, y no son tan feos de lejos, pero nosotros vamos a aplicarle texturas detalladas. Al activar las casillas UV nos ha creado un mapeado para cada parte del arbol (troncos, ramas, hojas…)
Asi que simplemente adquirimos su material en el editor de materiales y vamos cambiando los que vienen hechos por defecto. Vienen nombrados, asi que es facil identificarlos. Evidentemente en las casillas en las que ponga “non-existent” no hará falta. Para el resto, si creamos materiales vray, mejor que mejor.
Por lo general, pasad de ponerle bump, ralentiza el render y el resultado no es tan espectacular, a no ser que estemos demasiado cerca, eso según vuestro criterio. Para las hojas, podemos usar un material Vray2sidedMtl para que tenga distinto material en cada cara de la hoja. Las hojas ya tienen forma de hoja, asi que no hace falta molestarse en aplicarle los mapas de opacidad, solo lo haríamos para un primerísimo plano. Eso si, aseguraos de que la textura de la hoja, la cubre completamente o se verán zonas blancas o negras (según la textura que usemos) en los bordes de las hojas.
Y aquí una imagen de nuestro arbolito:
Este es un arbol de onyx texturizado tal cual. Ahora veamos que pasa si lo clonamos:
Aquí tenemos 25 árboles de onyx. Si queremos hacer un bosque, una
urbanización con muchos árboles o algo así, esos no son suficientes.
La ventaja que tienen es que se pueden hacer aleatoriamente de una manera muy sencilla con un simple click, y además podemos animar para que las hojas se muevan con el viento. La desventaja es que no podemos poner muchos.
Por eso vamos a crear un proxy. Con el método descrito al principio creamos un proxy de un arbol. Y en la escena que queramos lo importamos. Recordad que hay que importar también el material y aplicarselo al proxy, si no no tendrá material. Ahora ya podemos clonar el árbol tantas veces como queramos.
Ejemplo:
Aquí hay 10.000 árboles, a 154.937 polys cada árbol, 1.549.370.000 polys renderizados sin despeinarse!!!
Algunos pensaréis que es una mierda porque todos son iguales. Pues bien,
haces mas tipos distintos de árboles, o simplemente rotas y escalas después de clonarlos, aunque una solución también es colocarlos con onyx de pocos en pocos en la escena final, con “Randomize” activado, y convertirlos todos juntos en un proxy. Así tendremos grupos de árboles y se notará menos que están repetidos. Además, así te ahorras tener que importarlos y colocarlos después, y el material ya viene aplicado (mejor haces uno, creas los materiales y luego haces el resto).
Ejemplo (así se ven los proxys de los árboles):
Y así se ven 25 árboles completamente distintos convertidos a proxys:

Bueno, pues hasta aquí esta guía de como usar los proxys mas o menos.
Siento que sea tan largo, quizá no debí meterme tanto con los arbolitos de onyx, ya que no era el propósito, pero bueno, nunca viene mal. Ahora imaginad todo lo que podéis hacer con esto, árboles, plantitas, casas, edificios completos…
briznas de hierba tal vez? no se, experimentad y postead algo a ver que sale.
Y ya saben, a partir de ahora cuando tengáis una escena muy pesada y tengáis problemas con errores de vray al renderizar pues nada, proxy al canto y a tirar millas.

4 comentarios:

  1. muy claro todo, muchas gracias por compartirlo.

    un saludo

    ResponderEliminar
  2. Esta demasiado Bueno,
    Me sirvio de mucha ayuda.

    Gracias

    ResponderEliminar
  3. Hola, no soy muy bueno en Max, pero algo entiendo. Lo que no entiendo es esto que dices: "seleccionas todos los objetos y los colapsas dejando una única malla editable formada de varios elementos"

    ResponderEliminar
  4. A lo que se refiere es que al final solo tiene que tener un objeto, ya sea haciendo un collapse o un atach. Si tienes un arbol formado por un objeto tronco con su material, un objeto ramas con su material y un objeto hojas con su material, lo que se dice es que tienes que tener un solo objeto formado por los tres con un material multiple formado por el tronco, las ramas y las hojas.

    ResponderEliminar