New appleseed 2.1.0-beta released

We are proud to announce the release of appleseed 2.1.0-beta, the twelfth release of our beta program

appleseed is a fully open source, physically-based global illumination rendering engine primarily targeted at animation and visual effects.

Once again, our focus in this release has been on improving our native plugins for Autodesk® 3ds Max®, Autodesk® Maya® and Blender. Of course, the core engine, appleseed.studio and the suite of command line tools have all received their share of attention with more than a hundred new features and bug fixes.

The illustrated release announcement and all details can be found here:
https://github.com/appleseedhq/appleseed/releases/tag/2.1.0-beta

The official website can be found here:
https://appleseedhq.net/

What is new (core engine):

  • Cryptomatte Object and Material AOVs
  • Render Checkpointing
  • OSL Source Shaders Support
  • Fisheye Lens Camera
  • Texture-Controlled Pixel Renderer
  • Filter Importance Sampling
  • More AOVs (Screen-Space Velocity, Pixel error)
  • Added Objects, Assemblies and World-Space Velocity shading overrides
  • New color inversion shader (as_invert_color) & Color Decision List shader ( as_asc_cdl )
  • Added controls to fix or vary sampling patterns per frame
  • Implemented new energy conservation algorithm
  • Added Max Ray Intensity setting to SPPM lighting engine
  • Allow to stop progressive rendering after a given amount of time
  • Improved tile statistics and error logging
  • Allow saving frames in all formats supported by OpenImageIO
  • many more small improvements and bug fixes…

What is new (Blender plugin):

After a complete rewrite for Blender 2.8x by our Blender developer @jdent02 blenderseed added:

  • Support for Blender 2.80 & 2.81
  • Native C++ based mesh exporter reducing mesh export time by a factor ~10
  • OSL script node allowing import of OSL source files with automatic node UI creation and shader compilation
  • Native Cryptomatte integration
  • Stereoscopic camera support
  • Fisheye lens support
  • Lens Shift support
  • Custom shader search paths can be comfortably set in the user preferences
  • New UI for shading nodes. Parameters are now grouped by function and can optionally accept a texture input
  • Integrated texture converter to tiled, mip-mapped .tx format made more user friendly
  • Border rendering now works for all camera views

Downloads for Blender 2.80/2.81 for Windows with detailed release notes:
https://github.com/appleseedhq/blenderseed/releases/tag/2.0.0-beta

Downloads for Blender 2.79 official for Windows (legacy version, no Cryptomatte and OSL source shader support):
https://github.com/appleseedhq/blenderseed/releases/download/2.0.0-beta/blenderseed-2.0.0-beta-0-ge6820d2-blender-2.79-win64.zip

Also in the pipe are a number of major features and improvements, among which support for heterogenous volumes and for OpenVDB files, and a state-of-the-art hair shading model and corresponding OSL shader.

All these features and improvements are already implemented and working. They will be merged into appleseed over the coming weeks and will be available to end users in the next version of appleseed. Stay tuned!

10 Likes

Great news

2 Likes

Some bugs founded
1 Border render is not switch on when first time applyed
2 Envroment changing types is crashed Blender
3 Adding material is make no changes in preview
With this if change view mode to refresh window is make Blender crash
4 Calling render with render preview mode in viewport Blender crash

Blender 2.80
Win 7 (64)
Applseed 2.1
defaul cube scene

And question how
to setup render settings to have clean render

1 Like

Hi Piter,

There must be a problem on your end.

  • We don’t see crashes when changing the environment or starting a final render, even with viewport render enabled.
  • When you add materials and have viewport render enabled you have to shortly switch from Viewport Shading Mode Rendered to Shading or Wireframe and back so the viewport render gets notified about the material updates.
  • Border render works immediately by setting a render region with CTRL B and then pressing either F 12 for render or switch to viewport rendering.

How to have a clean render depends very much on the type of scene and the render settings.
The current blenderseed defaults give a quick but coarse render. You have to increase the number of uniform samples from 16 upwards, increase render passes or reduce the Noise Threshold from 1.0 to < 0.1 when using the adaptive sampler.

2 Likes

Nice! What about the Linux version? I tried installing the Win64 addon and added the Linux binaries by hand but that just gives me an error message when I try to activate the addon in Blender 2.81

Hi Steffen,
we are working on a native Linux version of blenderseed.
But it is really hard to build one. All attempts so far did not work.
What you did will not work. The Linux binaries from appleseed.studio are linked against Python 2.7
Blender 2.80 now uses Python 3.7 and the corresponding appleseed-Python and boost Python bindings for Python 3.7 are not available in studio or the libappleseed.so which ships with it.

Unfortunately, the only working solution right now for blenderseed under Linux is to use the Windows blenderseed with a recent Wine version. I had it running on my Fedora 30 system.

1 Like

Thanks for your quick reply. Keep up the great work! :+1:

2 Likes

@numen22 I’ve included Appleseed in an overview of free renderers for Blender Nation.

1 Like

Thanks Metin!
Very nice overview.

For a short classification as a Cycles alternative. appleseed is not as tightly tied to Blender as Cycles. We have to support also 3ds Max, Maya & Gaffer which precludes Blender exclusive optimizations and UI solutions. While LuxCore is more targeted to arch-viz and interiors and can be a viable alternative to Corona, appleseed is like the small brother of Arnold - more targeted for animations and visual effects.

I may list some not so common features among the free Cycles alternatives appleseed has:
We have high quality material models, very efficient motion blur and alpha mapping, full OSL support, automatic color space conversion, efficient texture caching and mip-mapping, random walk sss, mask-based sampling, resumable renders, light path visualization.
Also we support common industry standards like OSL, OIIO, OCIO, Cryptomatte, Disney shader, Substance Painter-compatible OSL shader etc…

Of course, we still miss some important features to be fully production ready, most notably heterogeneous volumes, vector displacement and render time subdivison.

Finally I want to add is that all development is from volunteers without any financial compensation in their free time and that the code base is of exemplary quality by all software engineering measures.

4 Likes

Thanks for the elucidation.

Is it correct that Appleseed offers real-time Blender viewport updates, but it is not compatible with Cycles materials and textures?

Yes, appleseed has its own materials, and texture nodes and is not compatible with Cycles ones.
blenderseed, our Blender plugin, supports viewport preview rendering similar to Cycles but I would not consider it real-time (>30 frames/s).

As an outlook, we have currently 3 exciting GSoC projects ongoing: a state-of-the-art sun & sky-light system, additions of post-processing effects (vignetting, bloom, glare, chromatic aberrations, …) and improved microfacet-based normal mapping which will eventually be added to the main code.

1 Like

Really? Full OSL support? How full is ‘full’?
Maybe things changed in the meantime, but last I checked, appleseed’s OSL-implementation didn’t seem to support volume-shaders for example.
Also this page suggests sth. different?

To prevent misunderstandings here: I’m not meaning to argue semantics or nag about appleseed or anything, I’m just curious about the status of OSL in it.
After all I really like OSL and personally think it’s a pitty it feels a bit like the neglected stepchild everyone hates on (for being CPU-only) in cycles.

greetings, Kologe

Hi Kologe,

The feature list above was meant as a short overview without going into each features details. But you are absolutely right that proper volume support is not yet there. I have mentioned this as one of appleseeds big missing features.
It is not a problem of missing OSL support but of implementing the heterogeneous volume functionality (closures) in the core so it can be called via OSL. We have code for an OSL volume implementation but it is not yet in the main code base.

I’m with you that OSL is great and very flexible, especially with the script nodes, which allows loading of .osl source code, both in Cycles and appleseed.

The page on our Wiki about implemented OSL features has not been updated in a while. You are very welcome to join our appleseed discord and get full insights into ongoing development, access to developer builds and general useful info about rendering and cg.

If you write OSL shaders, you might notice some differences. Appleseed does support meta data for shaders. It gives you some control how your node could look like in Blender or elsewhere.

That is something I miss in Cycles. In Cycles OSL is also rather niche. You embed your shaders with script nodes. If you like to have proper nodes, you might embed them into your own shader groups. In Appleseed, you do not depend solely on script nodes if you like to use custom OSL shaders. You rather create your own nodes with OSL. Just set an include path for your shaders, and Blenderseed generates your own nodes on next Blender start.

1 Like

Well of course, that absolutely makes sense. Could have realized that myself. :slightly_smiling_face:

I’ve once read @Secrop suggesting the workaround of passing strings from one script node to the other and using xml-syntax to package arbitrary data into said strings (such as to overcome the limitation of cycles OSL-implementation not allowing to pass around arbitrary data).
Not an exactly graceful solution, but it should work (given you can process strings at will via OSL’s regex-function).
But I’m getting a little sidetracked here, I fear.

greetings, Kologe

Huh … indeed, a workaround!
If I read that, something Inside me twists and tumbles.

Indeed, thanks for mentioning. The UI of all our OSL shader is dynamically generated at the start of Blender (same for Maya & Max) from the OSL code and embedded meta data. So if you restart Blender and have a new OSL shader with correct meta data added it will appear within the available shader with a consistent UI.

In Cycles is the same and you can have lots of nodes connected together to produce a shader… I have dozens of nodes that do very small things, that I then connect all together; like a trace node that just do a single trace call, or a node that just returns the primitive’s coordinates of the sampled point, or some complicated equation, etc.

For passing arbitrary data between nodes, the only thing we need is custom sockets… The Node Editor is not prepared for that, and that’s why it strips any OSL structure into it’s basic elements (floats, ints, colors, vectors/normals, closures and strings).
And meta-data is a bit related to this. Is not that Cycles cannot deal with structures or meta-data, just the Editor and some UI stuff doesn’t (…like independent colorramps).

And iirc, when I talked about using xml structures was more to overcome the inability of reading/writing pointclouds… (and I haven’t tested the last versions of Appleseed, but I never got pointclouds working there also).

For point-cloud support in OSL shader you would need to compile yourself the appleseed Windows dependencies and configure OSL to be built with Partio.

1 Like

Hi, numen22. Are there any plans for MaterialX?