Sito: http://sunflow.sourceforge.net/
Sunflow is an open source rendering system for photo-realistic image synthesis. It is written in Java and 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.
Sunflow is an open source rendering system for photo-realistic image synthesis. It is written in Java and 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.
Current Features
- 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
- 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
- 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
- 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
- Image-based infinite area light
- Physically based sun/sky system
- Photon mapping engines
- KD-Tree
- Grid based
- 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"
- Path tracing
- Fake ambient term
- Ambient occlusion
Contributors:
- Robert Lindsay
- Blender exporter
- Rami Jarakivi
- TGA input/output
- OpenEXR display driver
- Swing GUI Drag and drop support
- Various bug fixes and optimizations
- Kristoffer Berg
- Website design
- Logo design
- Artur Brinkmann
- Documentation
Planned Features
- Documentation (!)
- Infinite progressive rendering
- Shader graphs
- Improved shader API
- Dataflow formulation of the rendering pipeline
- Advanced Swing GUI with support for all rendering options
- Volume shaders for participating media
- Geometric and light source motion blur
- Spectral rendering