/Lambda

Physically based Monte Carlo renderer written in C++

Primary LanguageC++

Lambda

A high performance physically-based renderer.

Overview

Geometry
Triangle primitives and meshes are currently supported, however the primitive options are extensible via Embree. Instance proxies and objects allow scenes to contain large amounts of geometry with little memory usage.

Materials & Shading
Materials are simple objects containing surface and volumetric properties that are driven by node networks. These are executed in a fast virtual node machine and do not need compiling, meaning edits take place immediately in real time.
- Standard BSDFs: Lambertian, transparent/translucent, specular reflectionand transmission.
- PBR BSDFs: Fresnel, GGX, Oren-Nayar, Beckmann-Spizzichino, etc.
- PBR volumetric shading models.
- Standard scalar and vector mathematical operators are supported.
- Image textures
- Procedural textures: Perlin, value, Voronoi, etc noise types - 2D & 3Dsupport and octave stacking.

Rendering
Rendering uses an unbiased Monte Carlo path-tracing implementation:
- PBRT-style spectral path-tracing
- Multiple importance sampling
- Equiangular medium sampling
- Light tree sampling for better efficiency and many lights support
Pass rendering is supported for albedo, direct lighting, normals, depth etc. Custom pass rendering is also supported.
- Environment/infinite lights
- Point lights
- Spotlights
- Mesh lights

Camera
- Thin lens camera: DOF with custom bokeh/aperture shape.
- Spherical camera

Concurrency
Multithreaded rendering.
Progressive rendering. Performance-critical code is optimised with SIMD vectorization.

Glass rendering

Glass rendering

Transparency in materials (leaves).

Denosing example

Passes example

Blackbody lamps and MixBSDF

Volumetric Scattering

Ocean render test @400spp

Third Party Dependencies

Third Party Libraries

Future goals

  • Globe rendering & precision techniques for planetary scale rendering
  • Sobol' sampler with Owen scrambling
  • Path guiding
  • Fast raytraced look-dev rendering
  • Better post processing options
  • Deep compositing AOVs
  • Bidirectional pathtracing integrator
  • Realistic camera model with lens and sensor profiles
  • Parameterised Hair BSDF (Bitterli, Chiang - 2016)
  • Virtual-displacement mapping
  • Animated transforms & deformables
  • Light-pass rendering
  • Physical-atmosphere with clouds