Current situation is, the only option for rendering in cycles is to use static bvh, which has to rebuild the whole lot every frame if something moves, but is meant to finish the actual rendering part quicker.
However the viewport uses dynamic bvh, which builds just the items that move again.
In my experience the time taken to render any reasonably complex scene with animation in it at the same resolution and with no difference in subsurf levels is substantially faster in the viewport, especially after the first frame.
(other things may happen in the f12 render but i can’t see the result of them)
In fact, the difference is so extreme that i made a script for autoHotKey that screenshots the viewport after a certain time and then presses right arrow to go to next frame and repeats.
This drops my render time from about 29 seconds a frame to 14.5 seconds a frame, half.
Obviously this is not without big drawbacks, no control over color depth, render layers, transparency, fiddly to set up…
My question is, with such a dramatic speedup in render time in quite a few scenes, would it be possible to add the ability to use dynamic bvh to the F12 render?
Surely it can’t be that hard as it is already used for the viewport?
Please note this is primarily for GPU rendering as bvh build and copy etc don’t seem to take as long on CPU ( i assume it doesn’t have to copy it across)
******This certainly isn’t the best method, but it does at least prove the point.
In the meantime here is the autoHotKey script if anyone finds it useful, i am not a programmer and this is probably the biggest bodge in the history of computing, but i find it useful, once set up.
To use you will need AutoHotKey and IfranView and the viewport in separate window of the dimensions you want to render.
( i put it fullscreen on another monitor then set that monitor to the resolution i want to render in)
Tip: Home key fits viewport to camera.
***#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn ; Enable warnings to assist with detecting common errors.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
#Persistent
SetTimer, PressTheKey, 14500
Return
PressTheKey:
Loop
{
if loopCount > 275
exitapp
if loopCount < 275
Send, ^{F11}
Send, {Right}
EnvAdd, loopCount, 1
/*MsgBox, Iteration number is %loopCount%.
*/
Return
}
/* this script is supposed to work with blender and ifranview in order to capture viewport renders,
which are faster for animation as they don’t have to rebuild bvh every time.
the number under persistent above is the ms delay. SET THIS TO SLIGHTLY LONGER THAN THE TIME IT TAKES FOR YOUR VIEWPORT TO RENDER, after which it runs PressTheKey, which sends “ctrl f11”
( the shortcut for ifranview taking a screenshot)
and then presses right arrow which moves the frame forward by 1 in blender.
reference links
http://www.howtogeek.com/97998/how-to-make-your-computer-press-a-key-every-x-seconds/
*/
***IfranView Setup (press c to get to this window)