New YafaRay v3.0.2-beta for Blender v2.77a released!

EDIT 2016-07-22bis (v3.0.2-beta released)

Hello,

At last after several months I’m happy to announce the release of the new YafaRay v3.0.2-beta for Blender v2.77a.

I’ve prepared builds for Linux 32/64bit, Windows 32/64bit and MacOSX Intel 64bit.

Windows XP support has been dropped due to the new Python3.5 OS requirements. The MacOSX version has been tested only a little bit due to severe hardware restrictions.

You can see all the changes respect to v2.1.1, download the builds and an example test scene from:

http://www.yafaray.org/community/forum/viewtopic.php?f=15&t=5173

There have been a lot of changes in v3.0.2, so I suppose quite a few bugs are to be expected. Please let us know about any bugs in the YafaRay bugtracker and/or user forums.

I will try to prepare and upload examples and test scenes to introduce all of them. The full list of changes respect to the previous version v2.1.1 is as follows:


** IMPORTANT **

The new YafaRay-v3 will NOT replace the existing YafaRay versions, and it can be installed in addition to them.
So, YafaRay-v3 must be enabled in Blender user preferences, and in your current YafaRay scenes you have to switch to the renderer “YafaRay-v3” to use the new version.

If you have several YafaRay versions together, make sure that you enable in Blender first the old and later the new v3 in that order. If you have problems, disable both, restart Blender and enable them in that order.

YafaRay v3 has only limited support for multiple YafaRay versions and forks installed at the same time. Having several versions could cause in some cases:

  • Black renders
  • Random crashes
  • Inability to enable the YafaRay v3 plugin or all kinds of strange problems

If you have any of these problems, remove any other yafaray folders (or derived forks) from the Blender addons folder and try again. This typically solves most of the problems stated above.

In v3, support has been DROPPED for Windows XP and MacOSX v10.6

  • Important note *: Now by default YafaRay will save the images at the same time as rendering into Blender (“Secondary File Output”). This can be disabled.

Also, YafaRay, by default, ** will change the output folder/file name ** so the images are exported to a subfolder with the same name as the .blend file with suffix _render. This is for convenience and can be disabled, but if you leave the default it could cause you confusion especially when switching to other renderers.

Changes from v3.0.1-beta to v3.0.2-beta:

  • ImageFilm load, fix failing load when compiling with GCC v4.8.4

Changes from v3.0.0-beta to v3.0.1-beta:

  • Important: Background IBL light sampling fix. This solves a long standing problem with incorrect background lighting accuracy and fireflies. (http://yafaray.org/node/752, http://yafaray.org/node/727, http://yafaray.org/node/566).

  • IBL clamp sampling parameter no longer needed thanks to the fix above, so it has been removed from the exporter.

  • Fix for crash when using yafaray-xml without specifying the type of badge to be used.

  • yafaray-xml: new “-ccd” “console-colors-disabled”. If specified, disables the Console colors ANSI codes, useful for some 3rd party software that cannot handle ANSI codes well.

  • Light photon control: changed back control param names from “shoot_” to “with_” as originally for better backwards compatibility with 3rd party exporters

  • Render Passes: added “generic” external render passes for other Exporters and plugins other than Blender Exporter

  • Render passes: added new debug passes for diagnosing light estimation problems

Major codebase changes in v3.0.0:

  • Dropped support for Windows XP and MacOSX v10.6. Sorry, but the code changes required this.

  • Updated for Blender 2.77a (using Python 3.5).

  • Codebase updated from old standard C++98 to the new C++11. This will allow better and easier code maintenance as well as access to newer C++ features to improve YafaRay even more in the future.

  • Entire old MultiThreading system replaced by new standard C++11 threads system.

  • Windows-MinGW C++11 MultiThreading system using now the library https://github.com/meganz/mingw-std-threads This should significantly improve render speed in Windows in many scenes by reducing the multithreading overhead.

  • Added several Boost libraries to allow saving/loading photon map files and improve unicode/multiplatform compatibility.

  • Changes to allow compilation in Visual Studio 2013 (although YafaRay is slower when compiled with VS2013 for some reason)

Feature changes/additions in v3.0.0:

  • Multithreaded Photon Map generation, including multithreaded Photon KDTree building: this should greatly improve render speeds when using Direct Light+caustic map, Photon Map, SPPM or Path Tracing+photon.

  • Ability to Save/Load/Reuse photon maps: this should greatly improve render speeds in scenes where only camera moves. See: http://yafaray.org/node/460. WARNING: When loading/reusing Photon Map files, the User is responsible to ensure they match the scene. If the User loads inadequate photon maps, the render results could be totally wrong or even have crashes. USE WITH CARE.

  • Ability to AutoSave image files, either at the end of each pass or using a user-configurable time interval. This should help if there is a crash or sudden power off, as some images could be obtained from before the incident.

  • Ability to AutoSave/Load the main ImageFilm. This might help to CONTINUE interrupted renders or to add additional samples to a render that has already finished. WARNING: When loading ImageFilm files, the User is responsible to ensure they match the scene. If the ImageFilm does not match the scene and render passes exactly, the render results could be totally wrong or even have crashes. USE WITH CARE.

  • Ability to perform Multi-Computer distributed render. Each computer should have a different Node number [0…1000] to ensure they don’t repeate the same samples. The Node number can be setup in a parameter or in the Exporter under Blender User Preferences -> YafaRay v3 -> Preferences -> Computer Node (remember to Save Settings to store the number permanently in Blender).

Each computer will generate a different Film. If one of the nodes is set to “Load” the film, it will look for ALL the Film files in the same folder (with the same base file name and frame number) and combine them together to create a combined image with all samples from all individual film files.

  • Added OpenCV library and added DeNoise options for the exported image files: JPG, PNG, TGA, TIF. This feature is not available for HDR/EXR formats. Three parameters are exposed for the users:

    • h(luminance): the higher this is, the more noise reduction you get, but the image can become blurred
    • h(chrominance): the higher, the more color noise reduction, but the colors can become blurred
    • Mix: this is intended to add (on purpose) part of the noise from the original image into the final denoised image. This is to avoid “banding” artifacts in smooth and noiseless surfaces. Setting for example 0.8 means that 80% of the final result will come from the “denoised” image and 20% will come from the original (noisy) image.
  • YafaRay-v3 can be installed “in parallel” with other major versions of YafaRay and coexist with them. “YafaRay v3” will appear as a DIFFERENT renderer and has to be enabled and selected in each scene as if it were a new renderer. This should help to compare the results and features over different major versions as well as allowing using a “stable” and a more “experimental” versions in parallel at the same time. However, support for this is very limited and depends on many factors such as class name clashes, order of registration, dll and library dependency collisions, etc. If having issues, please remove any other yafaray versions and forks and try again.

  • Initial support for filepaths with Unicode characters (accents, etc) can be used now for loading textures, etc. See: http://yafaray.org/node/703 This support is still limited and could fail in some cases.

  • Secondary File Output: now it will be possible to render into render and export to image files at the same time! There are several functions that depend on this now, such as the render parameters badge, which will no longer appear in the Blender render, only in the exported images.

  • It’s now possible to save the images automatically to the same place where the .blend file resides, into a folder with same name as the blend file and suffix “_render”

  • Now the user can use CTRL+C in the console to interrupt a render in progress. This now works in all modes (render into Blender, render to Image files or using yafaray-xml). The interruption due to CTRL+C will now be handled correctly, ensuring the image files and badge are properly saved.

  • yafaray-xml: no longer needed to specify the Library path nor the Plugins path. The old Windows Registry requirement has been removed and it’s not necessary anymore. Now, yafaray-xml will load the libraries from the same folder where the yafaray-xml executable resides and it will load the plugins from the subfolder “plugins” respect to the folder where the yafaray-xml executable resides

  • Removed option -pst in yafaray-xml, now it has to be enabled via parameter in the xml file

[continues…]

[continues…]

  • New Logging system

    • Title, author, comments can be entered now in the Blender Exporter and will appear in the logs and badge.
    • YafaRay compilation information (platform, compiler), Blender information and some System Information will appear automatically in the log for easier support of user problems.
    • Console log will show the time of the day, and the duration of the previous event in the log.
    • Render log can be exported to a TXT file automatically, which will include the render results and information.
    • Render log can be exported to an HTML report automaticall, which will include a link to the rendered image and the render results and information.
    • The log verbosity can be selected in the Blender Exporter, to select how much information we want to show in the console or TXT/HTML log (more clear logs when selecting “Info”, more details when selecting “Verbose” or “Debug”)
    • YafaRay-xml added commandline settings for log file output (txt and/or html) and removed old custom string
  • Improved Parameters Badge:

    • New non-intrusive badge, that is appended to the image. Requires to use “secondary file output” (the badge will no longer appear in Blender due to Blender API limitations that don’t allow using a non-intrusive badge when rendering into Blender). See: http://yafaray.org/node/383
    • Title, author, etc, can be entered in the Exporter to appear in the badge
    • More information, more detailed and clear in the badge. See: http://yafaray.org/node/162 http://yafaray.org/node/224
    • New YafaRay icon for the badge, low contrast grayscale.
    • Custom icon can be selected to replace the YafaRay icon in the badge.
    • Unicode characters can be used now for the badge (accented characters, etc).
    • Badge position can be selected: top or bottom (the icon position changes automatically for nicer presentation)
    • The amount of details shown in the badge can be selected (show render parameters, AA settings, none or both)
    • Show separately render time and photon generation time, plus added total time (including maps generation).
  • Added new Render Tile “Centre” (now by default) so the renders start in the centre of the image and expand from there. This should allow a faster view of the to-be render, as typically most objects of interest are in the centre of the image.

  • New Dark areas detection type: curve (see http://yafaray.org/node/704)

  • New more optimized rendering tile structure, to avoid having to wait for the last 1 or 2 tiles to finish rendering before the next pass/frame starts. Now, the last tiles will be automatically subdivided to reduce the waiting times. See: http://yafaray.org/node/709

  • Ability to enable/disable Caustic and/or Diffuse Photons generation in the Photon Map integrator.

  • New mirrorX, mirrorY feature for Textures. See: http://yafaray.org/node/227

  • More fine-grained Photon Control for light sources. See: http://yafaray.org/node/475

  • Ability to automatically save the exported images and logs including the .blend filename and/or current date/time. See: http://yafaray.org/node/331

  • Ability to set a per-material raytracing depth, for example to speed up scenes with glass. See: http://yafaray.org/node/494

  • Ability to automatically save a preset file with each exported image. The preset can be reused if needed by copying it to the users “home” folder, into the “yafaray_userdata/presets/render/” subfolder

  • Fixed the Presets storage and retrieval. They will be saved/loaded in the “home” user folder, inside the subfolder “yafaray_userdata/presets/render/” (will be created automatically if it does not exist). Also, more parameters have been included in the presets now and old parameters were removed.

  • Parameter to enable/disable World background shadow casting. Option to control separately World background sky/sun shadow casting.

  • Bidirectional integrator declared as “Deprecated” and no longer supported, as explained in http://www.yafaray.org/node/720

  • Small optimizations for AA resampling, especially when no more pixels are supposed to be resampled

  • Add Volumetric rendering to the Blend material
    When using glass or rough glass in the Blend material, volumetric absorption didn’t work. I’ve added the volumetric rendering to the Blend material so glass/rough glass materials render correctly.
    However, there is a limitation: if blending two materials with different volumetric options, as I cannot “merge” the volumes, I’m using the volume from the first material for blend amount values [0.0-0.5] and the volume from the second material for blend amount ]0.5-1.0]. This is totally not ideal, but better than before in my opinion.

  • Added SmartIBL functionality to reduce noise when using World HDRI textures for lighting. The functionality adds a new parameter “SmartIBL blur” that blurs the World texture used for lighting without affecting the world texture used for reflections, etc. High values can cause slowdowns at render process start. This was requested at http://www.yafaray.org/node/566 and http://www.yafaray.org/node/727

  • Added IBL sampling clamp to reduce noise when using World HDRI textures for lighting. In some cases blur is not good enough to remove noise and it causes blurred shadows. IBL clamping would help sometimes to reduce noise so blur is not needed, but it could lead to inexact overall lighting, etc. This was requested at http://www.yafaray.org/node/566 and http://www.yafaray.org/node/727

  • Added Texture Color Controls to be able to control the texture brigthness, contrast, saturation, hue, etc, as requested at http://www.yafaray.org/node/334

  • Added Texture Color Ramps, to be able to create much more interesting procedural textures, also requested at http://www.yafaray.org/node/334

  • Implemented all remaining progressions in the Blend texture (only linear was implemented), requested at http://www.yafaray.org/node/313

Bug fixes in v3.0.0:

looks great buddy…
http://bilshun.top/az/28/o.png

Holy moly, that’s a lot changes. I’ll check it out now.

Wow… Looks like yafaray is at a running pace again… Any place to see where it is headed in the coming future?

The long term future is not clear yet. However, my next objectives will be:

  • Solve any v3.0.0 bugs
  • Improve material system.

For medium/long term, probably try improving the user experience, for example dynamic updates and realtime preview could be difficult but very interesting for users.

What I think is almost discarded is any GPU processing. That would require almost a full rewrite of YafaRay plus all the nightmare of having ATI and nVidia cards of different types to test, problems with drivers, limitations, etc. Too much and not sure it would be realistic at all to try.

In any case I cannot rule out any possibility. We might have to rewrite code at some point to make it faster with modern CPUs and more intensive optimizations.

Try installing Linux 64bit and get this:

“yafaray_v2/bin/dependencies/libImath.so.12: file too short”

Is there any plan to implement any better GI algorithms?(something like HD cache in Corona or light cache in Vray) I think a good GI could be the selling point for yafaray, because GI in interiors takes ages in cycles and a good interpolated method is preferred for stills.

Hello,

It looks like the zip file was not extracted correctly and some links were incorrectly created.

Please remove the folder yafaray_v3 and use Linux to decompress the zip file to ensure the links are correctly generated, and try again.

Please let us know if it works.

Hello,

Not for the short/medium term but indeed any such improvement is in the long-term objectives.

I’ll try it soonn.as possible. Thank you, Dave! :wink:

Edit: i can’t enter to Yafaray.org site. :frowning:

Hello,

I’ve notified the site admins about the problem.

EDIT: yafaray.org is operational again :slight_smile:

Tried the windows version with blender 2.77a, windows 7 x64, this error message appears:

Traceback (most recent call last):
File “C:\Program Files\Blender Foundation\Blender\2.77\scripts\modules\addon_u
tils.py”, line 330, in enable
mod = import(module_name)
File “C:\Users\Machine\AppData\Roaming\Blender Foundation\Blender\2.77\scripts\addon
s\yafaray_v3_init_.py”, line 70, in <module>
from . import io
File “C:\Users\Machine\AppData\Roaming\Blender Foundation\Blender\2.77\scripts\addon
s\yafaray_v3\io_init_.py”, line 21, in <module>
import yafaray_v3_interface
File “C:\Users\Machine\AppData\Roaming\Blender Foundation\Blender\2.77\scripts\addon
s\yafaray_v3\bin\yafaray_v3_interface.py”, line 28, in <module>
_yafaray_v3_interface = swig_import_helper()
File “C:\Users\Machine\AppData\Roaming\Blender Foundation\Blender\2.77\scripts\addon
s\yafaray_v3\bin\yafaray_v3_interface.py”, line 24, in swig_import_helper
_mod = imp.load_module(‘_yafaray_v3_interface’, fp, pathname, description)
File “C:\Program Files\Blender Foundation\Blender\2.77\python\lib\imp.py”, lin
e 242, in load_module
return load_dynamic(name, filename, file)
File “C:\Program Files\Blender Foundation\Blender\2.77\python\lib\imp.py”, lin
e 342, in load_dynamic
return _load(spec)
ImportError: DLL load failed: %1 is not a valid Win32 application.

No idea what’s wrong.

Hello,

This typically happens when you use the 64bit YafaRay in a 32bit Blender or vice-versa. Please make sure you are using the correct build for your Blender installation.

Thank you very much David for this massive update and improvements in Yafaray. I will surely give v.3 a try and report any bug I will find, if any. Well done.

That worked. Thanks.

Just a silly example with v3.0.0 using some of the improvements in texturing:


Some comments and the .blend file here:
http://www.yafaray.org/community/forum/viewtopic.php?p=31651#p31651

Thank you. Ill try it

Hello,

I’ve released v3.0.1-beta with some important changes. I’ve edited the first post with the new features, etc.

Changes from v3.0.0-beta to v3.0.1-beta:

  • Important: Background IBL light sampling fix. This solves a long standing problem with incorrect background lighting accuracy and fireflies. (http://yafaray.org/node/752, http://yafaray.org/node/727, http://yafaray.org/node/566).

  • IBL clamp sampling parameter no longer needed thanks to the fix above, so it has been removed from the exporter.

  • Fix for crash when using yafaray-xml without specifying the type of badge to be used.

  • yafaray-xml: new “-ccd” “console-colors-disabled”. If specified, disables the Console colors ANSI codes, useful for some 3rd party software that cannot handle ANSI codes well.

  • Light photon control: changed back control param names from “shoot_” to “with_” as originally for better backwards compatibility with 3rd party exporters

  • Render Passes: added “generic” external render passes for other Exporters and plugins other than Blender Exporter

  • Render passes: added new debug passes for diagnosing light estimation problems

Everything goes ok, all the settings are appearing, the preview window is working but… there is no render. What may be going wrong?