Just wanted to let you know that I've been working for the last months on the new YafaRay v4. I'm making some fundamental changes to it (object primitives and intersections, which is the very core of the renderer) and I hope to be able to add some long requested features to YafaRay thanks to that work.

However, rebuilding fundamental parts of the YafaRay core is, as you can imagine, a long and hard process. I'm getting very interesting results and it looks promising, but still a long way to go before v4 gets ready to be released.

I'm making the changes with a focus on being able to add some (also long requested) material and lights features to the renderer, so I will try to come up with a new object management that can support them so we don't have again fundamental limitations that restrain the development of new features.

I don't want to give you any specific details yet, because this is still very unstable and I don't want to make promises I might not be able to fulfill, but I'm progressing (slowly as I can only do this in my free time, which is very scarce lately), but still progress is being made.

great news David, keep it strong ! Primitives and ray intersection is the oldest part in YafaRay right now, because that code was inherited from YafRay, but at the same time is the most important one since ray intersection is the most frequent task in any raytracer.

Thank you, guys! It's still too soon even for a pre-alpha, as I'm working to get back existing basic features like transparent shadows, mesh lights, etc with the new system. Once I get back all basic features I will upload the code and the first alpha. Still lots of work to do but I hope it's worth it.

Don't expect spectacular speed improvements. I only expect very modest improvements (at least in the beginning) bit I hope to make the foundation more flexible and powerful to get new features that have been requested for many years.

Just a quick update: still working on v4. The changes I'm making are very fundamental so it's being quite hard and long. However, I hope it's worth it.

So far, I'm just trying to get back "basic" features with the new system, and it's still too soon to say what will be included in the new version or even a list of planned features.

The reason I'm not telling is not because I want to be secretive, but to avoid raising expectations that I might not be able to achieve. Right now I have quite a few new features that "appear" to work but it's not the first time something appears to work and later on I discover a fundamental flaw in the design (or even the concept) that ruins the entire thing...

Anyway I understand you want to know something So, even at a risk of disappointing you later if I cannot make them work, a few features that I'm working on and I hope you will like are:* No more waiting for the KdTree to build. I will use BVH structures that are *much* faster * Motion Blur (although I'm not sure if this will only work in Direct Lighting or if it will also work in Photon Mapping, which adds another dimension of difficulty to Motion Blur)* Subdivision Surfaces and Displacement maps.

Of course there will be more, but too soon to say...

Once I have a stabilized foundation for v4 that works in the different platforms (Windows 32bit/64bit, Linux 32bit/64bit and Mac OSX 64bit) I will upload the "starting" pre-alpha v4 code and some testing builds. However, that's not yet going to happen soon. I'll keep you updated.

This is progressing slowly because it's a major rewrite of fundamental parts of the renderer. Therefore the code is still extremely unstable and I have to figure out how to lay the foundations of the new system.

In any case I'm sure it will be worth it. I don't expect improvements in speed or RAM usage, although they could happen as a side effect in some cases. However, I expect improvements in basic functionality.

One of the things I've been working lately (and has been quite difficult) is the Flat/Smooth/AutoSmooth rendering. YafaRay has been traditionally very limited in this regard, only offering either flat faces in objects or an angle-dependant autoSmooth. However it was not possible (as far as I know) to set individually which faces would have to be flat and which smooth, or even set custom Vertex Normals. With the new system it will be possible to set custom vertex normals (only shared vertex normals, not individual per-face vertex normals for now although it might be possible in the future if there is demand).

The AutoSmooth function will no longer be mandatory if you want smooth rendering, as by default the new Blender-Exporter will export Blender's data about whether each face is flat or smooth and the shared vertex normals as well, so it will be more immediate to get similar results in YafaRay respect to the Blender renderers.

The AutoSmooth will still be an option, but as a new feature it will only auto smooth the faces marked as "smooth" and not the faces marked as flat in Blender, getting a behaviour also more similar to Blender.

Well... this took a while and was more difficult than I expected. I'm continuing now to try getting the code more stable and getting back features I lost with the foundation changes... I will keep you updated!

It's still way too soon and I can see some shadow artifacts, but these are my first tests with the new YafaRay v4 internal SubDivision + Displacement.

In this example scene, I merely created a cube and set it to be an internal YafaRay SubDivision object (a new feature in v4) and assigned an image texture as a displacement map. The cube itself has no subdivision modifiers in Blender at all, the subdivision and displacement is done in YafaRay (according to the desired YafaRay subdivision tesselation factor, which I set to 250 in this case)

I rendered this using Path Tracing, adding a shiny diffuse plane with red color for effect...