###############################################
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:

.. code:: cpp 

    // "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() ) );