Happy New Y…. ok, ok. Moving on.
Remember when I said I wanted to make “smaller releases more often“. Well, here’s the second one in 2017: v4.4.1
Before you ask, yes, there was a v4.4.0 that was released yesterday, but the newest one contains some last minute fixes and I thought it was appropriated to make a minor release just to include them.
Anyway, the major features available in this release are the improvements for offline rendering and multi-camera setup that I described in the previous post.
Also related to rendering, the Depth of Field effect has been improved to… well, to work correctly this time, using actual photography parameters. Check this out:
On the other hand, nodes in a scene are now updated in parallel thanks to the concurrency tools available since v4.3.
As usual, expect some other minor fixes and improvements as well. Check the full release notes for the newest version here.
Oh, and this time I did remember to update the demo projects in order to handle the latest changes, too.
Happy 2017! I know, it’s almost February, but better late than never, right?
[EDIT: I was so excited that this demo actually worked that I didn’t even realized this wasn’t the first post of the year]
Anyway, I just finished this demo and I wanted to share it with you. Simply put, I’m rendering lots of characters on screen using the impostor technique, which relies on rendering a single model in an offscreen buffer. Then, multiple quads are drawn using the output of that buffer as texture.
In order to achieve this goal, I had to make some changes in how scenes are rendered (is this the first refactor of the year? No). Since we’re using multiple cameras, we needed a way to define which one is the main one (we cannot rely on the Simulation to that for us any longer). Also, a new render pass is required to draw the model on a texture. And so the OffscreenRenderPass (were you expecting something else?) was born. But that’s pretty much it.
As usual, this is a new feature and therefore… unstable. Do not try it at home (yet).
New year, new release!
You might have noticed that the new version contains less
refactors features than previous ones, but the idea is to keep new versions as small as possible from now on. That means there should be new releases more often (did I just have a deja-vu?)
Anyway, version 4.3 contains two big new features:
The new Job System has been fully integrated with the Simulation framework to provide task concurrency wherever we might need it. As I’ve mentioned before, we can now schedule jobs and wait for them (and their children, if any) to complete before moving on. This will be particularly useful when implementing the parallel renderer in Vulkan sometime this century.
Also in this episode, Render Queues have been changed to sort objects based on their type. Translucent objects are now being sorted in a back-to-front fashion automatically. That’s right, I changed my mind again.
Additionally, I made the Ray Tracer part of the Core library too and it’s taking full advantage of the new concurrency tools. It still lacks a lot of features, true, but I’ll definitely be doing some improvements during the year (provided my Project Manager allows me some free time from the other stuff).
That’s it. Check out the new version in Github where you’ll see the whole list of changes and have a great year!