Skip to content

Latest commit

 

History

History
72 lines (56 loc) · 1.56 KB

README.md

File metadata and controls

72 lines (56 loc) · 1.56 KB

omg - Open Machinery for Graphics

A dragon drinking tea

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!

Installing

Cloning

This project makes use of git submodules feature, so you need to clone it using:

git clone --recursive https://github.com/greati/omg.git

Build

mkdir build
cd build
cmake ../sources .
cmake --build .

Test

make test

Raytracer

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>

Features

  • 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