Sunflow
Sunflow Global
Illumination Rendering System (Sunflow) is an open source rendering
system for photo-realistic image synthesis. It is built around a
flexible ray tracing core and an extensible object-oriented
design.
It was created as a framework for experimenting with global
illumination algorithms and new surface shading models.
Features include:
- Fully extensible architecture. Almost every aspect of the
renderer can be customized
- User extensible features are exposed as interfaces, making
it easy to integrate into existing applications
- Simple API for procedural scene creation
- Direct Illumination with soft shadows from area lights
- Adaptive sampling of area light sources
- Quasi-Monte Carlo sampling architecture: all sampling
operations are fully deterministic
- Depth of field
- Camera motion blur
- Multi-threading
- Photon Mapping (for global illumination and caustics)
- Run-time compilation of shaders (via Janino)
- Lazy processing of tesselation, acceleration structure
building and texture loading
- Lightmap generation (render to texture)
- Instancing (many copies of the same object take up very
little additional memory)
- Bucket renderer
- Adaptive anti-aliasing (over and under sampling)
- Bucket based rendering (programmable ordering)
- Multi-pixel image filtering
- Progressive refinement renderer
- Texture mapping (JPG, PNG, TGA, HDR loaders)
- Bump mapping
- Normal mapping
- Custom scene format: basic translators exist for 3ds files
and Blender
- Output formats: HDR, PNG, TGA, OpenEXR (tiled only)
- Written 100% in Java
- Simple Swing GUI with progressive rendering display and
console.
- Simple Swing display driver that can be embedded in other
applications.
- Primitives
- Triangle mesh
- Hair curves
- Disk
- Sphere
- Torus
- Banchoff surface
- Bezier patches (built-in teapot and gumbo models) -
tesselated on demand
- Infinite plane
- Cube-grid (eg: Menger Sponge)
- Cornell Box
- Julia Quaternion Fractal
- Particle Surface (large sets of spheres)
- Programmable (surfaces can be tesseleated by Java code
compiled and executed on demand)
- Cameras lenses
- Pinhole
- Spherical (produces a longitude/lattitude environment
map
- Thinlens (produces depth of field effects, including
bokeh)
- Fisheye
- Ray intersection accelerators
- SAH KD-Tree
- Bounding Interval Hierarchy (paper)
- Uniform grid
- Bounding volume hierarchy
- Null (for simple scenes)
- Surface shaders
- Diffuse
- Mirror
- Glass (with absorbtion)
- Phong (with glossy reflections)
- Ambient occlusion
- Shiny diffuse
- Anisotropic ward
- Wireframe
- Programmable (in Java - compiled during scene loading)
- Surface modifiers
- Bump mapping
- Normal mapping
- Light sources
- Point light
- Directional spotlight
- Triangle area light (paper)
- Image-based infinite area light
- Physically based sun/sky system (paper)
- Photon mapping engines
- Image filters
- Box
- Triangle
- Gaussian
- Blackman Harris
- Catmull-Rom
- Mitchell
- Lanczos
- Sinc
- Bucket orderings
- Hilbert
- Spiral
- Row
- Column
- Diagonal
- Random
- Global illumination engines
- Irradiance caching
- "Instant GI" - based on "Illumination in the Presence
of Weak Singularities" (Thomas Kollig, Alexander Keller)
- Path tracing
- Fake ambient term
- Ambient occlusion
Return
to Graphics Home Page | Return
to Renderers Home Page
Last Updated Saturday, June 09 2012 @ 05:47 PM EDT |