Skip to content

caner-milko/TreeGen

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TreeGen

forest

Showcase Video

video

A standalone procedural tree generation and rendering application developed for my bachelor's thesis.

It uses:

  • C++20
  • OpenGL 4.6
  • ImGui

Building

The project uses CMake (3.21+). GLFW and GLM are fetched automatically at configure time (network required on first run); the remaining dependencies (glad, stb_image, tiny_obj_loader, Dear ImGui) are vendored, with ImGui as a git submodule.

git clone --recurse-submodules <repo-url>
cd TreeGen
# (if you cloned without --recurse-submodules)
git submodule update --init --recursive

cmake -S . -B build
cmake --build build --config Release

The executable is written to build/bin/<config>/TreeGeneration.exe with the Assets/ folder copied alongside it (the app loads assets via relative paths, so run it from that directory).

The tree generation algorithm is an improved real-time version of "Self-organizing tree models for image synthesis", Wojciech Palubicki et al.

The renderer is a raymarching/forward rendering hybrid. Generated trees branches are converted to 3D quadratic bezier curves and rendered using raymarching. More detailed information can be read from the thesis paper.

About

A project about real-time procedural tree generation and rendering.

Topics

Resources

Stars

Watchers

Forks

Contributors