I added the support for persistent PhotonGI cache. If
Code: Select all
path.photongi.persistent.file = cornell.pgi
is defined, the cache will be loaded from the file (if it exists) or saved to the file (if it doesn't). A persistent cache can be used across multiple renderings/frames only if only camera has been edited. Note: no check is possible on my side so it is up to the user/application to delete the cache file if more than a camera edit has been done.
PhotonGI creates cache entries only on visible surfaces so we still need some additional step to render animations. I have 2 solution in mind at the moment:
1) load the cache and add the additional entries now visible with the new camera position. This is a kind of incremental building solution with a normal pre-processing time for the first frame and than a small pre-processing for each frame.
2) the first time, build the cache for all animation camera positions. This is a longer pre-processing for the first frame than no pre-processing for all other frames. VRay uses this solution.
I have the strong feeling #1 may introduce flickering artifacts across frames (but it is unknown at the moment without doing tests) so I would go for #2.
It is a bit fun but #2 can be already build by rendering all the camera animation as a motion blurred camera from the first to the last frame. Other wise we can introduce some way to export camera animation.
@B.Y.O.B. how can you export camera animation from Blender ?