Giter VIP home page Giter VIP logo

simple-spectral's Introduction

Simple Spectral

This is a simple multithreaded spectral pathtracer implementing the algorithm (linear combination of bases) described in our EGSR 2019 paper "Spectral Primary Decomposition for Rendering with sRGB Reflectance". Also implemented are [Meng et al. 2015], [Jakob and Hanika 2019], and a classic RGB renderer.

The spectral rendering uses hero-wavelength sampling on a simple pathtracer. Our implementation supports both the CIE 1931 and 2006 standard observers.

Setup

Dependencies are intended to be minimal and easy: • GLM (required) • GLFW (optional, adds windowing support) • lodepng (required, included) • Meng et al. 2015 (required, included) • Jakob and Hanika 2019 (required, included)

Setup is basic CMake: (1) "cd <path/to/>simple-spectral/" (2) "mkdir build" (3) "cd build/" (4) "cmake .." (3) "cmake --build ."

There are some handy options in "simple-spectral/src/stdafx.hpp" near the top of the file.
Some parameters are only exposed this way for simplicity or performance.

Program Invocation

Usage, including command-line options, can be found by simply running the binary with no arguments.

However, for convenience, basic usage looks something like:

<binary> --scene=cornell-srgb -w=1024 -h=1024 -spp=64 --output=output.png --window

The available scenes are "cornell" (original Cornell box), "cornell-srgb" (adjusted materials), and "plane-srgb", which is the plane setup in Figure 1.

Acknowledgments

We would like to thank [Meng et al. 2015] and [Jakob and Hanika 2019], both of which make their code easy to use. Also lodepng, for existing. More acknowledgments can be found within the paper.

simple-spectral's People

Contributors

geometrian avatar

Watchers

 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.