Git Product home page Git Product logo

dehezhang2 / kombu Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 542.24 MB

Physically based renderer based on Nori in C++11

Home Page: https://dehezhang2.github.io/Kombu/

License: GNU Affero General Public License v3.0

CSS 0.15% JavaScript 0.07% HTML 1.41% CMake 0.27% C 14.01% Makefile 0.10% C++ 80.47% Shell 0.09% M4 0.21% Less 0.01% Objective-C 0.21% Fortran 2.16% Python 0.33% Cuda 0.01% Lua 0.01% Objective-C++ 0.01% NASL 0.17% Batchfile 0.02% Java 0.02% Assembly 0.28%
computer-graphics cpu-rendering monte-carlo-integration photon-mapping ray-tracing renderer volumetric-rendering

kombu's Introduction

The Kombu Renderer

Deheng Zhang, Ganlin Zhang

Overview

earth_water_2.0

This is a physically based renderer based on Nori in C++11. The functions supported include path tracing with multiple importance sampling (MIS), photon mapping, volumetric path tracing with MIS, heterogeneous media, different distance sampling and transmittance estimation methods (ray marching, delta tracking, and ratio tracking), bilateral filter with uniform variance denoting, directional light, anisotropic phase function, object instancing, Disney BSDF, environment map and texture, stratified sampling, blend and conductor BSDF, bump mapping. For more information, please view our project website.

The renderer is developed for the rendering competition in ETH Computer Graphics course 2022. Please DO NOT directly copy the code from this repository, we only provide the code for reference.

Installation

  • All the codes are tested in the following environment:

    • Mac OS (Version 11.6), Linux (Ubuntu 20.04, 22.04)
    • CMake (Version 3.16.3, 3.20.2, 3.25.2)
  • Install Qt4: You need to install Qt4 for the heterogeneous volume data reading:

    • Mac:

      conda remove --force qt
      brew uninstall --force qt
      brew tap cartr/qt4
      brew tap-pin cartr/qt4
      brew install qt@4
      conda install -c pkgw-forge qt4
    • Linux:

      sudo add-apt-repository ppa:rock-core/qt4
      sudo apt update
      sudo apt install qt4-dev-tools libqt4-dev
      sudo apt-get install xorg-dev libglu1-mesa-dev
  • Build the code (or you can directly use the compiled release version)

    cd code
    mkdir build
    cd build
    cmake ..
    make -j 4

Data Preparation

Please download the scene from polybox, and unzip the file using unzip sample_scene.zip. The layout should looks like this:

code
└── final_scene
    ├── bounds.obj
    ├── earth_water_4.0.exr
    ├── earth_water_5.0.exr
    ├── earth_water_5.0.png
    ├── earth_waterdenoised_4.0.exr
    ├── earth_waterdenoised_5.0.exr
    ├── earth_waterdenoised.exr
    ├── earth_waterdenoised.png
    ├── earth_water.exr
    ├── earth_water.png
    ├── earth_water.xml
    ├── light.obj
    ├── meshes
    ├── obj_chimney_meshes
    ├── obj_meshes
    ├── smoke_exp
    ├── smoke.vol
    └── texture

Demo

  • Run the renderer using:
cd code/build
./kombu ../final_scene/earth_water.xml

License

The code is released under the GPL-3.0 license.

kombu's People

Contributors

dehezhang2 avatar zhangganlin avatar

Stargazers

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