Feature list - LuxRender Wiki

Feature list

Personal tools

From LuxRender Wiki

Jump to: navigation, search

NOTE - this document is severely outdated and needs to be updated. radiance

Contents

GENERAL

LuxRender is a heavily modified GPL fork from the PBRT sources, keeping portability between both codebases intact whenever possible, and implements new features as a superset of PBRT's.


User Frontends

  • FLTK based Graphical User Interface with interactive rendering controls, tonemapping controls and a progressive/linear viewport. Realtime engine control with Adding & Removing of rendering threads and start/pause/restart controls.
  • Portable and consistent look & feel across platforms.
  • Command Line User Interface for headless/scripted operation.
  • Direct Blender python User Interface using the C++ API together with boost::python (no scenefile output and engine launch/loading/parsing is required). (slated for v0.2 release)
  • Integrated into Maya as a python scripted plugin. Outputs scene data for running lux as a separate process to Maya.

Compatibility/Optimization

  • Native 32- & 64 bits binaries for GNU/Linux, MS-Windows(R) and MacOS X(R) operating systems will be provided for all major releases.
  • Multithreading for multi-core or SMP systems. Thread control is available in the API, which allows for creation and removal of threads on the fly during rendering.
  • Intel SSE/SSE2 SIMD code-level optimizations for vector/matrix types.
  • Boost C++ Shared Libraries are used throughout the system.


C/C++ Programming API

  • Flexible and complete C/C++ programming API, which allows for direct integration of the LuxRender Engine core into applications. (provided GPLv3 licensing conditions are met.)
  • Hierarchical graphics state with attribute and transformation stacks, and active light retention.
  • Plans are in the works to align the API with Blender for direct integration of the engine into Blender as a shared library. v0.2 release will allow a pseudo implementation of this concept through python > C++ API calls (using boost::python)


Scene File format

  • Compact RIB-like file format which implements the complete API. (.lxs extention)
  • Fast Flex/Bison file scanner/parser.


Engine Core

Surface Integrators

  • Unbiased
    • path (Path Tracing)
    • bidirectional (Bidirectional Path Tracing)
  • Biased
    • exphotonmap (Photonmapping using final gathering)
    • irradiancecache
    • igi (Instant Global Illumination)
    • directlighting
  • Misc
    • debug (Visual debugging integrator)


Volume Integrators

  • single (Single Scattering)
  • emission (...)

Samplers

  • metropolis (MLT prototype, v0.2, path/bidirectional integrators only)
  • lowdiscrepancy (Quasi Random using [0,2] sequences)
  • random (Pseudo Random using a Mersenne Twister generator)
  • stratified (subdivision of non-overlapping regions)
  • bestcandidate (patterned using dart throwing)

All samplers are adaptive and can provide samples for all integrators, except the Metropolis-Hastings sampler, which can draw samples from all other samplers and provide them mutations to path/bidirectional.

Image film can be sampled progressively (eg watch as the render becomes less and less noisy), or traditional linear/finite.

Geometry

Intersection Acceleration Structures

  • grid (Uniform grid)
  • kdtree (SAH KDtree)


Shapes/Primitives

  • sphere (full or partial with u/v parameters)
  • cylinder (full or partial with angle parameter)
  • disk (full or partial with angle parameter)
  • cone (full or partial with angle parameter)
  • paraboloid (full or partial with angle parameter)
  • hyperboloid (full or partial with angle parameter)
  • trianglemesh
  • heightfield
  • loopsubdiv (loop subdivision from base control mesh with arbitrary levels)
  • nurbs (Non Uniform B-Splines)


Lightsources

Geometric

  • area

An emissive lightsource which can use any Shape as it's geometry. Also called a 'mesh emitter' if used with a trianglemesh Shape. (supports Exit Portals)


Environment

  • sunsky
 Physically based Sunlight & Daylight model (Preetham/Shirley/Smits) as used in most modern unbiased renderers. (supports Exit Portals)
  • infinite
 Infinite Area Light, environment lightsource/map using a colour or texture. (supports Exit Portals)
  • infinitesample
 Same as above but using improved sampling. (supports Exit Portals)


Traditional

  • distant (Parallel lightsource)
  • goniometric (Goniophotometric diagram lightsource)
  • point (Traditional point light source)
  • projection (Texture projection lightsource)
  • spot (Traditional spot light source)


Camera Models

  • perspective
 Supports true DOF (depth of field) using lens radius and focal distance parameters.
 Supports exposure control using shutter open/close time parameters.
  • orthographic
  • environment


Materials, Volumes & Textures

BRDFs

  • Diffuse
    • Lambertian
    • Oren-Nayar (using sigma parameter)
  • Specular
    • Perfect Specular
    • Glossy Specular using any of the following Microfacet distribution models:
  • Torrange/Sparrow (Isotropic, linear)
  • Blinn (Isotropic, exponential fallof)
  • Ashikmin/Shirley (Anisotropic/exponential with separate u/v parameters)
  • Mixing
    • Fresnel for Dielectrics (using IOR parameter)
    • Fresnel for Conductors (using n/k parameters)
    • Fresnel blending for specular with diffuse-substrate (Ashikmin/Shirley model)


Materials

Unified Material System (slated for v0.2 release)

A new innovative programmable material system is currently in development and slated for v0.2 release.

The new system allows for recursive material definitions down to the BRDF level, while providing easy to use frontends for artistic users and dynamic frontends in the exporters/GUI's. Legacy PBRT Material System (current, v0.1 release)

  • matte (Lambertian or Oren-Nayar 'matte paint' diffuse reflection)
  • plastic (Glossy Dielectric Diffuse/Specular using a Blinn Microfacet distribution)
  • shinymetal (Glossy Conductor Diffuse/Specular using a Blinn Microfacet distribution)
  • substrate (Glossy Frensel Blended Diffuse substrate/Specular superstrate using an Iso/Anisotropic Ashikmin/Shirley Microfacet distribution)
  • glass (Fresnel Dielectric with perfect specular reflection and transmission)
  • translucent (Fresnel Dielectric with glossy specular reflection and transmission using a Blinn Microfacet distribution)
  • mirror (Perfect specular reflection)
  • uber (Flexible base material with control over all reflection/transmission BRDFs)
  • bluepaint (measured)
  • brushedmetal (measured)
  • clay (measured)
  • felt (measured)
  • primer (measured)
  • skin (measured)


Textures

All textures can be used to modulate any material/BRDF parameter as well as material Bump maps. Mappings

  • 2D u,v Mapping
  • Planar Mapping
  • Spherical Mapping
  • Cylindrical Mapping
  • 3D Mapping


Mixing

  • mix (Mix any two textures using a specified amount)
  • scale (Multiply 2 textures)


Image Textures

  • imagemap (HDR or LDR image texture, with MIPMAPs)
  • Filtering
  • bilerp (Bilinear)
  • EWA (anisotropic)


Solid & Procedural Textures

  • checkerboard (2D or 3D parametrizeable checks)
  • constant (Constant Spectrum)
  • dots (Polka dots, using Perlin noise)
  • fbm (using Multi octave Perlin noise)
  • marble (using Multi octave Perlin noise)
  • windy (using Multi octave Perlin noise)
  • wrinkled (using Multi octave Perlin noise)


Volumes

  • exponential
  • homogenous
  • volumegrid (3D grid based volume)

Film/Texture Imaging Pipeline

Colour handling

  • Spectra (used throughout the render engine core)
  • CIE XYZ (intermediate, useable from API and for XYZ output formats)
  • RGB(A) (used for colour definitions in scene file format/API and RGB(A) image output.)


Film / Texture Image file formats

  • OpenEXR RGBA
  • TGA (24bits RGB or 32bits RGBA)
  • All formats supported by the FreeImage library (slated for v0.2 release)


Tonemapping Kernels

  • contrast
  • highcontrast
  • maxwhite (Maximum to White)
  • nonlinear (Spatially varying non-uniform scale based on Reinhard2001)
  • reinhard (Implementation of nonlinear/Reinhard2004 with burn, pre- and postscale parameters)


Additional Pipeline Features

  • HDR Bloom filter
  • Gamma correction
  • Pre-Quantization output dithering

Pixel Sample Reconstruction Filters

All filter sizes are parametrizeable.

  • box
  • gaussian
  • mitchell
  • sinc
  • triangle