Gen3 Script generador de árboles
por Sergey Prokhorchuk





La creación manual de árboles realistas en 3D/CG es muy difícil. Para simplificar esta tarea, existen variados plugins y programas, los cuales crearan estos modelos de árboles y plantas automáticamente por nosotros. Estos programas permiten a los usuarios crear la estructura mediante el ingreso de ciertos parámetros, los que pueden ser usados para la generación del modelo 3D.

Para los usuarios de Blender, los generadores de plantas más comunes son [LSystem] y [Arbaro]. [LSystem] es un script para Blender basado en Python, el cual crea modelos de plantas, basandose en el algoritmo "Lsystem". [Arbaro] es una aplicación externa en Java, la cual genera plantas usando el modelo descrito en [Weber95].

Gen3 en un plug-in/script generador de árboles relativamente nuevo para Blender. Su primera versión (v0.1) fue liberada el 17 de Junio de 2006. Para generar estructuras de árboles, este usa modelos descritos en [Weber95] (el mismo modelo usado por Arbaro).

La cantidad de parámetros incluidos para las características de los árboles es amplia. En términos generales, estos parámetros permiten al usuario describir el tronco, el tamaño de las ramas, sus divisiones, ubicación de las ramas en relación con las otras, y así. Actualmente, la interfaz no es amigable al usuario y podría asustar a algunos novatos, pero el rediseño de la UI es una posibilidad para futuras versiones.

Instalación
Para instalar Gen3, deberías descargar la última versión del script desde aquí [Gen3]. (En el momento de escribir esta guía, la última versión disponible es la 0.5)



Descomprime el archivo descargado a un directorio temporal y copia el archivo "gen3.py" y el subdirectorio "gt" en el directorio de los script de Blender (el cual puede encontrarse en la ruta de instalación de Blender). Es muy recomendable que las versiones de instalación completa de Python y del intérprete de Python nativo de Blender sea la misma, y que hayan sido compiladas con la mismas opciones (N. del T.: En el caso de que compiles tus ejecutables). Estos requisitos son necesarios, ya que Gen3 usa algunos módulos, que forman parte de la librería Python.

Después de haber copiado estos archivos, ya estas en condiciones de usar el script.

Uso
Puedes acceder a Gen3 mediante (Scripts>>Misc>>Gen3). Ver figura 1. Si no ves la entrada Gen3 en el menú scripts, entonces selecciona (Scripts>>Update Menus) - esto actualizara la lista de scripts disponibles.

Después de ejecutar el script, veras todos los controles que te permitiran manejar los parámetros que influenciaran la forma del árbol. Puedes ver una descripción más detallada de todos esos parámetros en el boletín [Weber95].

Hay muchos botones en la parte inferior de la GUI, pero el principal de todos es "Generate". Al hacer clic en éste, el script comienza a generar un modelo 3D. Para hacerte las cosas más fáciles, hay botones con el nombre de los tipos de árboles. Estos botones, configuraran parámetros predefinidos para el tipo de árbol seleccionado, sin duda un buen punto de partida para experimentar.

Para un inicio rápido, puedes presionar en el botón "Quake Aspen" y luego hacer clic en "Generate". Después de unos minutos (el tiempo puede variar dependiendo de tu configuración) veras un modelo de árbol en la ventana 3D.

Importando parámetros desde [Arbaro]
Ya que Gen3 usa el mismo algoritmo de Arbaro, es posible importar parámetros de árboles generados por Arbaro. Notar que la característica "import" esta disponible sólo si el intérprete Blender python tiene acceso al módulo xml.dom.minidom, el cual es parte de la libería Python.

Si esta instalado de manera apropiada, veras el botón "Import" debajo del botón "Generate". Para importar los parámetros, simplemente persiona el botón "Import" y selecciona el archivo XML de parámetros creado por Arbaro. Debes tener en cuenta que algunos de los parámetros específicos de Arbaro no están soportados en Gen3, de modo que la generación de árboles puede diferir.

Uso del Generador de hojas
Gen3 permite el uso de cualquier malla/objeto (mesh/object) como base para generar hojas. Para usar una malla/objeto como base para una hoja, agrega el prefijo "Leaf" al nombre ("LeafSmall" por ejemplo). Para refrescar las bases disponibles para el script, presiona el botón "P" ubicado cerca de la lista desplegable "LeafShape".

Después de refrescar, toda las mallas que tienen el prefijo "Leaf" en sus nombres, estarán disponibles en el menú desplegable "LeafShape". Selecciona el objeto necesario en la lista y será usado durante la generación de hojas.

Créditos

Quisiera agradacer a Jason Weber y Joseph Penn por su excelente artículo sobre estructuras de plantas. Además, quisiera decir "gracias" a todos los miembros de http://blenderartists.org por sus respuestas, consejos y sugerencias. Gracias a todos aquellos quienes han ayudado al desarrollo de Gen3.


por- Sergey Prokhorchuk


Enlaces
[Arbaro] http://arbaro.sourceforge.net
[LSysInfo] http://en.wikipedia.org/wiki/Lindenmayer_system
[LSystem] http://jmsoler.free.fr/útil/blenderfile/images/lsystem/lsystem.htm
[Gen3] http://geocities.com/bgen3
[Weber95] Jason Weber, Joseph Penn, "Creation and Rendering of Realistic Trees",
Proceedings of ACM SIGGRAPH 1995: pp. 119-128.

L-System
L-system es un método para describir estructuras "auto-similares", pueden ser vagamente comparados con los fractales. La definición de L-system consiste en:

1. Un grupo de símbolos de algún alfabeto.

2. Reglas de Producción.

3. Significados asignados a cada símbolo de un alfabeto.


La parte principal de L-system es un módulo reescritor de string, el cual aplica reglas de producción a un string inicial. El procedimiento de Reescritura es aplicado al string en modo recursivo. Después de algunas iteraciones, las strings resultantes pueden describir estructuras auto-similares muy complejas. Dado que muchas plantas tienen propiedades auto-similares, L-system puede ser usado para describirlas. Nótese que L-System puede también ser usado para la generación de muchas otras estructuras complejas que no son necesariamente plantas.


Modelo de generación de árboles de Jason Weber y Joseph Penn
Cuadro informativo sobre el modelo de generación de árboles de Jason Weber y Joseph Penn --- Este modelo, a diferencia de L-system, esta orientado específicamente para la generación de plantas 3D. En este modelo, los árboles son descritos bajo un tronco y varios niveles de ramas. El modelo describe parámetros y fórmulas que son usados para generar sólo modelos de árboles. Algunos parámetros se aplican a modelos en general, algunos a troncos, ramas, u hojas solamente. Las configuraciones de parámetros son numerosas para familias de árboles complejos.


Estas preferencias permiten configuraciones de tamaño y orientación, troncos y ramas, formas, posibilidades de división, forma de hojas y mucho más. Parámetros describiendo anchura de tronco, lóbulos, y de árbol también están presentes. Puesto que este modelo fue creado especialmente para la generación de árboles, puede ser entendido y modificado de una manera más fácil en comparación a modelos basados en L-system. Una completa descripción del modelo puede ser vista en [Weber95].


Sergey Prokhorchuk
Soy desarrollador de software en ViaSoft LTD, Ucrania. Dado que tengo cierta experiencia en programación C/C++ y Python, trato de usarla en diferentes áreas de gráficos 3D. También me intereso en otras áreas relacionadas con la computación, como teoría de programación, inteligencia artificial y criptografía.


www.blenderart.org