Skip to content
/ omg Public

Open Machinery for Graphics: computer graphics library and utilities

License

Notifications You must be signed in to change notification settings

greati/omg

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Open Machinery for Graphics: computer graphics library and utilities

Resources

License

Stars

Watchers

Forks

Packages

No packages published