Skip to content

Releases: appleseedhq/appleseed

appleseed 2.1.0-beta

03 Sep 08:14
Compare
Choose a tag to compare

These are the release notes for appleseed 2.1.0-beta.

These notes are part of a larger release, check out the main announcement for details.

This release of appleseed has a DOI: https://zenodo.org/record/3456967

Contributors

This release is the result of more than ten months of work by the incredibly talented and dedicated appleseed development team.

Many thanks to our code contributors for this release, in alphabetical order:

  • Stephen Agyemang
  • Luis Barrancos
  • Sagnik Basu
  • François Beaune
  • Mandeep Bhutani
  • Lovro Bosnar
  • Rafael Brune
  • Matt Chan
  • João Marcos Mororo Costa
  • Herbert Crepaz
  • Junchen Deng
  • Jonathan Dent
  • Mayank Dhiman
  • Dorian Fevrier
  • Karthik Ramesh Iyer
  • Dibyadwati Lahiri
  • Kevin Masson
  • Gray Olson
  • Achal Pandey
  • Jino Park
  • Sergo Pogosyan
  • Bassem Samir
  • Oleg Smolin
  • Esteban Tovagliari
  • Thibault Vergne
  • Luke Wilimitis
  • Lars Zawallich

Many thanks as well to our internal testers, feature specialists and artists, in particular:

  • Richard Allen
  • François Gilliot
  • Juan Carlos Gutiérrez

Interested in joining the appleseed development team, or want to get in touch with the developers? Join us on Discord. Simply interested in following appleseed's development and staying informed about upcoming appleseed releases? Follow us on Twitter.

Changelog

⭐️ Cryptomatte AOVs

appleseed now has native support for Cryptomatte via a pair of new Cryptomatte AOVs. Cryptomatte is a system to generate ID maps that work even in the presence of transparency, depth of field and motion blur.

Cryptomatte AOV
(IKEA Home Office scene by Chau Tran. Feel free to download the original OpenEXR file to inspect embedded metadata.)

⭐️ Render Checkpointing

We've added render checkpointing, a mechanism to resume multi-pass renders after they were interrupted (voluntarily or not), and to add rendering passes to a finished render.

At the moment render checkpointing is only exposed in appleseed.cli. Eventually it should become available in appleseed.studio as well.

Here's an example workflow: when starting your multi-pass render (notice the --passes option), you add the --checkpoint-create option to create/update the checkpoint file after each render pass:

Creating a checkpoint

After you've interrupted the render with CTRL+C, or, Heaven forbid, after appleseed crashed, you can simply resume the render from the last complete render pass by adding the --checkpoint-resume option:

Resuming from a checkpoint

You can also pass both --checkpoint-create and --checkpoint-resume at the same time to simultaneously resume rendering from a checkpoint and continuing updating it as new passes are rendered:

Resuming and updating a checkpoint

Finally, you can pass both options even if no checkpoint exists yet, in which case rendering will simply start from the first pass:

Resuming or creating a checkpoint

⭐️ OSL Source Shaders Support

appleseed now has the ability to compile OSL source shaders on the fly. We currently exposed this feature in our Blender plugin. In the following screenshot, the user has written a small OSL shader that remaps its input to a color using a custom color map, then has connected it to the V texture coordinate of the object:

OSL source shaders support in blenderseed

Future versions of the 3ds Max and Maya plugins will expose this feature in a similar manner.

⭐️ Fisheye Lens Camera

We've added a new fisheye lens camera model with support for equisolid angle, equidistance, stereographic and Thoby projections.

Here is a render of the Japanese Classroom scene with the fisheye lens using a 120° horizontal field of view and a stereographic projection:

Japanese Classroom scene rendered with fisheye lens camera
(Japanese Classroom scene by Blend Swap user NovaZeeke, converted to Mitsuba format by Benedikt Bitterli, then to appleseed format via the mitsuba2appleseed.py script that ships with appleseed.)

⭐️ Texture-Controlled Pixel Renderer

We've added a way to control how many samples each pixel will receive based on a user-provided black-and-white mask. This allows to get rid of sampling noise in specific parts of a render without adding samples in areas that are already smooth. This is yet another tool in the toolbox, complementing the new adaptive tile sampler introduced in appleseed 2.0.0-beta and the per-object shading quality control that has been present in appleseed since its early days.

In the following mosaic, the top-left image (1) is the base render using 128 samples for each pixel; the top-right image (2) is a user-painted mask where black corresponds to 128 samples/pixel, white corresponds to 2048 samples/pixel and gray levels correspond to intermediate values; the bottom-left image (3) is the render produced with the new texture-controlled pixel renderer using the mask; the bottom-right image (4) is the Pixel Time AOV where the color of each pixel reflects the relative amount of time spent rendering it (the brighter the pixel, the longer it took to render it):

Teapot renders with texture-controlled pixel renderer

⭐️ Filter Importance Sampling

We switched appleseed to use Filter Importance Sampling instead of filtered sample splatting. This new technique has three advantages over the previous one: lower noise for a given number of samples per pixel, less waste (tile borders are no longer required), and statistically independent pixels, meaning in practice that modern denoisers should work a lot better when applied to images produced by appleseed.

To illustrate this last point, here is an appleseed render of the Modern Hall scene denoised with Intel® Open Image Denoise, a set of open source, high quality, machine learning-based denoising filters:

Modern Hall scene denoised with Intel Open Image Denoise
(Modern Hall scene by Blend Swap user NewSee2l035, converted to Mitsuba format by Benedikt Bitterli, then to appleseed format via the mitsuba2appleseed.py script that ships with appleseed.)

Other New Features and Improvements

appleseed

New Features and Improvements
  • Added controls to fix or vary sampling patterns per frame.
  • Implemented optional dithering of the frame (AOVs are not affected).
  • Implemented new energy conservation algorithm.
  • Allow to stop progressive rendering after a given amount of time.
  • Print estimated remaining render time.
  • Record light paths due to image-based lighting.
  • Keep texture files open during a rendering session (in progressive mode or multi-pass final mode).
  • Added as_matte() closure and updated OSL shaders to use it.
  • Allow scaling render stamps.
  • Allow flipping environment maps.
AOVs
  • Added Screen-Space Velocity AOV.
  • Added Pixel Error AOV.
  • Use Inferno color map in diagnostic AOVs (Pixel Sample Count, Pixel Time, Pixel Variation and Pixel Error AOVs).
  • Added an alpha channel to the Depth AOV, allowing background pixels to use depth = 0 instead of some extremely large value that causes problems with some applications.
  • Normalize pixel variation with respect to the noise threshold set by the user in the Pixel Variation AOV.
Shading Overrides
  • Added Objects, Assemblies and World-Space Velocity shading overrides.
  • Prevent accidental shading override changes during final rendering.
SPPM
  • Added Max Ray Intensity setting to SPPM lighting engine.
  • Disallow progressive rendering with SPPM lighting engine.
Logging
  • Display enabled library features as part of appleseed's version information.
  • Print texture store settings when rendering starts.
  • Improved tile statistics and log messages in Adaptive Tile Renderer.
  • Properly handle and report I/O errors when loading a reference image.
  • Increased average noise level precision in Adaptive Tile Renderer log message.
  • Increased precision of floating point values in *.obj and *.appleseed files.
  • Print project writing and packing times.
  • Emit log message when closing texture file.
  • Emit log messages when writing AOVs to disk.
  • Changed procedural assemblies expansion summary from debug to info messages.
OpenImageIO
  • Allow saving frames in all formats supported by OpenImageIO.
  • Look for OpenImageIO plugins in the project search pa...
Read more

appleseed 2.0.0-beta

02 Nov 14:05
Compare
Choose a tag to compare

These are the release notes for appleseed 2.0.0-beta.

These notes are part of a larger release, check out the main announcement for details.

This release of appleseed has a DOI: https://zenodo.org/record/3384658

Contributors

This release is the result of six months of work by the incredibly talented and dedicated appleseed development team.

Many thanks to our code contributors for this release:

  • Luis Barrancos
  • François Beaune
  • Artem Bishev
  • David Coeurjolly
  • Herbert Crepaz
  • Jonathan Dent
  • Alex Fuller
  • Thomas Manceau
  • Kevin Masson
  • Fedor Matantsev
  • Jino Park
  • Sergo Pogosyan
  • Girish Ramesh
  • Esteban Tovagliari

Many thanks as well to our internal testers, feature specialists and artists, in particular:

  • Richard Allen
  • François Gilliot
  • Juan Carlos Gutiérrez

Interested in joining the appleseed development team, or want to get in touch with the developers? Join us on Discord. Simply interested in following appleseed's development and staying informed about upcoming appleseed releases? Follow us on Twitter.

Changelog

⛏ Improved: Random-Walk Subsurface Scattering

We made a number of improvements to our random-walk subsurface scattering implementation:

  • Fixed white edges artifacts.
  • Added volume anisotropy support.
  • The Random-Walk BSSRDF now supports two surface models: Lambertian BTDF (perfectly diffuse transparency) and Glass BSDF.
  • Fixed Fresnel term when using the Lambertian BTDF surface model.
  • Exposed Random-Walk BSSRDF to OSL:
    • For the Lambertian BTDF surface model: via a new randomwalk SSS profile for the as_subsurface() closure;
    • For the Glass BSDF surface model: via a new as_randomwalk_glass() closure.

Head Scan scene with Random-Walk subsurface scattering
(Geometry, textures and environment map by 3D Scan Store, scene reconstruction and skin shader by Juan Carlos Gutiérrez.)

⭐️ New: Non-Photorealistic Rendering

We did some initial work on non-photorealistic rendering support in appleseed. We added two new OSL closures, as_npr_shading() and as_npr_contour(), as well as a new OSL shader, as_toon.

Rolling Teapot scene, non-photorealistic rendering
(Model by Brice Laville, concept by Tom Robinson, render by Esteban Tovagliari - RenderMan "Rolling Teapot" Art Challenge.)

Non-Photorealistic Rendering 2
(Original model by Blend Swap user Ricardo28roi, rig by Blend Swap user daren, render by Luis Barrancos.)

Finally, we added two new AOVs: NPR Shading (npr_shading_aov) and NPR Contour (npr_contour_aov).

⭐️ New: Post-Processing Pipeline

This release introduces a new post-processing pipeline that allows to apply treatments to a render without leaving appleseed.

The key (but still experimental) component of this new post-processing pipeline is the Color Map stage: it allows to visualize the Rec. 709 relative luminance of a render through a number of predefined color maps, or through a custom color map defined by an image file.

Five predefined color maps are available: the venerable Jet color map popularized by MATLAB, and four modern, "perceptually uniform sequential" color maps from Matplotlib: Inferno, Magma, Plasma and Viridis.

A color legend can also be included in the render.

A future version of the Color Map stage may allow to visualize other quantities such as photometric luminance (in cd/m²), radiance (in W/sr/m²) or irradiance (in W/m²).

Beauty render:

Country Kitchen scene, beauty render
(Country Kitchen scene by Blend Swap user Jay-Artist, converted to Mitsuba format by Benedikt Bitterli, then to appleseed format via the mitsuba2appleseed.py script that ships with appleseed.)

False colors, Inferno color map:

Country Kitchen scene, Inferno color map

False colors, Jet color map:

Country Kitchen scene, Jet color map

False colors, Magma color map:

Country Kitchen scene, Magma color map

False colors, Plasma color map:

Country Kitchen scene, Plasma color map

False colors, Viridis color map:

Country Kitchen scene, Viridis color map

In addition, the Color Map stage can render relative luminance isolines, that is, lines of equal relative luminance in the render:

Cornell Box, false colors and relative luminance isolines

Color mapping and isolines can also be applied right from appleseed.studio without having to add them as post-processing stages and re-rendering the scene:

Applying false colors to the Cornell Box from appleseed.studio

Post-processed renders can be saved to disk:

Saving post-processed render from appleseed.studio

Finally, the render stamp feature introduced in appleseed 1.9.0-beta has been converted to a post-processing stage (projects are automatically updated).

⭐️ New: Adaptive Tile Sampling

During his Google Summer of Code 2018 participation, Kevin Masson implemented a new adaptive tile sampler that provides superior performance over the former adaptive pixel sampler (which is now deprecated). The new adaptive tile sampler is based on a number of recent papers. Please check out Kevin's GSoC 2018 report for details and references to relevant papers.

Here is an equal-time comparison between the uniform tile sampler and the new adaptive one:

Globe scene rendered with adaptive sampling
(Earth texture from Shaded Relief, scene and renders by Kevin Masson. Top-left: uniform sampling; top-right: adaptive sampling; bottom-left: Pixel Sample Count AOV (see below); bottom-right: difference between uniform and adaptive sampling.)

Close-up:

Globe scene closeup

Here is another equal-time comparison:

Cookies scene rendered with adaptive sampling
(Cookies & Milk scene by Harsh Agrawal, render by Kevin Masson.)

Close-up:

Cookies scene closeup

Two AOVs have also been added:

  • In the Pixel Sample Count AOV (pixel_sample_count_aov), pixels in blue are those that received the fewest samples while pixels in red are those that received the most.
  • In the Pixel Variation AOV (pixel_variation_aov), pixels in blue are those that contain the lowest noise while pixels in red are those that contain the highest.

⭐️ New: Roughness Clamping

appleseed now supports Roughness Clamping, a trick popularized by Arnold that allows to reduce fireflies in scenes with lots of glossy and specular surfaces:

Enabling Roughness Clamping

Roughness Clamping enabled:

Spheres scene with roughness clamping enabled

Roughness Clamping disabled:

Spheres scene with roughness clamping disabled

Close-ups:

Spheres scene close-up

⭐️ New: Albedo AOV

We added an Albedo AOV (albedo_aov) to capture the "base color" of surfaces. AOVs are not yet exposed in appleseed.studio, however the Albedo AOV is accessible via the new Albedo diagnostic mode that replaced the old Color one:

Enabling the Albedo diagnostic mode

Here is the result of rendering the Wooden Staircase scene using the Albedo diagnostic mode:
...

Read more

appleseed 1.9.0-beta

01 May 13:08
Compare
Choose a tag to compare

These are the release notes for appleseed 1.9.0-beta.

These notes are part of a larger release, check out the main announcement for details.

Contributors

This release is the result of four intense months of work by the incredibly talented and dedicated appleseed development team.

Many thanks to our code contributors for this release:

  • Muhamed Ali
  • Aytek Aman
  • Luis Barrancos
  • François Beaune
  • Artem Bishev
  • Junchen Deng
  • Jonathan Dent
  • Sayali Deshpande
  • Dorian Fevrier
  • Eyal Landau
  • Thomas Manceau
  • Kevin Masson
  • Fedor Matantsev
  • Jino Park
  • Sergo Pogosyan
  • Girish Ramesh
  • Jamorn Sriwasansak
  • Phillip Thomas
  • Esteban Tovagliari
  • Neil You

And to our internal testers, feature specialists and artists, in particular:

  • Richard Allen
  • François Gilliot
  • Juan Carlos Gutiérrez
  • Luke Kliber
  • Giuseppe Lucido

Interested in joining the appleseed development team, or want to get in touch with the developers? Join us on Discord. Simply interested in following appleseed's development and staying informed about upcoming appleseed releases? Follow us on Twitter.

Changes

Random-Walk Subsurface Scattering

Artem Bishev was one of our Google Summer of Code participants last year. He took up the rather intimidating project of implementing volumetric rendering in appleseed, and did an admirable job. Make sure to check out his final report for a detailed account of the features he implemented during the summer and the results he obtained.

Artem did not stop contributing once the summer was over. Instead, he kept pushing forward and implemented the much anticipated "Random Walk Subsurface Scattering", a more accurate method of computing subsurface scattering that actually simulates the travel of light under the surface of objects.

The results are nothing short of amazing, especially since Random Walk SSS appears to be as fast or sometimes faster than diffusion-based SSS (the traditional, less accurate method). Here are a couple renders showing Random Walk SSS in action:

Stanford Dragon, render by Artem Bishev
(Stanford Dragon, render by Artem Bishev.)

Statue of Lu-Yu by Artec 3, render by Giuseppe Lucido
(Statue of Lu-Yu by Artec 3D, render by Giuseppe Lucido.)

Denoiser

Esteban integrated the BCD denoiser in appleseed. BCD stands for Bayesian Collaborative Denoiser: it's a denoising algorithm designed to remove the last bits of noise from high quality renders rendered with many samples per pixel (unlike other denoising techniques that basically reconstruct an image from a very small number of samples per pixel).

Here is the denoiser in action (click for the original uncompressed image):

BCD Denoiser

Light Paths Recording and Visualization

Light paths can now be efficiently recorded during rendering, without significantly impacting render times. This is part of a larger project where appleseed is being used in an industrial context to analyze how light is scattering on or inside machines and instruments.

When light paths recording is enabled in the rendering settings, it becomes possible (once rendering is stopped) to explore and visualize all light paths that contributed to any given pixel of the image. Light paths can be recorded for the whole image or for a given region when a render window is defined. Light paths can then be visualized interactively via an OpenGL render of the scene. Light paths can also be exported to disk in an open and efficient binary file format.

Here is a screenshot of appleseed.studio showing one of the many light paths that contributed to a pixel that was chosen in the render of a 3D model of the Hubble Space Telescope made freely available by NASA:

Visualizing light paths on the Hubble telescope

Here is a short video showing the process of enabling light paths capture and visualizing light paths in appleseed.studio:

Light paths demo video

Shutter Opening/Closing Curves

Jino Park and Fedor Matantsev implemented support for non-instantaneous opening and closing of camera shutters: it is now possible to specify how long a camera's shutter takes to open or close, as well as the rate at which it opens and closes.

Here is an illustration showing three cases:

  1. "Instantaneous" means that the camera's shutter opens and closes instantaneously.
  2. "Linear" means that the camera's shutter opens and closes linearly (or, said differently, the camera's shutter opens and closes at a constant rate).
  3. "Bézier" means that the camera's shutter opening/closing position is defined by an arbitrary Bézier curve.

Shutter Opening/Closing Curves

Render Stamp

It is now possible to have appleseed add a "render stamp" to renders. The render stamp is fully configurable and can contain a mixture of arbitrary text and predefined variables such as appleseed version, render time, etc. Here is what the default render stamp looks like:

Render Stamp

Pixel Time AOV

Esteban also added a new Pixel Time AOV (or "render layer") that holds per-pixel render times (technically, the median time it took to render one sample inside each pixel). This new AOV can help figure out which areas of the image are most expensive to render, and thus help optimize renders.

Here is an example of the pixel time AOV (with exposure adjusted) that shows that grooves and other concave areas of the shaderball are more expensive to render than convex ones (the scattered white dots are likely due to the operating system interrupting the rendering process once in a while):

Pixel Time AOV

Other New Features and Improvements

appleseed

  • Considerably sped up OSL texturing.
  • Considerably reduced noise when using diffusion-based BSSRDFs.
  • Improved the Directional Dipole BSSRDF.
  • Fixed occasional infinite samples warning with diffusion-based BSSRDFs.
  • Added OSL vector transforms.
  • Fixed OSL NDC transforms.
  • Fixed the behavior of OSL's printf() function.
  • Fixed crash with Light Tree and light-emitting OSL shaders.
  • Added support for writing grayscale + alpha PNG files.
  • Improved logging of rendering settings.
  • Allow to save extra (internal) AOVs to disk.
  • Added support for energy compensation to a number of BSDFs.
  • Improved sampling of OSL's as_glossy() closure.
  • Added exposure multiplier inputs to lat-long environment EDF, mirrorball environment EDF and spot light.
  • Fixed and improved detection of alpha mapping.
  • Fixed self-intersections when rendering curves.
  • AOVs are now always saved as OpenEXR files, regardless of the file format chosen for the main image.
  • Added an Invalid Samples AOV.
  • Use Blackman-Harris instead of Gaussian when an invalid pixel filter is specified.
  • Fixed default OIIO texture wrap modes in Disney material.

appleseed.studio

  • Added Settings dialog.
  • Fixed crash when plugins directory does not exist.
  • Fixed crash when mouse is dragged out of canvas if the pixel inspection is toggled on.
  • Preserve environment EDFs transforms across edits.
  • Update color preview when typing values in color field of a color entity.
  • Small user interface improvements and tweaks.
  • Tweaked default bounce limits.
  • Fixed missing project file extensions in File → Open Recent menu.
  • Added a Clear Missing Files entry in File → Open Recent menu.
  • Fixed navigation during interactive rendering after having edited the frame entity.
  • Added "Bitmap Files" filter to image file dialogs.

appleseed.cli

  • AOVs are now sent to stdout when using --to-stdout.
  • Fixed AOVs disappearing when command line arguments alter the frame.

Others

  • projecttool can now remove unused entities and print dependencies between entities.

OSL Shaders

  • New shaders: as_blackbody, as_blend_color, as_bump, as_composite_color, as_fresnel, as_subsurface, as_switch_surface, as_switch_texture, as_texture, as_texture_info, as_texture3d, as_triplanar.
  • Renamed shader as_layer_shader to as_blend_shader.
  • Fixed anisotropy rotation in as_disney_material.
    ...
Read more

appleseed 1.8.1-beta

21 Dec 19:18
b3b5172
Compare
Choose a tag to compare

These are the release notes for appleseed 1.8.1-beta.

appleseed 1.8.1-beta is a minor release fixing issues discovered in appleseed 1.8.0-beta.

Whiskey Glasses

Changes

  • Added energy compensation to glossy and metal BRDFs.
  • Fixed Max Ray Intensity which was partially broken in the previous release.
  • Fixed occasional warnings during rendering (NaN, negative or infinite pixel samples).
  • Improved handling of errors during loading of geometry assets.
  • Exposed Plastic BRDF to OSL via the as_plastic() closure.
  • Updated and improved dumpmetadata command line tool.
  • Light importance multiplier is now a numeric input.
  • Make appleseed.studio's Windows icon multi-resolution.
  • Emit log message once packing project is complete.
  • Cleaned up appleseed OSL extensions (as_osl_extensions.h) file.

appleseed 1.8.0-beta

26 Nov 16:24
153757a
Compare
Choose a tag to compare

These are the release notes for appleseed 1.8.0-beta.

These notes are part of a larger release, check out the main announcement for details.

Contributors

This release is the fruit of the formidable work of the appleseed development team over the last six months.

Many thanks to our code contributors:

  • Aytek Aman
  • Luis Barrancos
  • François Beaune
  • Artem Bishev
  • Petra Gospodnetic
  • Roger Leigh
  • Gleb Mishchenko
  • Jino Park
  • Sergo Pogosyan
  • Esteban Tovagliari

And to our internal testers, feature specialists and artists, in particular:

  • Richard Allen
  • Dorian Fevrier
  • François Gilliot
  • JC Gutiérrez
  • Luke Kliber
  • Nathan Vegdahl

Interested in joining the appleseed development team, or want to get in touch with the developers? Join us on Slack. Simply interested in following appleseed's development and staying informed about upcoming appleseed releases? Follow us on Twitter.

Changes

Support for Procedural Objects

We introduced support for procedurally-defined objects, that is objects whose surface is defined by a function implemented in C++. This opens up a vast array of possibilities, from rendering fractal surfaces such as the Mandelbulb shown below, to rendering raw CAD models based on Constructive Solid Geometry without tessellating them into triangle meshes. One could even use this mechanism to prototype new acceleration structures with appleseed.

Mandelbulb Object

appleseed ships with three samples procedural objects in samples/cpp/: an infinite plane object, a sphere object and the Mandelbulb fractal. This last sample is particularly interesting: it's actually a generic Signed Distance Field raymarcher and a great toy to tinker with if you like procedural graphics!

Some good resources about Signed Distance Fields:

Support for Procedural Assemblies

We also introduced long-awaited support for procedural assemblies. In appleseed's terminology, an assembly is a "package" that represents a part of the scene. A procedural assembly is one that gets populated at render time instead of being described in the scene file. Somewhat schematically, a procedural assembly is defined by a C++ plugin which is invoked by the renderer when it needs to know the content of the assembly.

Procedural assemblies allow to procedurally populate a scene, for instance to generate thousands of instances of a single object based on rules, without having to store all those instances on disk.

Below is an example of a procedural assembly: it is a modern recreation of the sphereflake object designed by Eric Haines et al. and described in the 1987's article A Proposal for Standard Graphics Environments, rendered using subsurface scattering (using the Normalized Diffusion BSSRDF), a Disney BRDF and image-based lighting:

Sphereflake with Subsurface Scattering

For reference (and for fun; who doesn't love retro CG!) here is one early rendering of the Sphereflake by Eric Haines:

Original Sphereflake Rendering by Eric Haines

(Source: https://www.flickr.com/photos/101332032@N06/10865071225)

A particular type of procedural assembly supported by appleseed is an archive assembly. An archive assembly is defined by a bounding box and a reference to another appleseed scene file (extension .appleseed or .appleseedz). The referenced scene file is loaded by the renderer at the appropriate time. This is a common but powerful mechanism to assemble large and complex scenes out of smaller parts.

One important use of procedural assemblies in production is reading parts of scenes from Alembic archives, Pixar's USD scenes and other custom file formats.
We recently started working on adding support for loading geometry directly from Alembic archives.

AOV Subsystem Rewrite

This release saw the previous AOV mechanism completely ripped out and reimplemented from scratch. While flexible, the previous AOV mechanism made it hard or in some cases impossible to composite AOVs back together. Moreover it lacked fundamental features such as splitting direct lighting from indirect lighting contributions or splitting diffuse from glossy scattering modes.

The new AOV subsystem implements what you expect from a modern renderer. appleseed currently supports the following AOVs:

  • Direct Diffuse, Indirect Diffuse, Combined Diffuse
  • Direct Glossy, Indirect Glossy, Combined Glossy
  • Emission
  • Shading Normals
  • UVs
  • Depth

Here is an example of AOVs rendered from our shaderball scene:

Shaderball AOVs

And the beauty render:

Shaderball Beauty

AOVs must currently be declared manually in the scene file:

<output>
    <frame name="beauty">
        <parameter name="camera" value="/group/camera" />
        <parameter name="resolution" value="640 480" />
        <parameter name="crop_window" value="0 0 639 479" />
        <aovs>
            <aov model="diffuse_aov" />
            <aov model="glossy_aov" />
        </aovs>
    </frame>
</output>

The next release of appleseed will allow adding/removing AOVs directly from appleseed.studio. It will also add AOVs for our render denoiser, and if time allows, it will introduce native Cryptomatte support. We are also considering adding a motion vectors AOV in a future release.

Color Pipeline Overhaul

The color pipeline is another area that received a ton of attention in this release.

First of all, remember that appleseed is fully capable of spectral rendering, currently using 31 equidistant wavelengths in the 400 nm to 700 nm visible light range.

In the name of speed and accuracy, we no longer switch on-the-fly between RGB and spectral representations during rendering. We had a neat mechanism that supported this feature for many years but it had three main problems: it prevented us from being completely rigorous about color management, it incurred tremendous complexity in the very core of the renderer and it had nasty edge cases causing severe performance issues. Instead, we now let the user decide which color pipeline to use: RGB or spectral:

Color Pipeline Setting

The RGB pipeline is the default and for most purposes there is no point in changing it. However appleseed is one of the rare renderers with spectral capabilities and we will continue pushing and extending this mechanism over the releases to come. In particular the next release will extend the wavelength range to 380-780 nm and should feature a much improved RGB-to-spectral conversion algorithm.

We also removed a lot of settings from Frame entities that didn't make much sense anymore. appleseed's internal framebuffer is now always linear, unclamped, premultiplied and uses 32-bit floating point precision.

Finally, appleseed.studio is now using OpenColorIO for color management. There is now a dropdown menu in appleseed.studio to choose a display transform (an Output Device Transform in ACES terminology) at any point during or after rendering:

Display Transform Dropdown Menu in appleseed.studio

appleseed.studio will populate this dropdown menu with transforms listed in OpenColorIO's configuration on the user's machine.

Support for Plugins (work-in-progress)

In addition to the procedural objects and procedural assemblies described above, this release also allows to extend all "scene modeling components" of appleseed via external plugins written in C++. This includes cameras, BSDFs, BSSRDFs, EDFs, lights, materials, textures, environments... There are technicalities that make this work incomplete in this release; we will gradually fix them as the need arises.

Substance Painter Export Presets

We now include Substance Painter export presets in the share/ folder inside appleseed's package.

Substance Painter with appeseed's Export Presets

Maps exported using these presets can be used in appleseed-maya and Gaffer with appleseed's new standard material:

Shaderball with Substance Material

Python Console in appleseed.studio (work-in-progress)

Our Google Summer of Code 2017 student Gleb Mishchenko implemented a Python console inside appleseed.studio, our scene tweaking, rendering, inspecti...

Read more

appleseed 1.7.1-beta

02 Aug 13:51
Compare
Choose a tag to compare

This minor release fixes appleseed.python (appleseed's Python bindings) on macOS.

appleseed 1.7.0-beta

06 Jun 08:38
Compare
Choose a tag to compare

These are the release notes for appleseed 1.7.0-beta.

Contributors

The following people contributed code for this release, in alphabetical order:

  • Aytek Aman
  • Luis Barrancos
  • François Beaune
  • Artem Bishev
  • Andreea Dincu
  • Petra Gospodnetic
  • Andrei Ivashchenko
  • Kutay Macit
  • Nabil Miri
  • Gleb Mishchenko
  • Aakash Praliya
  • Animesh Tewari
  • Esteban Tovagliari

Changes

appleseed

Subsurface Scattering Overhaul

We made deep improvements to our ray traced subsurface scattering implementation. The new code gives more accurate and consistent results. We also took this opportunity to add support for SSS sets:

SSS Sets

(On the left, each object is in its own SSS set; on the right, all objects are in the same SSS set.)

We also modified the Gaussian BSSRDF to expose the same parameters as other BSSRDF models. This makes finding the right BSSRDF model much easier.

Finally, we added Fresnel weight parameters to all BSSRDF models and we exposed the Gaussian BSSRDF to OSL.

New Path Tracing Controls

We added a few new controls to appleseed's unidirectional path tracer:

  • Low Light Threshold allows the path tracer to skip low contribution samples (thus saving the cost of expensive shadow rays) without introducing bias. By default the threshold is set to 0 (not skipping any sample) but we might change it in the future.

  • Separate diffuse, glossy and specular bounce limits, in addition to the existing global bounce limit.

New Plastic BRDF

appleseed now features a physically-based plastic BRDF:

Coffee Maker scene showcasing the new plastic BRDF
(Coffee Maker scene by Blend Swap user cekuhnen, lighting and material setup by Benedikt Bitterli, converted to appleseed using our new mitsuba2appleseed.py tool.)

OSL Shader Library

We added OSL shaders that expose some of appleseed' built-in BSDFs such as the Disney BRDF and our physically-based Glass BSDF, as well as Voronoi texture nodes (2D & 3D). We're continually growing and expanding this shader library.

In addition, we have now high quality OSL implementations of many Maya shading nodes. They are used in appleseed-maya, our soon to be released integration plugin for Autodesk Maya, to translate Maya shading networks to appleseed.

Other New Features and Improvements

  • The AOV subsystem has been rewritten to be more correct and to offer more features.
  • Added transparent support for packed project files (*.appleseedz).
  • Added initial support for archive assemblies.
  • Texture loading is now fully based on OpenImageIO, vastly expanding our image file format support.
  • Warn about invalid (NaN or negative) during interactive rendering.
  • Adjusted default rendering settings.
  • Added cube mesh primitive.
  • Added support for *.mitshair files (Mitsuba's curves file format).
  • Added alternative volume parameterization to glass BSDF.
  • Improved RGB <-> spectra conversions.
  • Improved bump mapping implementation.
  • Switched to OpenImageIO 1.7.10.
  • Use same defaults in Disney BRDF and Disney material.
  • Improved handling of project update errors.
  • Rely on the geometric normal for side determination when vertex normals are absent.
  • Allow to flip normals of an object instance with <parameter name="flip_normals" value="true" />.
  • Use faster probe ray mode in more cases.
  • Added highlight falloff controls to several BSDF models.
  • Added support for NDC and raster OSL coordinate systems.

Bug Fixes

  • Fixed sampling of Disney BRDF (also affects Disney material). The results are now more accurate.
  • Fixed rendering of textured area lights.
  • Fixed a number of cases where NaN values would be generated.
  • Properly close texture files when rendering ends.
  • Fixed bug in Unidirectional Path Tracer when the last bounce of a path is purely specular.
  • Properly handle infinite values in environment maps.
  • Fixed incorrect warning when using object alpha maps.
  • Fixed incorrect alpha mapping detection when OSL materials have alpha maps.
  • Fixed missing intersection filters on first renders.
  • Fixed ray differentials after transparent (alpha) intersections.
  • Fixed crash with OSL and nested dielectrics.

Removed Features

  • Removed experimental Frozen Display interactive rendering mode.
  • Removed fake translucency support from physical surface shader.
  • Removed aerial perspective support from physical surface shader.
  • Removed the Distributed Ray Tracing engine as it is now fully redundant with the Unidirectional Path Tracing engine configured with zero diffuse bounces.
  • Removed the systematic depth AOV that was generated with every render.

appleseed.python

  • Exposed creation of mesh primitives.
  • Exposed environment EDF transforms.
  • Exposed logger verbosity levels.
  • Improved progress update in basic.py sample.

appleseed.studio

  • Lock appleseed.studio down in final rendering mode.
  • Fixed rare bug where aborting a render was not working.
  • Fixed corner cases in camera controller.
  • Don't show irrelevant inputs in entity editor.
  • The scene picker now prints more information about the picking point.
  • Fixed color value not updating in entity editor when cancelling color picker dialog.
  • Update crop window in entity editor when setting or clearing crop window in render widget.
  • Added tooltips in rendering settings dialog.
  • Added File → Pack Project As... to pack a project to a single *.appleseedz file.
  • Added regular expression-based filter for tests in the Tests dialog.
  • Added keyboard shortcuts to tooltips.

Others

  • Replaced updateprojectfile by projecttool, a new command line tool with more features.
  • Added mitsuba2appleseed.py to convert Mitsuba scenes to appleseed.

appleseed 1.7.0-beta Preview 1

19 Jan 13:46
Compare
Choose a tag to compare
Pre-release

This is a preview version of appleseed 1.7.0-beta.

appleseed 1.6.0-beta

15 Dec 15:57
Compare
Choose a tag to compare

These are the release notes for appleseed 1.6.0-beta.

The following people contributed code for this release, in alphabetical order:

  • Luis Barrancos
  • François Beaune
  • Esteban Tovagliari

Note: We are providing builds relying on the SSE 4.2 SIMD instruction set. Please contact us if your machine does not support SSE 4.2 and you would like a build relying on SSE 2 instead.

appleseed

  • Fixed color shifting problems in SSS.
  • Fixed rare hanging in presence of SSS materials.
  • Fixed rare problems when mixing RGB colors and spectra.
  • Fixed rare problems with lat-long environment maps with fully black rows.
  • Fixed bug leading to absolute texture paths in projects when saving projects in place.
  • Reimplemented built-in mesh primitives to have better UV parameterizations.
  • Added support for multiple cameras.
  • We're now providing Visual Studio 2015 builds, in addition to Visual Studio 2013 ones.
  • Fixed bug when interpolated normals/tangents were null.

OSL

  • Added matrix[] and int[] parameters support.
  • Fixed a number of bugs in the background() closure.
  • Fixed crash with empty string parameters.
  • Improved shader compatibility with other renderers.
  • Added first set of shaders matching Maya shading nodes.
  • Removed mean cosine (g) parameter from appleseed subsurface closures.

Others

  • Added missing Object and MeshObject methods to Python bindings.

appleseed 1.5.1-beta

22 Sep 09:47
Compare
Choose a tag to compare

appleseed 1.5.1-beta is a new build of appleseed 1.5.0-beta that restores Windows 7 compatibility.

There are no other changes.