Fumeng is a hobby project which implements a monte-carlo path tracer from scratch. Fumeng means illusory dream in English.
- Pin-hole camera
- Thin-lens camera (with depth of field)
- Sphere
- Rectangle
- Triangle
- OBJ mesh
- Lambert diffuse
- Specular reflection
- Specular transmission
- Disney BSDF
- Subsurface scatering
- Volumetric media
- Directional light
- Area light
- Image-based light (HDR)
- Built-in BVH
- Embree BVH (opitional, but highly recommended)
- Basic monte-carlo path tracer
- Bidirectional path tracer
- Multiple importance sampling
- OIDN denoise (opitional, but highly recommended)
- Tonemapping
- Image texture
- Constant texture
- Checkerboard
- Custom description using json
git clone --recursive https://github.com/hietwll/Fumeng.git
Both Embree and OIDN are optional for Fumeng, but it's strongly recommended to use them. You can just download the pre-built packages from their websites, and extract the packages.
cd /path/to/fumeng
cmake -B build -DCMAKE_BUILD_TYPE=Release -DUSE_FLOAT=TRUE -DUSE_EMBREE=TRUE -DUSE_OIDN=TRUE -Dembree_DIR=/path/to/embree/lib/cmake/embree-x.x.x -DOpenImageDenoise_DIR=/path/to/oidn/lib/cmake/OpenImageDenoise-x.x.x
- -DUSE_FLOAT: use single precision if TRUE, use double precision if FALSE
- -Dembree_DIR: directory of embree cmake config file
- -DOpenImageDenoise_DIR: directory of embree cmake config file
cmake --build build --parallel 4 --target CMD_EXE
Supported complier:
- VS 2017/2019 for windows
- gcc and clang for linux
cd /path/to/fumeng/scenes
../build/src/cmd/CMD_EXE DamagedHelmet/DamagedHelmet.json
result can be found in the same directory of the scene file.
fumeng's People
Forkers
sfordjRecommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.