• Stars
    star
    234
  • Rank 171,630 (Top 4 %)
  • Language
    C++
  • Created about 9 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

ambient occlusion baking tool

Build Status

This little public domain tool does the following:

  • Generates reasonable UV's for any topologically "clean" mesh.
  • Creates a texture representing ambient occlusion.

The first bullet uses Thekla's parameterization code; the second bullet uses Intel's embree library for raytracing.

Similar Tools

Texture coordinates can be generated using Microsoft's open source UVAtlas tool, which is a somewhat Windows-oriented project.

libigl can do mesh parameterization and ambient occlusion baking. It is protected by the Mozilla Public License.

IBLBaker does something completely different, but also looks interesting.

xatlas

lightmapper

Usage

$ aobaker --help

  Usage: aobaker [options] input_mesh.obj

  Options:
    --outmesh   OBJ file to produce (result.obj)
    --atlas     PNG file to produce (result.png)
    --sizehint  Controls resolution of atlas (32)
    --nsamples  Quality of ambient occlusion (128)
    --gbuffer   Generate diagnostic images
    --ids       Add a chart id to the alpha channel
    --multiply  Scales the AO values by a constant (1.0)
    --version   Output version
    --help      Output help

Building in OS X

Homebrew is the easiest way to install the dependencies:

$ cp ~/git/aobaker/embree.rb /usr/local/Library/Formula
$ brew install embree tbb cmake

This is optional, but you might want to use a compiler that supports OpenMP, which is a bit tricky if you've already got clang installed. Here's how I did it:

brew uninstall gcc
brew install gcc --without-multilib
export CC=/usr/local/bin/gcc-5
export CXX=/usr/local/bin/g++-5

Now you're ready to build! Here's how to invoke CMake so that it puts all the messy stuff into a folder called build:

$ cmake . -Bbuild      # Generate Makefile
$ cmake --build build  # Build the Makefile

More Repositories

1

par

single-file C libraries from Philip Allan Rideout
C
861
star
2

heman

C99 heightmap utilities.
C
470
star
3

snowy

Small Image Library for Python 3
Python
417
star
4

svg3d

generate 3D wireframes as vector art
Python
351
star
5

fluidsim

GPU fluid simulation
C
165
star
6

recipes

collection of tiny OpenGL demos
C
63
star
7

parg

tiny C library of various graphics utilities and GL demos
C++
56
star
8

lava

toy C++ Vulkan library
C++
49
star
9

clumpy

create or transform numpy images from the command line
C++
47
star
10

parm

minimal macOS Metal application
Objective-C++
41
star
11

iphone-3d-programming

sample code from my O'Reilly book
C
40
star
12

polygon.js

tessellation of concave polygons with holes in Javascript
JavaScript
39
star
13

distortion

Fisheye Distortion in OpenGL
C
36
star
14

knotgl

Mathematical Knots in WebGL
JavaScript
34
star
15

streamlines_demo

sample app for par_streamlines
C
31
star
16

pez

teeny tiny platform layer for simple OpenGL demos
C
26
star
17

quadmesh

Animated quad meshes and smooth normal computation with Modern OpenGL.
C
22
star
18

opengl-insights

source code for "An Introduction to Tessellation Shaders"
C
22
star
19

hexgl

HexGL clone using Filament and TypeScript
TypeScript
19
star
20

sympy-fun

use SymPy to generate equations for parametric surfaces
C
17
star
21

giza

low-level utility layer for WebGL
JavaScript
16
star
22

nile

fractal terrain generator in Nim
Nim
16
star
23

coregl-python

simple example of using the OpenGL Core Profile with PyQt, numpy, and PyOpenGL
Python
15
star
24

gltumble

spin a 3D object with a bit of inertia
JavaScript
14
star
25

knotess

prime knot tessellation
JavaScript
13
star
26

rwt

Recursive Wang tiles dataset for blue noise
C
13
star
27

euler

scrollytelling and Filament
TypeScript
11
star
28

effects-salad

C++
10
star
29

camera_demo

demo for par_camera_control.h
C
10
star
30

flatbin

Tiny JavaScript utility for parsing simple binary files.
JavaScript
9
star
31

govmath

vector math in go for 3D graphics
Go
9
star
32

reba-island

generate simple island shapes
C++
8
star
33

monarchy

demonstrates high-performance 2D graphics with giza
JavaScript
8
star
34

pageturn

TypeScript
8
star
35

lsystem

lsystem evaluation in C++, Go, and Python
C++
7
star
36

modern-opengl-prezo

HTML Slideshow on Modern OpenGL
C
7
star
37

skia

fork of skia that is CMake-buildable
C++
6
star
38

ribarchive

random renderman stuff
Slash
5
star
39

sfpaths

Download and visualize Strava paths with D3 and Google Maps.
Python
5
star
40

blog-source

my old graphics blog
C
3
star
41

d3cpp

sweep and prune demo
JavaScript
3
star
42

gorman

renderman bindings for the go language
Go
3
star
43

heman-python

work in progress
C
2
star
44

book-webgl

JavaScript
2
star
45

reba

dev machine for building server-side renderers
Shell
1
star
46

filasize

HTML
1
star
47

shaderhud

quick shader editor overlay for debugging
JavaScript
1
star
48

knot-data

Data for Mathematical Knots
CoffeeScript
1
star