Git Product home page Git Product logo

splitao3d's Introduction

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 [email protected]: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 [email protected]: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}
}

splitao3d's People

Contributors

graphicsman avatar facebook-github-bot avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.