Changelog

version 2.5.0

  • volumetric rendering (built-in raymarching)
    • primvars support
    • shading language model
    • RenderMan client updates
    • Pyg client updates
    • documentation updates
  • volume primitives
    • sphere
    • box
    • cone
    • cylinder
    • OpenVDB volume densities
  • new shape primitive
    • OpenVDB level sets

version 2.4.4

  • upgrades to OpenImageIO and OpenShadingLanguage
    • fixes some really weird bugs
  • shader fixes
  • RenderMan client updated to version 4.0
    • RIS calls are just stubs for now !

version 2.4.3

  • API Command partially implemented
  • new projection "equirectangular"
  • rib client
    • MakeTexture implemented
    • MakeLatLongEnvironment implemented
  • connections to/from array members or vector components implemented
  • automipmapping can be disabled
  • expanded and improved shader library
  • upgrades to OpenEXR, OpenImageIO, OpenShadingLanguage
  • support valence 2 vertices on subdivision surfaces
  • fix "debug_nan" warnings
  • fix issues with
    • global illumination
    • bump mapping
    • camera parameters
    • motion blur
    • crop window display
    • partial spheres sampling

version 2.4.2

  • primvars fully functional with lots of code refactoring
  • unsized arrays as shader parameters
  • correctly propagate differentials for all types of rays (shadow, diffuse, reflection/refraction)
  • calculatenormal shadeop works when a ray passes through a refractive material
  • repair nu-patches when the uorder or vorder is > 4
  • always use ustrings for parameters (not const char*)
  • message passing between different shader groups (displacement -> surface, for instance)
  • expanded and improved shader library
  • expanded documentation
  • fix issues with
    • shading context get/release
    • normals on bézier patches
    • YASRT generator
    • rib client

version 2.4.1

  • improved primvars (but not yet fully functional)
  • shaders layers are working (including connections to globals)
  • textures are reloaded when they have changed from one frame to another
  • support for old BMRT "light:shadows" is back
  • fix issues with
    • camera motion blur
    • curves
    • blobbies
    • polygons
    • rib client
    • light shaders coordinate system
    • light shaders "P" globalvar
    • calculatenormal shadeop
    • emit shadeop
    • point type arguments to shaders
  • increased and improved shader library

version 2.4.0

  • XRT shading language is now based on Open Shading Language instead of RenderMan Shading Language
  • fix spurious pixels on output images

version 2.3.2

  • fix a crash when rendering with bilinear patch mesh primitives

version 2.3.1

  • fix regressions in subdivision surfaces
  • compute tighter bounding boxes for cubic curves
  • OpenSubdiv updated to version 2.3.4

version 2.3.0

  • new implementation of subdivision surfaces
    • based on OpenSubdiv 2.3.2
    • main features
      • adaptive refinements
      • hierarchical edits
      • facevarying data
    • tenfold rendering speed increase
    • Gelato interface is now tag based (see documentation)
  • primvars derivatives
  • RI client
    • support for HierarchicalSubdivisionMesh
    • support for linear primvars in Curves

version 2.2.0

  • blobby support with lots of plugins
    • plane
    • cube
    • sphere
    • segment with varying radius
    • capsule
    • constant
    • repelling plane
    • rib generator updated to handle Blobby command
  • new color/vector/matrix/box classes
    • efficient (25% memory usage decrease)
    • less code bloat
  • decrease the usage of smart pointers (resulting in dramatic speed increase when parsing some scenes)
  • primitive variables support
  • RIB binary output
  • fixes to RIB parsing and ascii output
  • blobby & python examples
  • documentation updated

version 2.1.0

  • new progress bar
  • new correlated multi-jittered sampler
  • new Python binding for RenderMan API
  • completely reimplemented RI client with new capabilities
    • ASCII output
    • inline archives
    • Hierarchical subdivision meshes are handled as simple subdivision meshes
    • string handles
  • brand new rib generator (file parsing is now 30% faster)
  • switch to Python 2.7.5
  • lots of bugs fixes
    • CSG operations
    • transformation stack
    • and many more small details
  • augmented Input call (now closer to the original Gelato spec)

version 2.0.1

  • improved BVH accelerator (lifted from Embree 1.1 source code)
  • fix a huge memory leak imported from Embree

version 2.0.0

  • fix filterstep implementation
  • fix fresnel implementation
  • fix precision problems with trim curves
  • fix support for break and continue in RSL
  • build once acceleration structures
  • better Python binding initialization

version 1.5.0

  • Catmull-Clark subdivision surfaces
    • RIB generator updated
    • creases, corners, holes and boundaries features supported
  • XRT frontend rewritten
  • shadow bias
  • new attributes
    • renderer information and versioning
    • debugging output
    • "verbosity"
    • "limits:bucketsize"
  • augmented statistics (texturing)
  • bug fixes for:
    • Curves
    • Points
    • NuPatch
    • shader evaluation
    • transformations
    • nff, yst, aff generators
    • multiple frame rendering
    • motion blur
  • implicit surfaces intersection code is now multithreaded
  • Whitted integrator removed for a less contrived implementation
  • some shaders updated
  • OpenImageIO upgraded to 1.0.7
  • documentation updated

version 1.4.1

  • use constant strings whenever possible: calling ustring ctor when rendering is expensive and make other threads idle
    • revamp slc
    • fix lighting loops, shader message passing
  • remove reference counting from transformations and replace it with a transformation cache
  • thread safe area lights
  • restore gamma correction
  • bypass reference counting for primitives and lights while rendering

version 1.4.0

  • OIIO upgraded to 1.0.4 (with a few twists to make it run under XP)
  • Embree-derived tasking system augmented
    • read/write mutexes
    • thread identifiers
  • tasking system moved into its own DLL
  • rendering is now multi-threaded
    • "int limits:threads" attribute support
    • re-entrant shaders
    • thread-safe caching for global illumination
    • thread-safe recursive raytracing
    • documentation updated
  • bezier patch intersection computation performed in "world" space
  • texture blur supported when the integration domain is provided

version 1.3.1

  • OIIO upgraded to 1.0 (with a few twists to make it run under XP)
  • environment mapping is now working
  • upgrade Embree tasking system (that fixes a problem where rendering would not start sometimes)
  • obsolete code cleanups
  • fixes to many slight remaining project problems when migrating to VC10
  • Input call now accept Parameters like Output, primitives or Shader
    • all generator interfaces updated
    • ply and obj modified to read parameters
    • documentation updated

version 1.3.0

  • OIIO 0.10.4 integration
    • texturing & image I/O deferred to OIIO
    • old image plugins and texturing code removed
    • iv rewritten
    • OIIO ustrings, error handlers, plugin loading integrated
    • parameter values reimplemented
    • XRT maketx replaced by OIIO's
  • review interfaces (ParamType, ErrorManager, RendererAPI)
    • cut dependency between slc and core
  • Parameter(), Attribute() and GetAttribute() overhaul
    • much improved error checking
    • all missing variants implemented
  • full "user:" attributes support
    • bug fix on value override
  • primitives with control points are now intersected in "world" space for performance
  • n-sided polygons in meshes with "linear" interpolation (without holes) are now triangulated using excellent John Ratcliff's Triangulator
  • new hair generator
  • improved hair shader
  • bug fixes on curves
  • fix *.vcxproj to remove building errors
  • fix quantizers in rib generator
  • shadows from area lights fixed
  • documentation updated

version 1.2.0

  • "_attributes" and "_attributesindex" parameters support was broken
  • Google perf tools updated to version 1.8
  • Wavefront OBJ generator added
  • ASCII PPM support
  • improved BVH accelerator (much faster traversal code borrowed from Embree project)
  • several memory leaks when rendering animations fixed
  • switch to Visual Studio 2010 Express

version 1.1.1

  • better sampling for area lights and distributed raytracing
  • message passing between shaders
  • throw transmission and diffuse rays even when maximum ray depth is reached
  • remove LookAt from the Python binding
    • replace it with a Python script
    • update pyg exporter for Structure Synth
  • remove LookAt from the C++ API
    • nff, aff, yst generators updated
  • new low-discrepancy sampler
  • last query cache for occlusion and irradiance
  • fix the shader compiler when calling color spline with a float argument
  • clamp mode as the default when texturing
  • implementation for RiIdentity
  • remove clipping on z-coordinates when writing pixel samples to image
  • "user:" attributes support
  • remove unnecessary ctor on vector-like classes
  • compute normals in the ply generator when requested
  • documentation updated

version 1.1.0

  • indirect diffuse lighting
  • irradiance caching
  • occlusion caching
  • libtcmalloc for memory allocator (20% speedup)
  • documentation updated

version 1.0.3

  • Python bindings for Shape call
  • LookAt implementation fixed to work with multiple cameras
    • some generators updated
    • pyg exporter for Structure Synth updated
  • new "implicit" shape
  • documentation updated

version 1.0.2

  • Python bindings for ObjectBegin, ObjectEnd, ObjectInstance API calls
  • area lights are now defined using geometry sets
  • new ply generator
  • documentation updated

version 1.0.1

  • Python binding for LookAt API call
  • new pyg exporter for Structure Synth
  • ambient occlusion shader
  • documentation updated