An interactive application for sculpting in 3D.
Distance functions defining the surface of a shape can be added additively and subtractively to form complex shapes. Functions are added to an octree which causes affected areas to be re-evaluated. Function evaluation consists of iterating over a hierarchical grid to find distances smaller than some threshold. Zero-crossing points are collected and uploaded to an openGL vertex buffer, then drawn.
| Input | Action |
|---|---|
| Mouse movement | Look around |
| Left click | Add brush |
| Right click | Remove brush |
| 1 | Toggle shape |
| Up arrow | Increase brush size |
| Down arrow | Descrease brush size |
| Left arrow | Decrease blending |
| Right arrow | Increase blending |
| W | Move forward |
| S | Move backward |
| A | Move left |
| D | Move right |
| Left shift | Move down |
| Spacebar | Move up |
| E | Set light direction |
| NUM 7 | Increase red |
| NUM 4 | Decrease red |
| NUM 8 | Increase green |
| NUM 5 | Decrease green |
| NUM 9 | Increase blue |
| NUM 6 | Decrease blue |
| ESC | Close program |
- OpenGL 3.3
- glew
- glfw3
- glm
- c++11 compiler
- cmake
- mkdir build
- cd build
- cmake .. -G "your platform"
- cd ..
- cmake --build build --config Release
- cd bin
- ./main
