(c) 1999 Itoo Software www.itoosoft.com

TutorialParte 1Parte 2

Para seguir este tutorial necesitara la escena tut1.max y sus mapas de texturas. Si no lo ha hecho ya, descarguelo de nuestra web.

Añadiendo algunos árboles

Vamos a comenzar abriendo la escena base tut1.max. Desde la camara cam1, hacemos un render para ver la escena de la que partirmos. De momento, para seguir adecuadamente el tutorial, no desoculte ningun objeto y haga el render con las opciones por defecto:

Tenemos una casa de campo, con unas colinas al fondo y un camino que lleva hasta la entrada. Hasta ahora, una escena bastante pobre. Vamos a comenzar por añadir algunos arboles.

El plugin 'Forest' es un objeto paramétrico que podemos encontrar en la categoría 'Itoo Software'. Para esta primera parte del tutorial puede usar indistintamente la version freeware (Forest Lite) o la versión comercial si dispone de ella (Forest Pro). Primero elegimos una vista cenital (top) para tener una mejor vision, hacemos zoom cerca de la casa y creamos el objeto Forest pinchando en algun lugar cerca de ella. De momento, solo obtenemos un icono con una F mayúscula. Este icono indica que el objeto no tiene aun parámetros suficientes para crear los árboles.

Hay dos detalles importantes:

a) Independientemente de en que ventana creemos el objeto Forest, este siempre nos aparece sobre el plano XY, porque es donde se crearán los arboles

b) Este icono (y el propio objeto Forest) no podemos moverlo de sitio. Siempre permanece en el punto original donde lo creamos. Luego veremos como esto no tiene importancia, ya que la posición de los árboles esta determinada por otros parámetros totalmente ajenos a este punto de creación.

Parámetros Generales

A continuación tenemos que definir los parámetros principales para la vegetación. Salimos ahora de la creación de objetos y nos vamos al panel de modificadores para acceder a los parámetros del objeto. En primer lugar, le cambiamos el nombre por defecto (Forest01) a uno más apropiado como: 'Trees 1'. Despues, sacamos el panel de parámetros del árbol (Tree Properties):

Lo primero que tenemos que definir es el tamaño del arbol. Estamos trabajando en metros, y le damos una anchura de 3m y una altura de 6m.

Si hemos intentando anteriormente crear árboles en Max, nos habremos encontrado con que tenemos dos posibilidades de hacerlo:

a) Por una parte, podemos usar modelos con una geometría detallada que normalmente ocupan varios miles de caras. Podremos colocar unos pocos de ellos en nuestras escenas, pero en poco tiempo nos damos cuenta que ocupan demasiado. Impensable rellenar grandes areas de vegetación.

b) También podemos usar un modelo plano formado por muy pocas caras sobre la que aplicaremos una textura de arbol y un mapa de opacidad apropiado. Ocupan muchisimo menos, pero es muy trabajoso rellenar zonas grandes de forma manual y además tenemos que colocarlos mirando hacia la cámara si no queremos que se note el truco de que es un objeto plano. Otra variación de esto es usar un par de planos cruzados con la misma textura. Da algo más de volumen sin ocupar demasiado, pero sigue sin ser perfecto.

Forest puede usar cualquiera de estas tres aproximaciones: un solo plano, dos cruzados o un mesh cualquiera definido por nosotros.

Para nuestra escena, de momento vamos a dejar un solo plano (One Plane) con la opción correspondiente del apartado Geometry (geometría).

Icon Size define el tamaño del icono que aparece cuando creamos el objeto Forest al inicio o cuando faltan otros parámetros imprescindibles para crear los árboles. Podemos cambiarlo para ver como afecta o dejarlo de momento con el valor 10. No tiene mayor importancia.

Random Seed es un valor cualquiera que se usa como semilla para el generador de números aleatorios. Cambiándolo obtenemos distintas variaciones de tamaño, color, etc. de la vegetación. Ahora lo dejamos con el valor por defecto.

Areas

Una vez definidos los parámetros generales, vamos a especificar la zona sobre la que se creará la vegetación. Esto se hace a traves de uno o varios spline. Todavia en la vista 'Top', creamos un cuadrado alrededor de la casa (no importa el tamaño). Volvemos a seleccionar nuestro objeto 'Trees 1' y abrimos los parametros 'Area'. Pulsamos el boton 'Pick' para asociar el rectangulo anterior. Al hacerlo se crean los primeros arboles justo dentro del area definida.

Tenemos que tener varias cosas en cuenta:

a) El spline siempre tiene que formar un area cerrada

b) Si el spline puede estar formado por varios sub-splines, los arboles se crean en el area englobada por todos ellos. Aunque no conviene que estas areas se solapen, ya que en las zonas comunes los objetos se crean dos veces.

Podemos jugar a editar el rectangulo y ver como los arboles se van creando y borrando automaticamente. Tambien podemos convertirlo a un 'Editable Spline' y probar a añadir mas vértices, añadir otros sub-splines, etc.

Este spline también define la posicion Z de los arboles (cuando no se usan superficies), pero todos se colocan a la misma altura, la del vertice situado mas elevado del spline.

A veces puede ser muy util definir además de un area de 'inclusion', un area de 'exclusión'. Todos los árboles que entren en dicho area no se crean. Ese spline tiene que ser un objeto diferente y se asocia con el boton 'Pick' correspondiente. Esta opción solo está disponible en 'Forest Pro'. En 'Forest Lite' el botón esta desactivado.

Antes de continuar, borramos el spline que estabamos usando (solo era un ejemplo). Desocultamos el objeto 'trees 1 spline' (Panel Display -> Unhide by Name) y lo asociamos al objeto Forest. Este spline ya esta ajustado para que los arboles se repartan alrededor de la casa y del camino. Obtendremos una imagen como esta:

Mapa de Distribución

De momento, hemos definido la zona donde se crean los árboles. Ahora vamos a especificar la forma en que se distribuyen en ese area, su densidad, etc. Para ello, accedemos al panel 'Distribution Map':

Para una mayor flexibilidad, la distribución se especifica a traves de un bitmap. De esta imagen se corresponde cada pixel con una posible posición de arbol. Si el pixel es blanco, se crea el objeto... si es negro se deja en blanco. De esta forma podemos crear cualquier distribución que nos interese (mas o menos densa, por grupos, hileras, con un patron concreto, etc.).

El plugin ya incluye una lista de imágenes de ejemplo. Abrimos la lista desplegable y podemos ir seleccionandolas para ver como van afectando a la distribución de objetos. Tenemos las siguientes para elegir:

Very Scattered, Scattered, Spread 1, Spread 2, Dense, Groups 1, Groups 2, Isle 1, Isle 2, Isle 3, Horizontal Band, Vertical Band, Random Bands, Vertical Line, Horizontal Line y Sine.

Podemos observar que las cinco primeras sirven para aumentar la densidad de arboles de forma progresiva. Las otras forman patrones concretos.

En Forest Pro podemos elegir cualquier otro bitmap pulsando en el boton situado bajo 'File Name'. Conviene que sean imagenes pequeñas (100x100 pixels está bien) y en tonos de grises o blanco y negro. Tambien podemos crear nuestra propia lista (consultar manual de referencia, sección Mapas de Distribución). Con la versión freeware (Forest Lite) solo podemos usar los de la lista.

¿ Y de que forma se aplica este bitmap sobre la escena ?. Pues de forma muy similar a como se usan las texturas en Max. La imagen se escala a un tamaño concreto y luego se repite (tileado) en todas direciones. Los parametros de size (tamaño) y offset (desplazamiento) lo definen:

En los valores de Size damos un valor exacto (en unidades de la escena) para escalar el bitmap. En la imagen de la izquierda, por ejemplo, lo tenemos puesto a 240 metros en horizontal por 100 metros en vertical.

La casilla 'Lock Aspect Ratio' bloquea el valor de Y para que la imagen mantenga la misma relacion X/Y. Cambiando el valor de X, el de Y cambiará automaticamente.

En Offset, podemos también ajustar el desplamiento del bitmap sobre la escena hasta colocarlo en la posición deseada.

Si probamos a reducir mucho el tamaño, vemos como la densidad de árboles va aumentando de forma progresiva y como el número de objetos a crear es mayor, el tiempo de calculo y el tamaño de la geometría se eleva. Forest está optimizado en velocidad (aproximadamente 50.000 arboles por segundo en un Pentium II-350), pero para evitar colapsar el 3D Studio, existe varios límites:

Se mantiene una separación mínima entre arboles que se puede ajustar en el parámetro 'Tree Separation'. Por defecto es del 25% de la anchura del arbol. Por tanto, como estan relacionados, al aumentar el ancho del arbol puede cambiar automáticamente el tamaño del bitmap para mantener los límites máximos de densidad. (se puede probar en este caso poniendo un ancho de 10m y vemos como los valores del bitmap cambian a 250m x 250m: 100 pixels * 25% de 10 m = 250 m. No nos olvidemos de volver a poner la anchura en su valor anterior de 3m para seguir el tutorial).

Si queremos apreciar como realmente los arboles siguen los pixels del bitmap, quizás tengamos que usar un area mas amplia y usar un mapa del tipo 'Group'. Con estos valores el efecto se nota mejor.

El último parámetro de este panel (Threshold) indica el umbral en que un pixel se considera blanco o negro. Evidentemente solo para imágenes con tonos de grises.

Para continuar el tutorial vamos a poner nuestro ejemplo con una distribución 'Spread 2'. Tamaño de 240x240 m. Offset a 0,0. Separacion del 25% y Threshold del 50%.

Mirando a la cámara

Vamos a ver como se ven nuestros arboles dese la cámara. Seleccionamos la vista de camara cam1 y ponemos la ventana en modo sólido (Smooth+Hightlights). Tambien abrimos el editor de materiales y le asignamos al objeto Forest el material 'Trees'.

Bien, de momento no se ve mal... si hacemos un render el conjunto queda bastante bien. Pero si probamos a mover la cámara hacia los lados apreciaremos como los árboles planos dan muestra de su verdadera naturaleza (=:-o). Volvemos a colocar la cámara en su sitio (con Undo) y desplegamos el panel 'Camera':

Ahora pulsamos el botón 'Pick' y elegimos la cámara cam1 (con la lista de objetos por nombre si no queremos cambiar la vista actual). Volvemos a mover la cámara y comprobamos como ahora los arboles no se vuelven planos. Si cambiamos a la vista cenital (Top) vemos como lo que hacen es mantenerse siempre mirando hacia la cámara.

Vemos como ahora el efecto de perspectiva se mantiene bastante bien. De todas formas, al hacer animaciones en que se mueva la cámara existen algunas limitaciones de este método y también algunos trucos:

a) Algunas texturas de arboles van mejor que otras. Hay que ir probando hasta encontrar las que dan mejor resultado. Mientras mas regulares y simétricas sean en su forma, mejor.

b) Podemos colocar árboles de mesh en primer plano y Forest en distancias medias y grandes (para cubir superficies grandes). También se puede definir nuestro propio mesh para el arbol con Forest Pro, aunque hay que tener cuidado porque el número de caras del modelo se multiplica por el número de árboles (usar solo modelos simplificados o distribuciones de pocos árboles).

c) Hacer animaciones moviendo el target de la cámara en vez de ésta. En este caso, los arboles no giran ya que la posición de la cámara se mantiene fija (los objetos siempre miran hacia esta).

En algunos casos tambien puede venirnos mejor usar geometria de planos cruzados (Two Planes) y desactivar la opción de mirar a la cámara. En resumen, todo depende de la escena con la que estemos trabajando.

Seguimos con nuestra escena. Vamos a volver a poner la vista cenital (Top) para apreciar un efecto curioso: normalmente la vista de la cámara solo abarca un pequeño número de árboles respecto al area que estamos usando. Es un gran desperdicio crear todos esos objetos si luego no se van a ver.

Activemos ahora la casilla 'Limit to visibility' y vemos como Forest restringe los arboles unicamente a la visión de la cámara. Si movemos está, los árboles se crean dinamicamente solo en la zona requerida. Esta es una característica única de este plugin que nos permite definir extensas zonas de vegetación con virtualmente millones de árboles sin apenas carga del sistema.

También podemos definir un límite de distancia respecto a la cámara (Far Clipping Plane). Los arboles situados a una distancia mayor de este valor no se crean.

Por último, el parámetro 'Expand' permite expandir el area de visión de la cámara lateralmente en un porcentaje dado. Esto se usa cuando en animaciones con movimiento de cámara, algunos arboles pueden aparecer o desaparecer de forma brusca de la escena por los laterales. Con un valor del 20% aproximadamente este problema desaparece.

En este punto podemos situarnos de nuevo en la vista de cam1 y hacer un render para ver el resultado:

Diversidad

Bien, ya tenemos un bonito bosque a los alrededores de nuestra casa, pero vemos que todos los árboles son iguales y eso no queda demasiado real. Vamos a darle un poco de variación con el panel 'Transform':

Aqui podemos hacer variaciones aleatorias de posición, rotación y escalado de los árboles.

En nuestro ejemplo unicamente vamos a a aplicar un cambio de escala. Podemos especificar un rango de variación tanto en altura como en anchura de forma independiente o podemos bloquear la relacion altura/anchura para que se mantenga constante.

Es lo que vamos a hacer, activamos la casilla 'Lock Aspect Ratio'. A partir de aqui se ignoran los valores de variación de anchura y ponemos en altura un rango del 100% al 150% (con respecto a la altura indicada en los parámetros generales del arbol). Inmediatamente vemos como cada arbol toma un tamaño diferente.

Tambien podemos hacer un desplazamiento aleatorio sobre la posición original tanto en el eje X como Y. Los valores vienen dados en porcentaje del ancho del arbol. Esto es util para cuando usamos una distribución muy densa y los arboles quedan repartidos de forma demasiado regular.

Por ultimo, podemos aplicar rotaciones aleatorias sobre el eje vertical de los arboles. El rango va de 0 a 359 grados (no hace nada si en el panel de cámara hemos especificado que los arboles miren hacia ella).

Acelerando el redibujado

Si tenemos una vegetación muy densa en la escena, puede ser muy lento e incomodo de manejar. Con el panel 'Display' podemos optimizar el trabajo:

Aqui podemos encontrar opciones para acelerar el redibujado, tanto para las ventanas como para el render final. Las opciones son las mismas en los dos casos:

En 'Mesh', podemos hacer que se represente la geometría completa o solo un plano por arbol. Solo tiene sentido cuando usamos nuestro propio mesh para los árboles (Tree Properties -> Custom Mesh).

Con Simplification Level podemos reducir el numero de arboles creados. Con el valor 0 se muestran todos, y con 1,2, etc. se va reduciendo su cantidad de forma progresiva.

Por último, podemos indicar un número máximo de árboles (por defecto 100.000). Se usa para evitar que, por error, pongamos una distribución tan densa que 3D Studio se colapse creando árboles.

 

 

continuar tutorial en parte 2