LuisaRender 开源项目教程
1. 项目介绍
LuisaRender 是一个高性能的跨平台 Monte Carlo 渲染器,基于 LuisaCompute 框架开发。该项目旨在利用现代流处理器架构(如 CUDA、DirectX、Metal 和 ISPC)实现高质量的离线渲染。LuisaRender 不仅是一个渲染应用,还是一个在 SIGGRAPH Asia 2022 上介绍的高性能渲染框架。
2. 项目快速启动
2.1 环境准备
在开始之前,请确保您的硬件和平台满足以下要求:
- 支持 CUDA 的 Linux 和 Windows 系统
- 支持 DirectX 的 Windows 系统
- 支持 Metal 的 macOS 系统
- 支持 ISPC 和 LLVM 的所有主要平台
- 需要 RTX 支持的显卡(如 NVIDIA RTX 20 和 30 系列)
2.2 安装依赖
建议使用最新的 IDE、编译器、CMake 和 CUDA 驱动等工具。由于项目使用了 C++20 和 OptiX 7.1+ 等新技术,您可能需要升级您的开发环境。
2.3 克隆项目
使用以下命令克隆项目仓库:
git clone --recursive https://github.com/LuisaGroup/LuisaRender.git
2.4 配置和构建项目
进入项目目录并使用 CMake 配置项目:
cd LuisaRender
cmake -S . -B build -D CMAKE_BUILD_TYPE=Release
配置成功后,构建项目:
cmake --build build
2.5 运行项目
构建完成后,您可以在 build/bin
目录下找到 luisa-render-cli
可执行文件。使用以下命令运行项目:
./build/bin/luisa-render-cli -b <backend> [-d <device-index>] <scene-file>
例如:
./build/bin/luisa-render-cli -b cuda -d 0 scene.json
3. 应用案例和最佳实践
3.1 场景渲染
LuisaRender 支持 JSON 和自定义文本格式的场景描述。项目维护了一个独立的仓库用于存放演示场景。您可以使用提供的工具将 Tungsten 场景转换为 LuisaRender 的自定义场景描述语言,或将 glTF 场景转换为 JSON 格式。
3.2 最佳实践
- 硬件选择:建议使用支持 RTX 的 NVIDIA 显卡以获得最佳性能。
- 环境配置:确保使用最新版本的开发工具和驱动程序。
- 场景优化:在转换场景时,可能需要手动调整以修复转换错误或确保场景与原始外观一致。
4. 典型生态项目
4.1 LuisaCompute
LuisaCompute 是 LuisaRender 的基础框架,提供了底层的高性能计算支持。它是一个统一的接口层,支持多种硬件后端,如 CUDA、DirectX、Metal 和 ISPC。
4.2 Tungsten 场景转换工具
项目提供了一个 Python 脚本 tools/tungsten2luisa.py
,用于将 Tungsten 场景转换为 LuisaRender 的自定义场景描述语言。
4.3 glTF 场景导出工具
项目还提供了一个 CLI 应用程序 src/apps/export.cpp
,用于将 glTF 场景转换为 LuisaRender 的 JSON 格式。
通过这些工具和项目,您可以更方便地集成和扩展 LuisaRender 的功能,实现更复杂的渲染任务。