Change Log
From Sunflow Wiki
This is the text of the change log that comes with the Sunflow binaries for the Sunflow versions that are in the SVN.
v0.07.3
- Fixed bump mapping to correctly treat black as the lowest point in the map
- Added command line override for samples paramter (affect bucket and multipas samplers)
- Added cubic bspline filter to multipass image sampler (via warp function)
- Fixed "usage of init" statistic report in BIH
- Added cubic bspline filter
- Fixed counting of secondary rays clipped by ray depth limit
- Added lattice sampling routines (experimental)
- Fixed CornellBox light source sampling
- Fixed all image readers/writer to use buffered I/O
- Added motion blur syntax for instances and objects in .sc files
- Added shutter parameter to camera to allow motion blur of scene objects even when the camera is static
- Camera and Instances are now controlled by moving matrices and may be motion blurred
- Added MovingMatrix4 class
- Removed eye/target/up syntax for describing camera transform (parameters only - not .sc syntax)
- Added total rays to statistics output
- Fixed filtering in y direction for BucketRenderer
- Fixes to QMC sigma table - no longer requires precomputation
- Implemented low sampling density for ImageBasedLight in fixed mode
- Added PerlinModifier
- Bug fix to writeVerbatimString() in binary scene writer
- Added sampler choice to image block in .sc parser
- Small bugfix to command line sampler choice
- Moved shading cache into new image sampler
- Added a new image sampler (MultipassRenderer - not multipass yet)
- Added statistics to count number of rays cast
- Removed "robust" intersection code for triangles and bezier patches
- Added sphereflake primitive
- Moved Nan/Inf check into LightServer, demoted to warning severity
- Fix to allow LDR images in IBL
- File browser in SunflowGUI remembers previous directory
- Modified Matrix4 class to only accept affine transformations
- Added cylinder primitive
- Removed getUniqueName method from SunflowAPI
- Fixed more potential locale issues with case conversion by forcing the ENGLISH locale to be used
- Renamed get/setCurrentFrame to currentFrame in SunflowAPI
- Renamed parse to include in SunflowAPI
- Added reset keyword to new scene file format
- Fixed access levels on certain classes in org.sunflow package
- Fixed spelling of absorption in glass shader - left backwards compatibility in SCParser
- Added reading/writing of Indigo's IGI file format
- Added GenericBitmap format for simple debugging tasks
- Added more robust file extension detection
- Refactored Bitmap loading/saving with plugin system
- Bug fix when reading interpolation types on non-english operating systems
- Added -translate command line parameter
- Added translate() method to convert any file format into the new ones
- New ascii/binary file formats (sca/scb)
- Added new colorspace options for color parameters (blackbody/spectrum)
- Changed the way colors are specified to SunflowAPI
- Upgraded to Janino 2.5.6
- Added camera shift option to pinhole and thinlens camera lenses
- Updated examples
- Moved scene parsers to plugin system
- Moved photon maps to plugin system
- Replaced object factories with PluginRegistry lookups
- Updated all parsers
- Added PluginRegistry and modified SunflowAPI to create objects through it instead of requiring users to create objects themselves
- Changed cornellbox primitive into the light block in the .sc parser
- Light objects can now specify their geometric represtentation at runtime
- Particle point positions can now be specified inline in the scene file
- Particle data files can now be scene relative (via include paths)
- Improved motion blur sampling
- Moved shaderOverride to an option
v0.07.2
- Filled in and corrected javadoc comments in org.sunflow.core package
- Upgraded to Janino 2.5.5
- Added experimental Ant build file
- Removed hard coded sRGB curve
- Fixes to bucket renderer anti-aliasing
- Camera motion blur
- Added bezier patch meshes to parser
- Added normal smoothing to FileMesh
- Implemented BVH2 case properly in BoundingIntervalHierarchy (needs benchmarking)
- Added binary STL format to FileMesh
- Upgraded to Janino 2.5.4
- Improvements to Geometry class to handle tesselation failures
- Created FileMesh class for on-demand loading of meshes (supports RA3/OBJ)
- Tweaks to Benchmark class for third parties
- Small bugfixes
- Added little_endian option for particle files
v0.07.1
- Added Modifier concept - used to implement bump/normal mapping at the moment
- Added bucket dumping debugging option to bucket render - saves out unfiltered buckets as they are rendered
- Fixed jitter option - added to SCParser image block
- Added basic absorbtion model to GlassShader
- Added ngon sampling to ThinLens for bokeh effects
- Renamed MeshLight to TriangleMeshLight
- Updated LightSource interface - lights must now do their own loop to take mutltiple samples
- Spherical triangle sampling for triangle lights
- New wireframe shader (-quick_wire command line option)
- Added calls to get triangle vertices
- Added camera space utility functions
- Upgraded to Janino 2.5.3
- Upgraded to Janino 2.5.2
- Added sun light to SunSkyLight - modified LightSource interface slightly
- Added support for "noinstance" keyword
- Unified instance handling in .sc parser
- Added -pathgi command line argument
- Added basic animation support
- Added SunSkyLight
- Added QuadMesh primitive type (using bilinear patches)
- Added real sphere lights
- Console display now outputs to stderr to allow stdout to be used for output redirection
- Added fisheye lens to .sc parser
- Added imgpipe display compatible with mental ray imgpipe protocol
- Experimental fix to light bleeding problem
- Removed -accel command line option
- Deprecated use of accel keyword in .sc files - the default is usually best
- Moved accel into an option parameter
- Added -filter command line option
- When baking a lightmap without viewdep, a camera is not required in the scene
- Added -bakedir command line option
- Added baking.viewdep option to control lightmap baking style
- Lightmap baking can now either be view-dependent (to the current camera) or orthographic (perpendicular to the point being shaded)
- Added XYZColor class to represent colors with CIE coordinates
- Rengereated golden images for Benchmark data
- Fixed a subtle problem with float/int constructors for the Color class
- Added lightmap baking - only triangular meshes are supported at the moment
- Renamed DLASurface to ParticleSurface
- SCParser: Made all the options in the image block optional
- Added fake spherical lights (approximated by point lights - using the trick from the Lightcuts paper)
- Bug fix to RA2Parser (was passing fov argument to camera incorectly)
- Added a method to dump Mesh objects to .obj files (usefull for procedural geometry debugging)
- Added DLASurface for efficient rendering of large sets of spheres
- Split Camera into CameraLens (which is an interface to generate rays in camera space) and an internal Camera class which rotates the rays into world space
- Upgraded to Janino 2.5.1
- Upgraded to Janino 2.5.0
- Parser now generates bezier patch primitives intead of triangles is the subdivs/smooth parameters are ommited
- Added exact Ray/Bezier-patch intersection code
- Added Teapot and Gumbo primitives, both using bezier patch descriptions
- Added Bezier patch mesh, which generates a triangle mesh at runtime
- Added janino-tesselatable primitive
- Added on demand tesselation of primitives
- Added a parser for hair curve data as export by Shave and Haircut (http://www.joealter.com)
- Added a hair curve primitive
- Implemented parameter system for all render object creation
- Textures are now loaded on demand, when they are first accessed
- Modified bucketOrder call in SunflowAPI to create inverted bucket orders
- Added InvertedBucketOrder
- Added RandomBucketOrder
- Added Box primitive
- Removed SimpleShader from parser classes
- Added SimpleShader which shades using facing ratio
- Modified IDShader to be based on instance ID only, and to use facing ratio for better shading
- Added -quick_id option on the command line to override using IDShader
- Slight simplification of KDTree traversal
- Added ParameterList class to store arbitrary name/value pairs
- AccelerationStructure's are now built on demand for each geometry
- Added verbosity control to the UI system. Accessible on the command line using "-v n".
- Modified Scene to use an InstanceList
- Converted Janino invocations to use the default system compiler
- Upgraded to Janino 2.5.0
- Modified Mesh class to implement the AggregateTraceable interface
- Added AggregateTraceable interface
- Implemented Instance/Traceable combination
- Added checks for black diffuse/specular components
- Added PerlinVector which produce vector valued noise
- Renamed ImprovedNoise to PerlinScalar and added renderman-like calls
