facebookresearch / SplitAO3D

Project code for our HPG2023 paper "PSAO: Point-Based Split Rendering for Ambient Occlusion"

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PSAO: Point-Based Split Rendering for Ambient Occlusion

Thomas Neff*1, Brian Budge2, Zhao Dong2, Dieter Schmalstieg1, Markus Steinberger1

1Graz University of Technology, 2Meta Reality Labs Research
* The work was primarily done during an internship at Meta.

in High-Performance Graphics 2023

Licensing

The majority of this project is licensed under CC BY-NC 4.0, except for third-party code, which is available under separate license terms:

  • Arcade test scene: NVIDIA CC-BY-NC-SA 3.0
  • Poisson sampling is licensed under the MIT license
  • FLIP is licensed under the BSD-3 license
  • zstd is licensed under the BSD license
  • nanoflann is licensed under the BSD license
  • lz4 is licensed under the BSD license
  • argparse is licensed under the MIT license

General

This repository contains the source code for the paper "PSAO: Point-Based Split Rendering for Ambient Occlusion". The codebase has been tested on Windows 11 using an RTX4090 GPU using Visual Studio 2019, and also Windows 10 Pro with RTX3070 Ti Mobile GPU.

Getting started

First clone our fork of Falcor 5.2 from https://github.com/thomasneff/Falcor.

git clone git@github.com:thomasneff/Falcor.git
cd Falcor
git submodule update --init --recursive

Make sure to follow the prerequesites mentioned in the Falcor README.

Afterwards, go into the Falcor/Source/Samples/ directory and clone this repository (SplitAO3D).

cd Source/Samples
git clone git@github.com:facebookresearch/SplitAO3D.git

After that, use CMake to generate build files for Falcor.

You should now have a FalcorServer target in the Samples projects in your IDE (e.g., Visual Studio 2019). Set that as your startup target.

Afterwards, for our test scenes to work, you need to create a symbolic link from Falcor/Source/Samples/SplitAO3D/test_scenes to Falcor/media/test_scenes.

On Windows, this can be done via mklink from a command prompt (from within the Source/Samples directory):

cd ../../media
mklink /D test_scenes ..\Source\Samples\SplitAO3D\test_scenes\

Alternatively, if you don't have WSL installed, you may simply copy the test_scenes directory into media/test_scenes.

By default, you should now be able to start the project and see the arcade_with_animated_things scene, that includes rigidbody and skinned animations and shows the result of PSAO with a low number of points by default.

In SplitAO3D/point_ao_split_rendering/ServerMain.cpp you can find additional command line options that were used for the evaluation of the paper. The main renderer is implemented in ServerPointRenderer.h/.cpp.

Citation

If you find this repository useful in any way or use/modify PSAO in your research, please consider citing our paper:

@article{neff2023psao,
	booktitle = {High-Performance Graphics - Symposium Papers},
	editor = {Bikker, Jacco and Gribble, Christiaan},
	title = {{PSAO: Point-Based Split Rendering for Ambient Occlusion}},
	author = {Neff, Thomas and Budge, Brian and Dong, Zhao and Schmalstieg, Dieter and Steinberger, Markus},
	year = {2023},
	publisher = {The Eurographics Association},
	ISSN = {2079-8687},
	ISBN = {978-3-03868-229-5},
	DOI = {10.2312/hpg.20231131}
}

About

Project code for our HPG2023 paper "PSAO: Point-Based Split Rendering for Ambient Occlusion"

License:Other


Languages

Language:C++ 98.7%Language:CMake 1.3%