5/5/14

Modelado de cesped. Texturas.


La vegetación siempre ha sido y es algo complicado. Complicado por lo complejo. Y el problema es que todo render de arquitectura que se precie, en términos generales siempre debería tener presencia de vegetación. Y cuando además este render es de exterior, es muy habitual tener que usar césped.


A grandes rasgos existen 3 formas diferentes de enfrentar el problema del césped, de las cuales dos suelen asustar nada más oírlas:
- Usar texturas de césped
- Sistema de partículas usando objetos premodelados
- Sistema de partículas de simulación de pelo

La primera pregunta que debemos formularnos a la hora de elegir el sistema que vamos a utilizar es referente a una cuestión de escala. Es decir: ¿cómo de lejos está la cámara respecto de nuestro césped?

La primera de las tres opciones probablemente no sea recomendable usarla casi nunca, sin embargo, si nuestro césped se encuentra muy lejos de la cámara, puede que podamos pensar en utilizar esta técnica. En el momento en que la distancia sea tal que la forma de césped pueda llegar a intuirse mínimamente...esta opción deberíamos descartarla de plano. Por supuesto, todo esto siempre y cuando busquemos obtener una imagen lo más realista posible.

Hoy vamos a analizar cómo funciona la primera de estas tres formas y a intentar dar algunas pistas que os ayuden a conseguir mejores resultados.

Texturas de césped
Esta método es muy usado porque es muy fácil de implementar, sin embargo hay una serie de errores que deberíamos tratar de evitar:


Escala: es muy importante que no descuidemos la escala de nuestra textura, sobretodo no tender a escalas muy grandes, porque automáticamente no habrá duda de dos cosas: hemos usado una textura y además no lo hemos hecho bien. Podemos buscar fotografías reales para tratar de acomodar la escala de nuestra imagen hasta obtener el tamaño adecuado por comparación con otros objetos.
Costuras: como consecuencia directa del concepto anterior, la repetición de la textura entra en juego. Es imposible disponer de una textura tan grande y con tanta resolución como para no necesitar repetirla a lo largo de todo nuestro plano de césped. En este caso es importante usar texturas “tileables”, es decir, preparadas para que cuando coloquemos nuestra textura una y otra vez al lado de si misma, los bordes de unión o costuras no sean perceptibles. Hoy en día no suele ser mucho problema, porque en la mayoría de las web de texturas (www.cgtextures.com por ejemplo), encontraremos texturas preparadas para esto. Y de no encontrar, existen plugins para Gimp o Photoshop que nos ayudarán a crear las nuestras propias. Otro día explicaremos cómo hacer nuestras propias texturas “tileables”.
Homogeneidad: una vez conseguida una textura en la que no se aprecien las juntas, es importante centrarnos en evitar la homogeneidad del conjunto, para no tender a un césped demasiado monótono o en el que puedan encontrarse patrones repetidos.

Muy bien, pero... ¿cómo conseguimos todo esto? Vamos a ponernos manos a la obra con un ejemplo.


Para ejemplificar todo lo que viene a continuación hemos modelado lo que aspira a ser un bonito prado con un granero estilo “farmville” y algunos árboles que usaremos para tener una idea de escala de todo el conjunto.


Hemos buscado por internet una textura que ya fuese perfectamente tileable y hemos ajustado su escala hasta el punto en el que consideramos que entona perfectamente con los elementos de la escena. Hemos optado por elegir una textura lo más plana posible para evitar en la medida de la posible que pudiesen encontrarse patrones identificables a lo largo de todas las repeticiones que se dan de la textura. La hemos repetido 6 veces en cada dirección, lo que quiere decir que el mismo cuadrado de textura está colocado 36 veces en nuestro plano. Como podéis comprobar no se aprecian las costuras ni se intuyen repeticiones.

En este punto ya hemos conseguido superar dos de los errores más comunes: escala y costuras. Sin embargo nos queda el más complicado: queremos conseguir un conjunto heterogéneo en el que la formación de césped parezca lo más natural posible. 


Lo primero que vamos a hacer es crear variaciones tonales de nuestra textura original. Apoyándonos en el gestor de materiales que nos proporcione nuestro software favorito, vamos a mezclar las tres tonalidades usando para ello patrones de mezcla creados a partir de texturas procedurales de ruido. La ventaja de usar estas texturas es que ya nos aportan por si mismas cierta heterogeneidad, lo que permitirá que se empiecen a diluir las repeticiones de las texturas.


En primer lugar mezclaremos la textura original con la primera variación tonal usando una textura de ruido de escala pequeña.


El resultado de lo anterior lo mezclaremos con la segunda variación tonal, utilizando también una textura de ruido, pero a una escala diferente, para que en el resultado final aparezcan mezcladas las tres tonalidades diferentes.


Para el siguiente paso vamos a usar una textura distinta. Vamos a simular esas pequeñas partes donde el césped suele perderse, por pisarlo o por cualquier otro motivo, y se empieza a ver la tierra que hay debajo. El modo de mezcla va a ser el mismo que para las texturas anteriores, sin embargo utilizaremos una textura procedural más agresiva para que lleguen a mostrarse por completo partes de la nueva textura.


Por último pero no menos importante, vamos a usar de nuevo una textura de ruido procedural para aplicar un pequeño “bump” a todo el plano. De este modo conseguiremos que el conjunto quede lo más heterogéneo posible, dando por resuelto así el tercer error más común de este tipo de césped.


Este tipo de césped aplicado junto a una escena de cierta complejidad nos dará más o menos buenos resultados. Será recomendable usarlo en escenas de este tipo, donde debido a la lejanía de la cámara la cantidad de césped es enorme y usar otros métodos podría suponer una cantidad de cálculo enorme para el ordenador.

Lo descrito en este post es sólo un ejemplo, pero dependiendo del tipo de texturas iniciales o del objetivo que queramos conseguir podrá utilizarse un tipo de mezclas u otras. Otra forma de hacerlo podría ser “unwrapear” nuestro plano y exportarlo a nuestro programa de edición favorito (Photoshop, Gimp, Krita, etc.) y crear una serie de pinceles con las texturas originales que usaríamos para pintar nuestro plano de textura, que luego simplemente tendríamos que introducir en nuestro 3D. Sea como fuere lo importante es tratar de no caer en errores demasiado evidentes que hagan que nuestra escena sufra por falta de realismo.

En futuros artículos entraremos a explicar los otros dos métodos para crear césped. Stay tunned!

0 comentarios: