Giter VIP home page Giter VIP logo

lajolla_renderer's Introduction

lajolla Path Tracer

Disney BSDF Volume PT

This is the implementation of UCSD CSE 272 course project. It's an advanced path tracer with 2 key features: Disney Principled BSDF and volumetric path tracing.

Other more basic pathtracer features like axis-aligned bounding boxes (AABB), texture mapping, effective sampling, multiple-importance sampling (MIS), next-event estimation (NEE) are implemented in another project: Torrey. Those features are provided as starter code by our instructur Tzu-Mao Li in lajolla. FYI: La Jolla and Torrey Pines are the 2 neighborhoods that sandwich UCSD

Build & Run

Filled in .obj files:

I git-ignored those mesh definition files in my repo, so please head to the starter code and swap in the scenes folder.

This portion is copied from the original README:

All the dependencies are included. Use CMake to build. If you are on Unix systems, try

mkdir build
cd build
cmake ..
cmake --build .

It requires compilers that support C++17 (gcc version >= 8, clang version >= 7, Apple Clang version >= 11.0, MSVC version >= 19.14).

Apple M1 users: you might need to build Embree from scratch since the prebuilt MacOS binary provided is built for x86 machines. (But try build command above first.)

For Windows users, I personally find using Visual Studio easier:

For Visual Studio 2017 or later, you can directly "Open a local folder" on the clone repo and Visual Studio will configure the rest for you.

If you prefer the OG style that opens a project/solution, you can use CMake-gui to generate a solution definition for you.

  1. make sure you have installed CMake and open CMake (cmake-gui)
  2. Where is the source code: PATH-TO-ROOT
  3. Where to build the binaries: PATH_TO_ROOT/build
  4. Configure, Generate, Open Project, Bingo!

To run:

Make sure you are at the project root and

PATH_TO_EXE/lajolla scenes/cbox/cbox.xml

Disney Principled BSDF

Relevant scene definitions are located in scenes/disney_bsdf_test;

For the underlying theories and implementation details, see HW1 handout and my code.

Volumetric Path Tracing

Relevant scene definitions are located in scenes/volpath_test;

For the underlying theories and implementation details, see HW2 handout and my code.

lajolla_renderer's People

Contributors

bachili avatar thomaswang0822 avatar alstonxiao avatar jf514 avatar ken2576 avatar weichenliu avatar th3charlie avatar tonyzyt2000 avatar arthur-x avatar cjkkkk avatar yashbelhe 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.