Simple game engine capable of rendering scene, performing physics simulations and generating tree models using Lindenmayer sytem formal grammar.
Created as a part of masters dissertation.
Executable available in release tab.
YouTube clip demonstrating project capabilities:
ESTree is using few libraries:
- BOOST: general perfomance purposes, multithreading
- GLFW, GLM, GLAD, OpenGL: scene rendering
- BulletPhysics: physics simulation (collisions, mouse picking, collapsing towers made of blocks)
- RapidJSON: parsing configuration files
- FreeType: text rendering
- STB: texture loading
- Freetype: fonts
Sample screenshots presenting current engine abilities regarding tree generation:
- Simple bush model:
- Ternary tree models generated from rules described in "The Algorithmic Beauty of Plants":
To setup VS 14 project locally recursively clone repo and run setup.bat. Script will create build directory which will contain project files.
Run build/ESTree.sln and remember to mark ESTree as startup project.
Project requires built x64 Boost linked via env variable (check CMakeLists.txt) and freetype.dll which can be placed in either Windows/System32 or project build directory.
Scene navigation: RMB + WSAD (Space and left alt to move vertically)
Object selection/pick up: LMB
Console toggle: ~
Application has number of commands available in built-in user console such as:
- adding and removing objects from scene,
- creating movable light sources,
- generating Lindenmayer trees from configuration files,
- exporting models to .obj files,
- help listing all actual commands.
For further initialisation launch options you can execute app with --help.