Skip to main content

Tree.js

¿Qué es?

Un generador de árboles procedural construido con Three.js. Cuenta con más de 30 parámetros ajustables y soporte para exportar a .glb.

Documentación original

Instalación

El código de generación de árboles está publicado como un paquete npm y puede ser importado en tu propio proyecto.

npm i @dgreenheck/tree-js

Uso

// Crear una nueva instancia
const tree = new Tree();

// Establecer parámetros
tree.params.trunk.length = 20;
tree.params.branch.levels = 3;

// Generar el árbol y añadirlo a la escena
tree.generate();
scene.add(tree);

Cada vez que se cambian los parámetros del árbol, debes llamar a generate() para regenerar la geometría.

Para más información, consulta la aplicación de demostración para un ejemplo de cómo crear un árbol.

Parametros

Tronco

  • color: Color del tronco del árbol
  • flare: Multiplicador para la base del tronco
  • flatShading: Usar normales de cara para el sombreado en lugar de normales de vértice
  • length: Longitud del tronco base
  • maturity: Etapa de crecimiento del árbol
  • radius: Radio inicial del tronco
  • textured: Aplicar textura de corteza

Ramas

  • gnarliness: Amplitud máxima del ángulo aleatorio añadido a la orientación de cada sección
  • gnarliness1_R: Igual que arriba, pero inversamente proporcional al radio de la rama. Los dos términos pueden usarse para equilibrar la gnarliness del tronco frente a las ramas
  • lengthVariance: % de variación en la longitud de la rama
  • lengthMultiplier: Longitud de la rama hija relativa a la rama madre
  • levels: Número de recursiones de ramas (Mantener por debajo de 5)
  • minChildren: Número mínimo de ramas hijas
  • maxChildren: Número máximo de ramas hijas
  • radiusMultiplier: Radio de la rama hija relativo a la madre
  • start: Define dónde comienzan a formarse las ramas hijas en la rama madre. Un valor de 0.6 significa que las ramas hijas pueden comenzar a formarse al 60% del camino hacia arriba de la rama madre
  • stop: Define dónde dejan de formarse las ramas hijas en la rama madre. Un valor de 0.9 significa que las ramas hijas dejan de formarse al 90% del camino hacia arriba de la rama madre
  • sweepAngle: Máximo ángulo de barrido de las ramas (radianes)
  • taper: Radio del extremo de la rama relativo al comienzo de la rama
  • twist: Cantidad de torsión alrededor del eje vertical

Geometría

  • lengthVariance: % de variación en la longitud nominal de la sección
  • radiusVariance: % de variación en el radio nominal de la sección
  • randomization: Factor de aleatoriedad aplicado a los vértices
  • sections: Número de secciones que componen esta rama
  • segments: Número de caras alrededor de la circunferencia de la rama

Hojas

  • color: Color de las hojas
  • maxCount: Número máximo de hojas por rama
  • minCount: Número mínimo de hojas por rama
  • size: Tamaño de la textura de la hoja
  • sizeVariance: Variación en el tamaño de la hoja entre ramas
  • style: Estilo de hoja (simple o doble)
  • type: Tipo de hoja (Fresno, Álamo o Roble)

Sol

  • direction: Influye en la dirección hacia la que crece el árbol
  • strength: Fuerza de la influencia del sol

Demo