Skip to content

Latest commit

 

History

History
38 lines (27 loc) · 2.02 KB

File metadata and controls

38 lines (27 loc) · 2.02 KB

Trees

This project grows trees into clouds of attractor points to help model trees procedurally!

Here are a few videos hosted on Vimeo that showcase some more examples:
Tree growth
Growing a tree into a 3D model of my friend's head

This is a sequence of images describing the algorithm:

First, we place attractor points within a bounding mesh. Here's a helix for example:

Then, we iteratively grow the tree. In the gif below, I clicked the "Iterate Tree" Button, which will run the space colonization algorithm for the indicated 25 iterations.

Here's a previous iteration of the project where I grew tree branches into a heart shape:

Credits / Resources

  • LearnOpenGL for base code setup guidance.
  • GLAD for GL Loading/Generating based on official specs.
  • GLFW for simple OpenGL Context and window creation.
  • GLM for linear algebra library.
  • TinyObjLoader for header-only, fast OBJ Loading.
  • PCG32 for header-only, seeded random number generation.
  • Imgui for easy and awesome UI.
  • UPenn Course CIS 460 for some code organization ideas.
  • UPenn Course CIS 461 for some raytracing code. Credit to Adam Mally, the professor for these courses.

Papers referenced:

Self-organizing tree models for image synthesis

Modeling Trees with a Space Colonization Algorithm

TreeSketch: Interactive procedural modeling of trees on a tablet