Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
src
 
 
 
 
 
 
 
 
 
 

README.md

Screen Space Ambient Occlusion

This is sort of an implementation of Scalable Ambient Obscurance by McGuire et al. however I make a few simplifying shortcuts in my implementation and don't achieve as good performance or quality. I was also unable to get their new recommended estimator to behave so this implementation still uses the Alchemy AO estimator initially recommended in the paper. I have a somewhat longer write up available on my webpage since this was initially implemented as a class project.

Building

The build system is a bit awkward at the moment as I developed this project and glt simultaneously so it's included as a git submodule. The project also depends on SDL2 and GLM which CMake is typically able to find. If not you can pass -DSDL2=path/to/sdl2 and -DGLM=path/to/glm when running CMake to help it out. I also use imgui which you should download and drop under external/imgui, later I plan to add a download step to fetch imgui to the CMake build.

Running

You can pass any OBJ file through the command line but the camera and other settings for the AO are only really configured for a slightly modified version of Crytek Sponza that uses the OBJ file from McGuire's meshes page but the textures from the original Crytek Sponza.

Images

Full render combining AO with all other effects: Full render

Ambient occlusion values only: AO only

I also made a short video which you can watch if you want to see the effect in action without running the project yourself.

About

Sort of an implementation of Scalable Ambient Obscurance, but not quite

Resources

License

Releases

No releases published

Packages

No packages published
You can’t perform that action at this time.