Raven is an under developing offline ray tracing renderer written in C++17 and runs on windows. It provides basic implementation of the functionalities required to solve the rendering equation.
Raven only supports reflective materials by now, transmissive materials and volume scattering participating media will be added in the future.
- 2022/4/16 Glass and Mirror material is supported. Raven has added two classes that handle specular reflection and specular transmission respectively.
- 2022/4/2 Microfacet shading models is now available! Raven is now supporting smith GGX and Beckmann microfacet distributions, it also adds a new class to compute fresnel value for dielectrics and conductors.
Name | Description |
---|---|
Renderer(Integrator) | Loop over film, solve rendering equation and compute pixel color |
Film | Store pixel value computed by renderer class, filter and output rendered image |
Camera | Generate rays |
Light Source | Provide illumination to scene |
Scene | Store shapes,lights and their related pointers, passing them to renderer |
Shape | Geometric entities in the scene |
Material | Surface attributes of a primitive, composed of a set of shading models |
Shading model(BxDF) | Implementation of surface bxdf, decide reflection/ transmission direction and energy attenuation |
Texture | a set of values mapped to 2D surface/3D volume |
Sampler | Generating random numbers between [0,1] |
- Path Tracing
- Volume Path Tracing
- Direct Lighting
- Perspective Camera
- Orthographic Camera
- Diffuse Area Lights
- Sphere
- Triangle Meshes
- Lambertain
- Smith GGX
- Beckmann-Spizzichino
- Fresnel reflection(Specular reflection)
- Fresnel transmission(Specular transmission)
- Mirror
- Glass
- Matte
- Plastic
- Constant Texture
- Checkered Texture
- Image Texture