Skip to content

byzin/Nanairo

Repository files navigation

Nanairo

cover

Nanairo is a physically plausible spectral renderer.

Version: 0.0.4

Description

Demo

Demo

Features

Monte calro ray tracing method

  • Path tracing [paper]
  • Light tracing
  • Progressive photon mapping [paper]

BVH

  • Binary radix tree [paper]
  • Agglomerative treelet restructuring [paper]

Surface

  • Smooth diffuse surface (Lambert BRDF)
  • Smooth conductor surface (Fresnel BRDF)
  • Smooth dielectric surface (Fresnel BSDF)
  • Rough conductor surface (GGX BRDF) [paper]
  • Rough dielectric surface (GGX BSDF) [paper]
  • Layered diffuse surface (Interfaced Lambertian BRDF) [paper]
  • Cloth surface (Microcylinder cloth BRDF) [paper]

Camera

  • Pinhole camera

Color

  • Spectra (point sampling) [paper]
  • Spectral transport from RGB [paper]

Geometry

  • Triangle meshes (support Wavefront .obj file)
  • Nagata patch (normal interpolation) [paper], ray intersection [paper]
  • Orthonormal basis [paper]

Denoising

  • Bayesian Collaborative Denoising for Monte Carlo Rendering [paper]

Tone mappling

  • Reinhard [paper]
  • Filmic
  • Uncharted2

Requirement

Build tools

  • C++17 support compiler
  • CMake (version 3.10 or later) [page]

Dependency Library

  • Qt (version 5.11.0 or later) [page]

Usage

Please see wiki.

Installation

Test environments

Building step is tested in the following environments

  • macOS High Sierra + Apple Clang 9.1 + Qt 5.11.1 + CMake 3.12.1
  • macOS High Sierra + GCC 8.1 + Qt 5.11.1 + CMake 3.12.1
  • Ubuntu 16.04 + GCC 7.3 + Qt 5.11.1 + CMake 3.12.1
  • Ubuntu 16.04 + Clang 6.1 + Qt 5.11.1 + CMake 3.12.1
  • Windows 10 (64bit) + MinGW GCC 7.3 + Qt 5.11.1 + CMake 3.12.1
  • Windows 10 (64bit) + MSVC (Visual Studio 2017) + Qt 5.11.1 + CMake 3.12.1
  • Windows 10 (64bit) + Clang 6.1 (Visual Studio 2017) + Qt 5.11.1 + CMake 3.12.1

Download source code

% git clone https://github.com/byzin/Nanairo
% cd Nanairo
% git submodule init
% git submodule update

Setup

To build Nanairo, you need to add the Qt qmake path to PATH.
On Windows,

% set PATH=${qmake_path};%PATH%

On Linux and macOS,

% export PATH=${qmake_path}:$PATH

Python environment setup

Please see wiki for details.

Build

Please see wiki for details.

First, You need to move the build directory.
% cd ${project_root}/build

Next, we generate a Makefile using cmake.

On Linux or macOS

GCC

% CC=gcc CXX=g++ cmake -DCMAKE_BUILD_TYPE=Release ..
% cmake --build .
% ./Nanairo -style material

Clang

% CC=clang CXX=clang++ cmake -DCMAKE_BUILD_TYPE=Release -DZ_CLANG_USES_LIBCXX=ON ..
% cmake --build .
% ./Nanairo -style material

On Windows (MSVC)

Visual Studio 2017 64bit

% cmake -G"Visual Studio 15 2017 Win64" -DCMAKE_BUILD_TYPE=Release ..
% cmake --build . --config Release
% Release\Nanairo -style material

Packaging

Only Windows and Mac are supported.

After release building,

% cpack -C Release

License

LICENSE except for 3d model (resources/model) and spectrum (resources/spectrum) files.

Acknowledgement

Please see Acknowledgement.md.