• Stars
    star
    258
  • Rank 158,189 (Top 4 %)
  • Language
    C++
  • License
    BSD 3-Clause "New...
  • Created over 5 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

High-Performance Cross-Platform Monte Carlo Renderer Based on LuisaCompute

LuisaRender

LuisaRender is a high-performance cross-platform Monte-Carlo renderer for stream architectures based on LuisaCompute.

LuisaRender is also the rendering application described in the SIGGRAPH Asia 2022 paper

LuisaRender: A High-Performance Rendering Framework with Layered and Unified Interfaces on Stream Architectures.

See also LuisaCompute for the underlying framework as described in the paper; and please visit the project page for other information about the paper and the project.

Building

LuisaRender follows the standard CMake build process. Basically these steps:

  • Check your hardware and platform. Currently, we support CUDA on Linux and Windows; DirectX on Windows; Metal on macOS; and ISPC and LLVM on all the major platforms. For CUDA and DirectX, an RTX-enabled graphics card, e.g., NVIDIA RTX 20 and 30 series, is required.

  • Prepare the environment and dependencies. We recommend using the latest IDEs, Compilers, CMake, CUDA drivers, etc. Since we aggressively use new technologies like C++20 and OptiX 7.1+, you may need to, for example, upgrade your VS to 2019 or 2022, and install CUDA 11.2+.

  • Clone the repo with the --recursive option:

    git clone --recursive https://github.com/LuisaGroup/LuisaRender.git

    Since we use Git submodules to manage third-party dependencies, a --recursive clone is required.

  • Configure the project using CMake. E.g., for command line, cd into the project folder and type cmake -S . -B <build-folder>. You might also want to specify your favorite generators and build types using options like -G Ninja and -D CMAKE_BUILD_TYPE=Release. A typical, full command sequence for this would be like

    cd LuisaRender
    cmake -S . -B build -D CMAKE_BUILD_TYPE=Release
  • If the configuration succeeds, you are now able to build the project. Type cmake --build <build-folder> in the command line, or push the build button if you generated, e.g., a VS project. (And in case the configuration step unluckily failed :-(, please file an issue).

  • After building, you will find the CLI executable at <build-folder>/bin/luisa-render-cli.

See also BUILD.md for details on platform requirements, configuration options, and other precautions.

Usage

Use command line to execute LuisaRender:

<build-fodler>/bin/luisa-render-cli -b <backend> [-d <device-index>] <scene-file>

To print the help message about the command line arguments, simply type

<build-fodler>/bin/luisa-render-cli -h

or

<build-fodler>/bin/luisa-render-cli --help

Scenes

LuisaRender supports a JSON-based and a custom text-based formats for scene description. We maintain the demo scenes in a separate repo. We sincerely thank all the authors, Rendering Resources, Poly Heaven, and Blender Demo Files for sharing these amazing resources.

We also provide a simple script at tools/tungsten2luisa.py to convert Tungsten scenes into LuisaRender's custom scene description language; and a CLI application at src/apps/export.cpp (compiled to <build-folder>/bin/luisa-render-export) to convert glTF scenes to LuisaRender's JSON-based format. But please note that both tools are not perfect. Manual tweaks are sometimes necessary to fix conversion errors and/or align the converted scenes to their original appearances.

Contemporary Bathroom

Download: LuisaRender

  • Credit: Mareck (CC0)
  • Converted from Tungsten version at Rendering Resources
  • Resolution: 1024x1024
  • Samples: 65536
  • Tonemapping: ACES (exposure = -0.5)

Bathroom

Bedroom

Download: LuisaRender

  • Credit: SlykDrako (CC0)
  • Converted from Tungsten version at Rendering Resources
  • Resolution: 1280x720
  • Samples: 65536
  • Tonemapping: Uncharted2

Bedroom

Camera

Download: LuisaRender

  • Credit: All resources in the scene are from Poly Heaven (CC0, see the contained README.txt for the detail of each resource)
  • Resolution: 3840x2160
  • Samples: 65536
  • Tonemapping: Uncharted2

Camera

Kitchen

Download: LuisaRender

Kitchen

Spaceship

Download: LuisaRender

  • Credit: thecali (CC0)
  • Converted from Tungsten version at Rendering Resources
  • Resolution: 1920x1080
  • Samples: 16384
  • Tonemapping: Uncharted2

Kitchen

Modern Hall

Download: LuisaRender

Staircase2

The Wooden Staircase

Download: LuisaRender

Staircase

Coffee Maker

Download: LuisaRender

Coffee

Japanese Classroom

Download: LuisaRender

Classroom

The Breakfast Room

Download: LuisaRender

Dining Room

The Grey & White Room

Download: LuisaRender

Living Room

The White Room

Download: LuisaRender

Living Room 2

The Modern Living Room

Download: LuisaRender

Living Room 3

Glass of Water

Download: LuisaRender

  • Credit: aXel (CC0)
  • Converted from Tungsten version at Rendering Resources
  • Resolution: 1920x1080
  • Samples: 16384
  • Tonemapping: Uncharted2

Glass of Water

Salle de bain

Download: LuisaRender

Salle de bain

Lone Monk

Download: LuisaRender

  • Credit: Carlo Bergonzini / Monorender (CC-BY)
  • Converted from Blender Cycles format at Blender Demo Files
  • Resolution: 6000x4000
  • Samples: 65536
  • Tonemapping: Uncharted2 (exposure = +1)

Lone Monk

Sky Texture Demo

Download: LuisaRender

  • Credit: Blender Studio (CC0)
  • Converted from Blender Cycles format at Blender Demo Files
  • Resolution: 3840x2160
  • Samples: 1024
  • Tonemapping: Uncharted2 (exposure = +1)

Sky Texture Demo

Bathroom Interior

Download: LuisaRender

Bathroom Interior

JINX!

Download: LuisaRender

JINX!