zhiwei-c / Monte-Carlo-Path-Tracing

A simple Monte Carlo path tracer based on assignment 7 of GAMES101 originally, accelerated by C++ multithreading or CUDA.
81 stars 7 forks source link
computer-graphics graphics raytracer raytracing rendering

蒙特卡洛路径追踪(Monte-Carlo-Path-Tracing)

banner

一个路径追踪小程序,利用了 CPU 多线程或 CUDA 加速计算。项目最初参考了《GAMES101: 现代计算机图形学入门》的作业7,有大幅度的调整。

学习笔记保存于知乎专栏

A simple Monte Carlo path tracer based on assignment 7 of GAMES101 originally, accelerated by C++ multithreading or CUDA.

1 Features

1.1 Integrators

1.2 表面散射模型(Surface Scattering Models)

1.3 参与介质(Participating Media)

1.4 其它

1.4.1 历史存档项目(Archived)特有的功能

Following features are only available in archived version.

2 Building & Compiling

2.1 Dependencies

项目使用 vcpkg 进行 C++ 库管理。

automatically import from extern folder:

2.2 CMake Option

2.3 Usage

Command Format: [-c/--cpu/-g/--gpu/-p/--preview] --input/-i 'config path' [--output/-o 'file path] [--width/-w 'value'] [--height/-h 'value'] [--spp/-s 'value']

Program Option:

3 Gallery

3.1 Cornell Box

cornell box

3.2 Box

box

3.3 Lte-Orb, Rough Glass

lte-orb, rough glass

3.4 Lte-Orb, Silver

lte-orb, silver

3.5 Dining Room

dining room

3.6 Classroom

classroom

4 References