omg is a library for computer graphics applications that provides some executables, like a ready-to-go raytracer that uses YAML scene descriptions to produce 3D images.
omg uses tao, a mathematical library written by the author. Caution: it is not optimized yet, but works well.
Learn how to use omg by reading the docs!
This project makes use of git submodules feature, so you need to clone it using:
git clone --recursive https://github.com/greati/omg.git
mkdir build
cd build
cmake ../sources .
cmake --build .
make test
omg comes with a raytracer library and executable, which takes a scene described in YAML (check the YAML Raytracer wiki) and produces an image. In order to run it, execute:
./raytracer <path to .yml file> <image destination>
- Backgrounds
- Solid
- Bilinear gradient
- Texture
- Camera
- Size
- Orthographic
- Perspective
- Oblique versions of orthographic and perspective
- Integrators
- Flat
- Depth map
- Normal map
- Blinn Phong (with reflection and hard shadow)
- Objects
- Spheres
- Triangle meshes
- Accelerators
- BVH
- KDTree
- Geometric transformations