Skip to content
This repository has been archived by the owner on Nov 27, 2024. It is now read-only.

Latest commit

 

History

History
296 lines (194 loc) · 14.1 KB

README.md

File metadata and controls

296 lines (194 loc) · 14.1 KB

LuisaRender (Coroutine Version, SIGGRAPH Asia 2024)

This is the source code for the path tracing application described in the SIGGRAPH Asia 2024 paper

GPU Coroutines for Flexible Splitting and Scheduling of Rendering Tasks

For the underlying computing framework, LuisaCompute's coroutine version, please refer to LuisaCompute-coroutine.

⚠️ Note: we have archived this repository as we are re-designing the IR layer for the main-stream LuisaCompute. The coroutine features will be re-implemented on that new IR in the future.

LuisaRender (Original Version, SIGGRAPH Asia 2022)

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!