Major Feature Release - Turbo Tools V3 now with Temporal Stabilizer and the option to use animation optimised sample pre-sets!
Turbo Tools is a full rendering pipeline addon that includes:
- Turbo Render - Vastly superior render results up to 960x faster. Retains image quality the standard denoisers can't maintain even when providing them with images rendered for 120X longer! For complex scenes you can expect your single frame renders to be reduced from several hours to several minutes!
- Temporal Stabilizer - Although only a single checkbox, this massive new feature provides per pass temporal stabilization, allowing animation render times to be reduced by up to 40x! Check out the YouTube introduction video to find out more:
- Turbo Comp - A full compositor suite with realt-ime playback and compositing directly in the compositor backdrop, branch caching, resaving of file output nodes without re-rendering, automatic file output node creation, publishing and lots more.
In difficult to render scenes (indoor scenes, volumes, scenes containing glossy materials with detailed textures, SSS, etc) Turbo Render provides results that OIDN/Optix could require you to render up to 120x longer in order to match Turbo Render's results. When no denoiser is used you could expect to render up to 960x longer to achieve the same results produced by Turbo Render (scene dependant). Additionally it simplifies the entire rendering process thanks to render setting pre-sets designed to help you get the result you need without diving into the complex render settings. It even works with complex compositing setups without the need to do any rewiring yourself! The results are remarkable as can be seen below.
The following tests were created using cycles X in blender 3.1. To give OIDN and Optix the best possible chance, they were set to use albedo and normals to assist with the denoising process. OIDN had Prefilter set to Accurate, and I also tried setting prefilter to NONE to see if it would improve the texture comparison results (it didn't).
Scene 1 - heavy DOF , strong SSS, film set to transparent to test alpha.
Test scene 2 Available from the shop.
Scene 2 - Indoor scene to test geometry detail and texture detail.
Below shows that even when rendering at 1 min per frame (240x less time per frame than the ground truth 4 hours per frame), we can still get excellent results without any noticeable flicker. To do this with OIDN and maintain the same geometry, texture and reflection detail we'd need to render at 30 mins per frame (as can be seen in the above texture comparison still image examples, and youtube video examples athttps://www.youtube.com/watch?v=toManFMUSFQ ).
Turbo Render is designed with ease of use being a top priority. In the Turbo Render Options area, simply click enable, choose a sample preset to automatically set up the sample settings to the desired quality, choose the cleaning mode (combined image or clean passes), tell it what's in the scene, and render. That's it! Turbo render will then analyse the scene and other render settings to produce the final render. IMPORTANT ensure a default project cache folder for new scenes is specified in the addon preferences, and that each scene has a valid cache folder set prior to rendering. The scene's cache folder can be set at the bottom of the Turbo Render options, or in the compositor's N panel turbo tab. If you the 'User' sample pre-set, then to achieve the biggest speed gains, you should reduce your samples below what you would usually need. Turbo Render is so fast because it's able to produce clean images from noisier render results than other denoisers can.
Turbo Render is compatible with:
- Still renders
- Existing compositor trees
- Rendering of multiple scenes and view layers from a single compositor (all scenes will use their own Turbo render settings).
- All Turbo Comp features (caching, publishing, resaving file output nodes without re-rendering etc)
Denoising Modes -
- Draft (clean image pass only) - The new draft mode offers extremely fast denoising, and when combined with the 'enhance textures' option will provide results that could be considered to far surpass what would be expected of a draft render, even at extremely low samples. Also suitable for renders which render to a denoisable level in under 10 seconds, thanks to it's fast processing times.
- Medium (clean image pass only) - The medium option is slightly slower than Draft, but on noisier images will offer better all round detail, particularly in reflections.
- High (clean image pass only) - The high mode will offer the best lighting, shadows and reflections of all but the ultra mode. This is suitable for final renders where the individually denoised passes aren't needed for compositing.
- Ultra(cleans all necessary passes)- This will clean individual passes for use in the compositor afterwards, and can also be used to resolve any geometry wobbliness present in lower pre-sets. The passes which are cleaned is decided by scene content and render settings. This mode can also be used if the other modes are not producing good geometry detail. IMPORTANT - If you intend to use the individually cleaned passes in a 3rd party compositor, you can either use the render layer cache exr's found in the cache folder you set, or if you prefer another format, you can set up a file output node directly from the render layer node. Blender's output can be set to something light such as a ffmpeg because it's only able to output the denoise image pass, not the other denoised passes. If your passes include data passes such as cryptomattes, it's advisable to use EXR 32 bit.
Cycles Speedup Options -
- Optimise HDRI - This will optimise the importance map, leading to potentially faster renders and less RAM usage. The improvement will be most noticeable with HDRI world environments which are 8k or above, and will reduce memory consumption during rendering by around 1GB for a 16k HDRI.
- Prevent Fireflies - Recommended. This will reduce the chance of fireflies and also provide a potentially massive render time reduction (scene dependant).
Sample Pre-sets - A quality level for every occasion. No more messing about trying to find the ideal render sample settings, simply choose the desired quality and hit render. Modes include: Crap, Medium, High, Ultra, Insane, User. For animations you may want to use your own sample settings, as these have been optimised for fast still images. Using them for animation may cause inconsistencies between frames.
Very Dirty - Very dirty should be used if you're using very low samples or still have noise in the image after it's been denoised.
Interior Scene - Adjusts the render pre-sets to produce better results for interior scenes or scenes with a lot of indirect illumination.
Animation- This will optimise your chosen sample pre-sets for animations.
Enhance Textures - This will ensure that texture detail is maintained even at very low samples. Avoid the principled BSDF's Sheen option for optimal results (you can use a fresnel and a mix into the diffuse instead)
Enhance Gloss - Will enhance texture driven glossy materials such as metals.
Enhance Trans - Will enhance the texture driven transmissive materials.
Visible to Camera - Use these options to specify what the camera will be able to see. This in combination with various other render settings (light bounces, film etc) enables the system to choose the optimal approach to ensure the best results. Uncheck what's not needed to ensure the fastest processing time. Turning on Heavy DOF/Motion Blur, Emission, and enabling the 'behind volume' sub options is not always necessary (particularly at higher render settings), so try leaving those off for increased performance, only enabling if you notice noise around the edges of objects, or noise behind volumes.
- Make sure you have 'very dirty' enabled at low samples, otherwise you'll get noise even after denoising.
- Make sure you put a tick in the visible to camera section for every surface type in the scene. Failure to do this will result in un-denoised elements.
- If your camera has strong DOF or motion blur and you notice noise in those areas after rendering, be sure to tick the 'Heavy DOF/Motion Blur' option. You can tell if the scene has DOF if near or far objects are blurry compared to the focal point.
- Avoid enabling 'optimise HDRI' in scenes that don't use a HDRI in the world environment, or if the HDRI is lower resolution than 4096 pixels wide.
- Only use the 'avoid fireflies' option in scenes with very strong lighting or a hdri, otherwise the brightness of highlights and reflections will be impacted.
Command line rendering
To render from the command line use:
blender -b "E:\blender\benchmark scenes\classroom\Classroom.blend" --python-expr "import bpy; bpy.ops.threedi.render_animation()"
blender -b "E:\blender\benchmark scenes\classroom\Classroom.blend" --python-expr "import bpy; bpy.ops.threedi.render_still()"
If you want to set other things such as output directory, frame range, etc, then refer to:
Full Video demonstration showing Turbo Render and Turbo Comp here:
Volumes will be lost on shaders that produce both the volume and a transmissive surface. This is a Blender bug. As a workaround you can seperate into two objects, one for the volume and one for the transmissive surface. You should also turn off shadows and diffuse in the transmissive object's visibility settings in the object properties.
Timeline camera markers are currently incompatible with the caching system. Instead, render each camera's frame range one at a time. This will ensure compositor playback and publishing features work correctly.
The image doesn't get denoised even if Turbo render is enabled - This is caused by another addon assigning itself to the f12 key before Turbo Render can. To check this you can open the render menu and check if 'Turbo Tools Render Still Image' shows 'f12' to the right of the menu entry. If not, you can either launch it directly from the menu, or you can right click the menu item and choose to assign the f12 key manually (same for 'Turbo Tools Render Animation'). There's nothing I can do about this behaviour, as it's completely luck of the draw which addon will be registered first.
This could also happen if you've packed the cache exr into the .blend file, as Blender will force the cache node to use that instead of the most recent render result, unpack the exr and click 'refresh all' to load in the most recently rendered cache file.
Turbo Render takes longer to render than Blender's denoising options - Render time is identical, but dependant on the mode chosen, the denoising process afterwards can take approximately 5 to 20 seconds longer (i7-7700k), but because the results are superior, you can lower the render settings to more than compensate. For the fastest possible denoising time, make sure you have set the Turbo Render options to represent your scene accurately, turning on Heavy DOF/Motion Blur and Emission is not always necessary (particularly at higher render settings), so try leaving those off for increased performance.
I don't see much of an improvement - Turbo Render will provide the biggest improvements with scenes that are difficult to render and have multiple passes (diffuse, glossy, transmission, emission, etc), for example indoor scenes with lots of indirect lighting, scenes with very fine detailed texture information on reflective surfaces, volumes, heavy SSS, etc. For scenes that already render quickly you should use the Draft denoising mode to avoid unnecessary processing times.
For scenes that only have data on one pass (such as glossy indirect but virtually nothing on glossy direct), a multipass denoiser such as Turbo Render can't offer any benefits due to the nature of multipass denoising. In this case you could either use the standard OIDN from the render panel, or if you want to take advantage of the non denoise features Turbo render provides such as 'enhance textures', firefly removal' and 'Optimise HDRI', use Draft mode to avoid unnecessary processing.
My animation has flicker - The render settings are not high enough, if using one of the render pre-sets, then it's recommended to use the 'high' setting as a minimum. In the kitchen scene above high took just over 1 minute per frame including denoising (still a huge improvement on the 4 hours per frame without denoising)
Blender Crashes - This could happen if there's a conflicting addon or if you've accidentally download the wrong zip file for your Blender version. First check the zip file ends with your Blender version, for example, 'blender_turbo_boost_v_2_0_5_ for blender3_1_0' is only compatible with blender 3.1.0. If you are using the correct zip file, try installing the addon after starting Blender in factory mode to ensure there are no conflicts. You can open blender with the factory start-up using the file named 'blender_factory_startup.cmd' from the blender folder. After installing Turbo Render in factory mode you can then re-install your old addons until you find the addon responsible for the conflict. Ensure that addon is turned off when using Turbo Render in future. Another possibility is that you're using E-Cycles with it's own denoiser enabled (Turbo Render is not currently tested with any engine other than Cycles, but I intend to look into ensuring full compatibility with other engines such as E-Cycles at a later date).
Blender becomes unresponsive - If your system only just meets the minimum system requirements, or you're rendering at massive resolutions, you may have insufficient system resources, leading to prolonged processing times/unresponsiveness. Try closing all other open programs before trying again, if you still have issues, then it's likely your system doesn't meet the below system requirements, in this case you should only use fast mode, as this is the least system intensive. Alternatively you may have chosen a cache location with insufficient space for the cache files.
I've set Blender to output a multilayer exr, and even though I have Turbo Render set to the 'Ultra' denoising mode, the passes aren't cleaned in the resulting exr file blender generates - Blender can only output the cleaned image pass, all other passes will be un-denoised, instead you can either use the render layer cache files directly in your 3rd party compositor, or the second option is to connect a file output node to the render layer node or the render layer cache node, and set it to multilayer exr. In the Turbo Comp panel you can use the 'create and wire' operator to automatically add the file output node for you.
Unicode error when pressing f12 - Ensure you have no special characters in the scene name, camera name and viewlayer name.
The render layer cache doesn't match the render/chosen Turbo Render settings - You've packed the render layer cache exr so it's using the packed version. Unpack the file and then click refresh all or render again to update to the correct cache file on disk.
Blender error 'Failed to write to tile' - This is a non addon related error which generally means there's insufficient disk space in the temp directories cycles uses. Clear some disk space, and also consider placing Turbo Tools compositor cache directory on a different drive, as this can grow quite large for long animations.
When I render with Turbo Render disabled, the compositor still generates a render layer cache node - This is correct behaviour, Turbo Tools will always generate render layer cache even if Turbo Render is not enabled. This is necessary so that you can utilise all the tools in the Turbo Comp panel (caching, publishing, resaving of file output nodes, etc). If you don't want this to happen while the addon is installed for some reason, you can perform a standard render by using alt f12 (still image), or alt ctrl f12 (animation). Make sure you hook back up the render layer node before doing this (see the cache/uncache section of the instructions above)
Recommended Minimum System Requirements
CPU - Quad Core that runs at over 4ghz (The processing is multithreaded, so the more cores the better. Anything below 4ghz will still work, but the processing times may be unacceptable on low core count machines)
Ram - for a 1080p render, 3gb to 4gb of memory should be free prior to starting rendering (This memory requirement will quadruple each time you double the render resolution. For example 4k renders will require approximately 12gb to 16gb of free ram. If your system has paging turned on, then when ram is depleted the hard drive will be used instead, which will be very slow)
Operating system - Any
Hard Drive Space - Sufficient space for the cache files (at 16 bit, approx 50MB per render layer node per frame + 5MB per standard 30% cache node)
Turbo Comp provides massive compositor speed-ups thanks to an intuitive caching system. It's also where you publish your final composition and remove temporal flicker from animations.
The blender compositor is where you can take a turd and polish it into something exceptional. The pros don't spend hours trying to get everything right in the 3d viewport, or spend huge amounts of time re-rendering every time a client needs an amendment. Instead the majority of the work to get a render looking incredible, is carried out in the compositor. This is why at the last Blender conference, the entire audience voted that the compositor be the next focus for development.
V1 of this addon addresses many of those needs by adding :
Cache entire branches of a node tree to ensure fast performance.
Add, tweak, and cache all in real time.
Real-time Graph Editor
modify graph editor curves in real-time via the graph editor for real time automation!
File Output Node Tools
One of the longest requested features for blender is to be able to resave a file output node without having to re-render the 3d scene....well now you can! Even better, this feature isn't limited to single frames, you can actually resave all frames in a single click.
Not only that, you can also press a single button to generate and wire up file output nodes with the output destination automatically populated too!
One click publishing temporarily discards any cache and exports your node tree at full quality to a movie file or image sequence. This can be done as many times as necessary as it doesn't require the 3d scene to be re-rendered. Audio can be included in the resulting file by adding the audio strip to the VSE. With the 'remove temporal flicker' option enabled, animation flicker will also be removed during the publishing process, allowing you to render animations up to 40x faster!
Automatic rewiring of your existing node trees
Hit render, sit back and it's all done for you. Automatically works with even the most complex of existing compositor node tree.
Auto rename group inputs
No more wasting hours renaming group inputs. Select the group, click rename group inputs from source option, and you're done!
- download the addon
- go to the blender preferences -> addon section
- choose to install
- choose the zip file you've downloaded
- IMPORTANT! Set the cache location in the preferences or in the compositors N panel. This should be a non system drive for maximum performance and stability. Ensure this is set to something unique for each project to avoid overwriting any cache you haven't finished with.
- render the scene (the compositor will automatically generate the render layer cache for you.)
- go to the compositor (if you're not already there) and start compositing.
For best performance, place a cache node on a single wire that leads to the composite and viewer nodes before rendering, this will generate lower quality cache in addition to the full quality render layer cache, ensuring faster playback due to it only needing to load the smaller standard cache EXR each frame rather than the full resolution cache EXR.
The Caching System:
Scene Cache Folder
The location that the current scene's cache and standard cache will reside on your computer. This can be accessed from multiple computers at once, for example if one is rendering and you want to begin compositing on a different computer before rendering has finished. This is also a full render management system which allows you to automatically reload the cache in any blend file that has matching credentials (scene name, camera name, viewlayer name). For this reason be careful not to change scene,camera and viewlayer names after rendering, otherwise the cache won't be found.
Enable this if you want all frames to be cached. When disabled only the latest render cache and standard cache files will be kept.
When enabled this will check that nodes downstream of the cache node still have the same parameter values, and if not will automatically recalculate the tree and update the cache files for just the necessary frames. This can be very slow, so only use it after adding a new cache node, or if you know the cache is out of date (for example if you've changed a property on a node which is downstream of the cache node). Only applicable when animation is enabled. No need to enable directly after rendering, as all the cache will have been created during rendering so it's guaranteed to be up to date at this point.
If you find that the cache is not being updated for some reason (i.e. if you've changed something other than a node parameter such as resolution), you can select cache nodes and click 'clear cache of selected'. This will delete the cache from disk and force an update.
This will cache the selected nodes at a resolution determined by the 'new cache resolution' slider, or if they're already cached, will uncache them. Avoid caching render layer cache nodes, as this may cause issues with automatic rewiring following a render.
If you press this with a cached render layer node selected (not a render layer cache node), then all render layer cache nodes for this render layer node will be discarded and their links moved back to the render layer node, useful for returning the tree back to it's original state before sharing the file with someone who doesn't have the addon. The render layer cache EXR file will remain on disk to avoid accidentally losing potentially thousands of frames of render data, so these will need to be deleted manually from the specified cache folder. Standard cache node EXR's will be deleted from the cache folder as these can be re-created without the slow process of re-rendering the 3d scene.
Determines the resolution of new cache nodes. This will need to be set appropriately for your system to avoid too much frame dropping. On a i7 7700k 30% provided fast FPS when the main render output was set to 1920 x 1080.
This will update all standard cache nodes for the current frame. Will also generate cache nodes for uncached render layer nodes if cache files exist in the cache directory (means you can never lose your work, even after closing blender without saving!).
This will refresh only the selected cache node and any cache nodes that rely on it upstream. This saves time unnecessarily refreshing downstream nodes that you know are up to date, particularly if those downstream nodes rely on nodes that take a long time to calculate (denoise nodes etc).
Clear Cache of Selected
This will delete the cache from the hard drive but will not remove the cache node. Handy if you need to force the cache to update.
File output node section
You can select a node or multiple nodes, then hit 'create and wire'. This will generate a file output node for each selected node, automatically create the links, and specify a directory and file name to save to.
The only wired option will only wire up the sockets on the selected node, if the socket already has a link.
Select the file output nodes that you want to generate new images, and then either click resave current frame, or resave all frames (creates an image sequence for the entire animation length as set in the render properties)
If you notice playback is slower than the scene FPS, then you can choose 'frame dropping' from the menu, this will skip some frames to preserve the correct FPS. Ideally this should be set to 'Play Every Frame' if you have 'Validate Cache' enabled, otherwise cache regeneration will become quite sporadic during playback. This will also affect the 3d viewport, so be sure to change back before switch back to the 3d viewport.
Important performance consideration.
- Only enable the passes you actually need. The more passes, the bigger the cache file, and the slower the load time.
- Reduce the tree to a single cache node if possible. This will prevent the render layer cache node which may have many passes from re-loading during playback.
- In the addon preferences, consider lowering the render layer cache bit depth to 16bit, as this will reduce the cache file size considerably, leading to faster load times.
Publishing will temporarily discard the cache nodes you've manually created , and save the frame or animation with the location and format specified in Blender's output settings. Audio will also be included in any movie formats if you have audio in the VSE (ensure no video is present in the VSE otherwise it will take precedence over the compositor). Animation flicker will also be removed during publishing if you enable the 'remove temporal flicker' option.
Publish Current Frame
Saves the result of the compositor as a still image to the location and format specified Blender's output property panel.
Saves the result of the compositor as an animation or image sequence to the location and format specified Blender's output property panel.
Remove Temporal Flicker
This deceptively unassuming checkbox is actually a huge feature which in as little as half a second per frame will remove denoiser induced animation flicker that would usually require much longer render times. In combination with the animation option sample pre-sets, you could expect to reduce render times by as much as 40x! Fully compatible with all other publishing features, and each pass will be stabilised separately to ensure upstream nodes provide the best possible result. If using multiple render layer nodes and standard cache nodes, you can choose which ones get stabilised by simply selecting them before publishing. Cycles can only generate the necessary data if motion blur is disabled in Blender's render settings, so ensure this is disabled before rendering (you can still add motion blur by enabling the vector and depth passes and then feeding them into a vector blur node in the compositor).
Process RGBA separately
Temporal stabilisation will process each colour channel individually. This is slower, but will do a better job of avoiding artefacts. It's recommended to try without first unless there are objects in the scene moving across non geometric backgrounds such as a HDRI environment.
Include File Output Nodes
With this option enabled any unmuted file output node will generate a new image sequence at full resolution (handy if you want to generate multiple variations). Note that only the active composite node can generate movie files with audio.
Quick publish will use the cache to publish without recalculating the tree. For this reason, it's a good idea to drop down a 100% cache node after parts of your node tree that you don't intend to edit after rendering, this will generate cache during the render ( a huge advantage vs taking your renders to a 3rd party compositor).
View Published Image
This will open the published image file in the image editor.
View Published Image
This will open the published animation in Blender's animation player.
Cover image bicycle (pre-rocket) created by Ruff on Blendswap. Find more of his work at: https://blendswap.com/profile/26107
Tools to DRAMATICALLY speed up Cycles rendering and compositing!
Blender versions2.93 - 3.3 Alpha
- Tools to DRAMATICALLY speed up Cycles rendering and compositing!
- Blender versions2.93 - 3.3 Alpha