Interpolating GI for Flickering-Free Animations
Instead of supplying a single GI cache for rendering, you can pass as many caches as you want to enable GI interpolation:
// "win" is a pointer to a RED window.
// "viewpoint" is a pointer to a scene viewpoint.
RED::IWindow* iwin = win->As< RED::IWindow >();
RED::Object* vrl;
RC_TEST( iwin->GetDefaultVRL( vrl ) );
RED::IViewpointRenderList* ivrl = vrl->As< RED::IViewpointRenderList >();
// gi_caches is a RED vector of GI caches computed using RED::IWindow::FrameTracingGICache.
RC_TEST( ivrl->SetViewpointGICaches( gi_caches, viewpoint, iresmgr->GetState() ) );