Giter Club home page Giter Club logo

valo's Introduction

Valo

C++11/OpenMP/CUDA physically based renderer with an interactive preview mode.

Image gallery / Youtube video

Screenshot

Download

Download the latest version:

Windows 64-bit Mac OS X (10.9+) Linux 64-bit (Ubuntu 16.04 LTS)
valo-0.1.0-win.zip valo-0.1.0-mac.zip valo-0.1.0-ubuntu.zip

For windows, you will also need the Visual C++ Redistributable for Visual Studio 2015.

The CUDA version runs on NVIDIA GTX 900 Series or newer.

Features

  • Physically based renderer
    • Uses path tracing to solve the rendering equation
    • Materials with BRDFs and PDFs (only Lambertian at the moment)
    • (Multiple) importance sampling
    • Russian roulette
    • Direct light sampling
  • Volumetric effects with ray marching
  • Film for accumulating samples
  • Antialiasing with different filters
  • Tonemapping with different operators
  • Image based and procedural textures
  • BVHs with different widths (2/4/8), optimal and fast SAH builder and vectorized traversal
  • Random numbers based on PCG
  • Very fast OBJ file loader with material support
  • GPU rendering with CUDA (based on megakernel approach, not so fast)
  • Offline console rendering and interactive windowed mode

Instructions

Running the program will open the first test scene in an interactive windowed mode. Use WASD to move and left mouse button to look around. Cycle through the test scenes with number keys.

Edit the valo.ini file to further configure the program. All options can be overridden with command line switches.

Controls

For the interactive mode:

Key Action
W/A/S/D Move around (+ Q/E for up/down)
Mouse left Look around
Ctrl Move slower
Shift Move faster
Alt Move even faster
Insert/Delete Adjust move speed
Space Stop moving
P Toggle moving on/off
R Reset camera
F Toggle filtering on/off
M Toggle normal mapping on/off
N Toggle normal interpolation on/off
B Toggle normal visualization on/off
V Toggle triangle interpolation visualization on/off
F1 Cycle info panel states
F2 Select renderer
F3 Select camera projection
F4 Select integrator
F5 Select filter
F6 Select tonemapper
F7/F8 Decrease/increase internal rendering resolution
Ctrl+F1 Save scene to file (not implemented)
Ctrl+F2 Save camera state to file
Ctrl+F3 Save image to file
Ctrl+F4 Save film to file
F12 Take a screenshot
Page Up/Down Increase/decrease field of view
Ctrl+Page Up/Down Increase/decrease exposure
1-0 Select test scenes 1-10
Ctrl+1-0 Select test scenes 11-20

Test scene data sources

Websites where the test scene data was sourced from:

Build

See the build instructions.

License

Valo
Copyright © 2016 Mikko Ronkainen

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

valo's People

Contributors

mikoro avatar

Watchers

 avatar  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.