Crear un bosque



PARTES

1. Crear los árboles.
2.El Terreno.
3.Ángulo de Cámara.
4.Colocar la hierba.
5.La Iluminación.
6.Texturas.
7.El Cielo.
8.Renderizados Finales




OBJETIVO: Construir una escena de un bosque en Blender.
CONOCIMIENTOS PREVIOS: Se requiere un conocimiento de nivel medio de esta aplicación, como moverse con suficiente soltura por las ventanas, conocer la herramientas básicas de modelado y texturas, y usar scripts externos. De todos modos son justamente estas partes las que se van a repasar.
SCRIPTS: Revisaremos el uso de los scripts Lsystem y Fiber, el primero para crear árboles y el segundo para la hierba.
RESULTADO: La escena del bosque consistirá en crear unos árboles, posicionarlos en un terreno, poner hierba en este terreno, un cielo, y unos focos de luz para crear los efectos de claro oscuro del interior de un bosque. El objetivo de este tutorial no es que crees un modelo exacto como el propuesto, por eso no se darán los parámetros concretos sino que más bien se trata de que vayas siguiendo la explicación y creando algo parecido pero "a tu aire". Como el tutorial no es avanzado, sino intermedio (bueno, el tutorial y también el nivel de su autor), no buscaremos un resultado hiperrealista, sino algo más divertido: una imagen en modo "pintura" y otra en modo "dibujos animados" con lo que también veremos como conseguir estos efectos.





CREAR LOS ARBOLES

Crear árboles con todas sus hojas no es una tarea pequeña, sobre todo si pretendemos modelar cada tronco, cada rama y cada hoja. A pesar de que existen fantásticas herramientas externas para la creación de plantas que se pueden guardar en formatos populares que Blender importa de forma más o menos directa, Blender en sí mismo no tiene ninguna herramienta interna propia. De todos modos existe un fantástico script en python que es un creador de árboles. Este script es Lsystem y se puede encontrar en http://www.geocities.com/blenderdungeon/index.php. Lsystem está desglosado en varios scripts y elementos para la creación de árboles en un fichero blend. Abrimos el fichero y nos encontramos un pequeño brote que es una malla que usa como "semilla" (¡no lo borres!) para todos sus cálculos y a la derecha la ventana del texto del script. AltP pone en marcha el script que muestra un completo y complejo interface con numerosos parámetros que controlan todo el modelo Lsystem de creación fractal de árboles. El objetivo de este tutorial no es describir todas estas posibilidades, sino dar una visión de conjunto en el uso de Lsystem y Fiber, por tanto experimentad un poco con Lsystem y los árboles que pude crear antes de seguir.






A parte de crear árboles se pueden abrir unos pocos ejemplos que Lsystem guarda en su formato propio. Yo he usado en este caso "tree3.def" que crea un modelo bastante habitual de copa redondeada y tronco de media altura. Al cargar los datos del fichero con el botón LOAD vemos como todos los controles se actualizan, y al pulsar GENERATE tarda un rato pero crea este modelo. Como veis en el pantalla  (imagen precedente) en la sección de texturas este fichero blend lleva una imagen con varios tipos de hojas de árbol. Lsystem crea un tronco y usa su malla para crear planos en modo Duplivert distribuidos por sus superficie. En cada uno de estos planos se incorpora una de estas hojas con sus parámetros de transparencia para el contorno. En modo de render de trabajo (Ctr+Z) se ve un árbol con hojas de "libro", pero cuando se renderiza la imagen final (F12) las hojas ya son de "árbol". Bien, tenemos un árbol, pero un solo árbol no crea un bosque, lo duplicaremos varias veces, hasta 7 en el caso del ejemplo que estoy desarrollando. Al hacer las réplicas hay que tener muy presente que cada árbol está compuesto de dos mallas: el tronco y las hojas (que van todas juntas y al pulsar en una se selecciona toda la copa del árbol). Por tanto duplicar (y mover, girar, escalar, etc) un árbol quiere decir hacerlo al mismo tiempo sobre ambas mallas (o de lo contrario solo moverías el tronco y no la hojas y por tanto se produciría un efecto más pobre).


En la segunda imagen se observa como ya he creado estas 6 réplicas (y vemos un tronco seleccionado). En un bosque real cada árbol sería distinto, pero en vez de crear 7 árboles para nuestro propósito ya es suficiente con uno repetido varias veces. Para que no se vean todos muy paralelamente posicionados he girado cada uno sobre su eje Z (es decir girados sobre su tronco) para que cada uno de los árboles que estén a la vista muestren ángulos distintos y así parezcan diferentes.





EL TERRENO

Habrá que crear el suelo y la hierba, y para estas cosas a mí me gusta situar cada cosa en un plano distinto. Paso a la capa 2 y allí creo un Grid, es decir un plano ya subdividido. Para crear el relieve del terreno, tal como es explicado en muchos otros tutoriales, es suficiente con asignar una textura de Clouds con detalle grueso (Noise Size 0.422 y Noise Depth 1, en modo Hard Noise). No olvidéis de cambiar en el modo Material en la pestaña Map to a Negro y el color del material a blanco para crear un gran contraste que permita crear el volumen de la malla. Estos terrenos se crean ahora con el botón Noise del cuadro Mesh Tools tal como se explica en el tutorial "Modelado rápido de paisajes" de Oliver Sajara y traducido por Javier Ferrer (y hospedado en NicoDigital), excepto que en vez de crear la textura nebulosa del relieve en Gimp he usado aquí las mismas capacidades internas de Blender.






Cuando tengas un relieve de terreno que te parezca apropiado distribuiremos los árboles por su superficie, poniendo especial interés en su altura sobre el terreno, subiendo o bajando en el eje Z cada árbol que lo requiera (y de nuevo no te olvides de seleccionar tanto el tronco como las hojas).







ANGULO DE CÁMARA

El fichero ya comienza a tener un peso considerable en vértices, momento que he aprovechado para buscar un ángulo para la cámara. He colocado la cámara en el lado opuesto en que el borde del terreno se eleva, y así esto hace de fondo para los árboles. La última imagen muestra el encuadre del bosque (de 7 árboles) en modo de malla, con la cámara cerca del suelo. Esta escena es grande y puede suceder que la cámara no tenga campo hasta el fondo, por tanto mejor que en el cuadro Camera nos aseguremos de hasta donde abarca ésta. Show Limits dibuja una línea cubriendo esta distancia, que llegará hasta donde diga el parámetro ClipEnd.

Como se ve en la imagen siempre coloco la cámara y las luces en la capa 10, bien separados del resto de las capas, porque eso me permite ver como interaccionan con cualquier otra capa, en especial las distancias que cubre cámaras y luces con respecto de las mallas más grandes. En este fichero he puesto los árboles en la capa 1, el terreno en la capa 2, la hierba en la 3, una cúpula de cielo en la 6 y las luces y cámara en la 10 (los números concretos de capa ya son una manía personal mía).





COLOCAR LA HIERBA

Ahora colocaremos la hierba. Para crear tantas hebras de hierba como para que parezca un suelo de bosque realista usaremos otro script llamado Fiber, especializado en esta tarea. Fiber hace en esencia algo parecido a lo que hace Lsystem para crear las hojas de la copa, usa una malla de referencia para crear elementos distribuidos por su superficie en la normal (dirección perpendicular) de ésta. El script Fiber se puede encontrar en http://oregonstate.edu/~dennisa/Blender/Fiber2. Para cargar Fiber yo acudo al menú Script donde accedo a él tal como se explica en mi tutorial sobre "Módulos de Blender en el Menú Scripts/Misc". Después describiré brevemente como puede hacerse lo mismo si no se tiene el script Fiber configurado de esta manera.






Al poner en marcha Fiber nos aparece su cuadro de parámetros a la derecha. Nuevamente os animo a investigar un poco con él antes de proseguir pues la mecánica de trabajo es muy similar a la de Lsystem. En este caso se selecciona una malla (en este caso el terreno) y se presiona el botón Estimate Faces que hace un cálculo previo. Posteriormente se pulsa Create y esperamos a que acabe. Al acabar tenemos delante un mar de hebras. Puede que sean muy largas y como que estas hebras (que están todas agrupadas) forman la malla activa si quieres las borras de un golpe (pues al acabar de crearlas está la malla activa) y vuelves a probar con otros ajustes. En principio os recomiento ajustar los parámetros Density más alto, Length of segments más bajo (hebras más cortas para imitar mejor la hierba), Gravity y Randomize Gravity para que tengan un poco de caida y dispersión pero no mucha. Todos estos parámetros se pueden guardar y abrir posteriormente por separado al igual que Lsystem guarda modelos de árbol para ser reusados más tarde. Puede que a la primera no tengáis un colchón de hierba lo bastante denso, pero no os preocupéis puede que sea incluso mejor. Para conseguir un efecto de mayor naturalidad es mejor tener varios bloques de hierba a los que podemos aplicar texturas ligeramente diferentes, y así las hebras de un bloque y las de otro estarán ligeramente mezcladas. Un solo bloque con todas las hebras de la misma textura tendría menos "diversidad" y por tanto menos realismo. Para tener varios bloques de hierba creamos varias copias del terreno, y haremos agujeros distintos, para tener mallas que ocupan regiones distintas del mismo terreno.






Ved en la imagen precedente como he llevado el terreno a una capa distinta a la de la hierba, la he duplicado y le he hecho agujeros, para tener "regiones de hierba" distintas. Se pueden hacer tantas como se quiera, y se pueden hacer tantos bloques de hierba distintos como se quiera, unos con hierba baja y densa, algunos puntos con hierbas altas y espigadas y más localizadas. En fin, observar un bosque real con el objetivo de ver cómo se distribuye la hierba realistamente siempre será útil ;) Dije que describiría cómo debían hacerlo aquellos que no tuviesen estos scripts preparados en su fichero de arranque. En esencia el trabajo es el mismo lo que sucede es que tanto Lsystem como Fiber y muchos otros módulos complejos vienen en ficheros Blender separados. Cuando tengo abierto un fichero no puedo tener otro y para compartir recursos entre ficheros Blender hay que importar los datos necesarios. Esto quiere decir que en el caso de contruir los terrenos y ponerles hierba, o de haber construido primero los ficheros con hierba y luego quererles poner árboles deberiamos trabajar en varios pasos. Primero guardarmos, por ejemplo los árboles en un fichero, luego creamos el terreno con la hierba en otro con el script correspondiente y guardamos el fichero. Posteriormente abrimos el fichero de los árboles y importamos (Mayús.F1) las mallas del terreno y de la hierba en el segundo fichero. Para aquellos que no lo hayan probado, importar es una acción similar a abrir un fichero (precisamente la misma tecla F1), pero con la diferencia que en este caso no se abre el fichero sino que vemos su estructura de datos (mallas, luces, texturas, scripts, etc, ...) y seleccionamos aquello que nos interesa. Esto quiere decir que cualquier fichero de Blender es también una posible biblioteca para otros trabajos





LA ILUMINACIÓN
Ahora hay que colocar las luces. Este es siempre un punto clave de todo proyecto, pero en nuestro caso aún más, pues un bosque deja pasar parte de la luz y crea toda un área de clarooscuros en su parte baja. Esto no será fácil de imitar con Blender, y para no crear un modelo muy complejo de luz (estamos en un nivel intermedio) trabajaremos con el modelo clásico de 3 focos de luz. En la imagen 5 en que hablaba de la cámara también se ven los 3 focos de luz. El de más a la izquierda es de tipo Hemi (luz general de día nublado) con valor 0.78 (es decir bajo) que me crea la iluminación general. Pero esta luz no pasa por debajo de las copas.








Al lado véis dos luces más y ambas de tipo foco (Spot), que es el único en Blender que nos crea sombras. El de más a la derecha se encarga de crear sombras, pero solo las sombras, por eso le he activado el botón Only Shadows, pues si no, para obtener sombras los bastante oscuras, me iluminaba demasiado la escena. El otro foco Spot lo he usado con el botón Halo activado, y lo uso para crear cierto aire de rayos de luz entre las copas. Me ha costado un buen rato encontrar los valores correctos (bueno, o que a mi me han parecido correctos para lo que buscaba). Aunque he puesto una imagen compuesta con los datos de las dos luces Spot lo he hecho a modo ilustrativo.



La razón de usar 3 luces es que así tengo la luz general, las sombras y los rayos de luz entre las copas en 3 focos distintos que me permiten ajustar mejor sus parámetros. Este esquema de luz es que he encontrado más simple, se podrían considerar otros modelos más complejos. Veamos como queda un render con estas luces.





Ya tenemos una vista de cámara de todo lo que llevamos hecho. Al activar todas las capas y renderizar Blender ya tiene un modelo. En la vista precedente se ve el ángulo de cámara que he seleccionado. Es un modelo en grises sin texturas para que se pueda valorar sobre todo el resultado volumétrico. En este caso hay dos terrenos, el terreno base del principio y el segundo con agujeros en la malla para crear zonas de hierba. El primer bloque de hierba que me pareció satisfactorio se ha duplicado 3 veces y los 4 bloques se han combinado en distintos ángulos y rotaciones y ligeros desplazamientos entre ellos para que no se creen patrones muy reconocibles.









TEXTURAS

Ahora que tenemos todos los elementos colocados nos concentraremos en el acabado de la imagen.






Es el momento de crear las texturas. En la imagen anterior se observan los parámetros del terreno. De los árboles no hay que precuparse, Lsystem ya nos proporciona la textura del tronco y la de las hojas. Para la hierba y el terreno he creado 3 texturas muy parecidas, basadas en el mismo modelo pero con parámetros ligeramente distintos. En la imagen precedente veis estos valores. La textura base usa el algoritmo Stucci con detalle fino (Noise 0.006 y Turbulence 5.0, Plastic en modo Soft Noise). Esto creará una dispersión de ruido que luego dotamos de volumen ligeramente con el parámetro Nor a 1.7 en el cuadro Map to. Ya he comentado que he creado 3 texturas iguales pero con parámetros ligeramente distintos. Una de tonos verdes claros la he aplicado a un bloque del terreno y a parte de la hierba. Otra de tonos verdes más oscuros y algo terroso al otros bloques de hierba que estuvieran entremezclados con los primeros. Y finalmente otro de tono grisáceo algo verdoso para algunas porciones del terreno que tenía agujeros para que debajo de alguna hierba parezca haber "más roca".





EL CIELO

El último paso es crear el cielo. Tenemos dos opciones. La más fácil es usar la opción World con una textura de nubes. En esta imagen sería razonable porque nuestro punto de vista de cámara es bajo y se poco cielo. Para el tutorial, tal como se ve en la imagen precedente he creado una cúpula con media esfera UV a la que le he dado el diámetro del terreno de base y le he eliminado la parte inferior. A esta esfera le he dado la misma textura que le habría aplicado al World y que se detallada en la imagen precedente. La ventaja de este modelo es que si hubiese que realizar una animación con solo aplicar algo de rotación en el eje Z a esta cúpula celeste imitaríamos con facilidad el movimiento de las nubes por viento, cosa que no sería posible con un World. Para dotar del suficiente realismo a esta cúpula habrá que aplicar SubSurf y Smooth. Para su iluminación podemos crearle en su capa (sí, habremos creado la cúpula en una capa aparte) un foco que ilumine la región de la cúpula que más nos interese, o quizá sin este foco, daremos un valor Emit para que brille por sí misma.






Bien, una vez aplicadas luces y texturas ya podemos renderizar la imagen final (F12), en este caso a 800x600. Este renderizado muestra las hojas de los árboles correctas tal como prevee el módulo Lsystem. El resultado no es hiperrealista pero es bastante correcto. Pero precisamente nos vamos a servir de que el resultado no se muy hiperrealista para crear dos imágenes con aire más creativo.




RENDERIZADOS FINALES




En la imagen precedente hemos pasado el resultado de Blender (tras haber sido exportado vía F3 en formato jpg) por Gimp, simplemente para darle un poco más de contraste y para aplicarle el efecto de pintura tipo Óleo. En este caso el resultado resulta lo bastante artístico, máxime teniendo en cuenta que para ser una pintura tiene unos efectos de luz muy interesantes.


Otra variante posible es usar el renderizado de tipo Toon de Blender. En la imagen precedente vemos el resultado que en mi apreciación tiene un aspecto lo bastante interesante y parecido a muchos fondos de dibujos animados creados por ordenador. Para obtener este resultado he pasado todos los elementos (troncos, copas de árboles y hierba) al modelo de textura (cuadro Shaders en el panel de Texturas al modelo de sombreado tipo Toon en lugar del habitual Lamber). El modelo Toon ofrece más contraste y menos colores para recrear los volúmenes, tal como es habitual en los dibujos animados (aquí los valores generales han sido un Smooth muy bajo, un Size medio y un Ref muy alto, no siempre los mismos para cada cosa para añadir así cierta variabilidad). Algo notorio es que he encontrado las hojas sin su imagen de textura, es decir en modo "libro" más que de tipo "árbol", más de "dibujos animados". Para eliminar la imagen seleccionamos cualquier copa acudimos a panel Texturas donde veremos la imagen usada como textura y lo cambiamos por Noise. El reborde negro que perfila los volúmenes se activa en el panel de Render (F10). En el cuadro Output más a la derecha encontramos el botón Edge, lo activamos y le damos valores Intensity 2 y Antishift 2. Volver Arriba.



Hasta aquí llega este tutorial. Se podría haber profundizado más en cada uno de los scripts y partes, pero eso implicaría elevar el nivel. Deseo que os haya resultado interesante, que haya esclarecido una cierta mecánica de trabajo y os proporcione ideas para vuestros propios proyectos.



Autor: LlunaSol



Fecha: 29 Marzo 2004


Web original: NicoDigital.com

GNUser cc 2009