Light tracing
Реализирайте алгоритъма за глобално осветление Light tracing.
1) Всички лампи в сцената трябва да им се допише метод, който генерира изходящи лъчи.
2) Постройте пътища: трасирайте тези лъчи из сцената, ползвайки BRDF-ите (както е в path tracing, използвайки BRDF::spawnRay)
3) На всяка стъпка от строежа, пробвайте да свържете текущия край на пътя с камерата (и пресмятайки последния BRDF чрез неговия eval()). При свързването с камерата, трябва да проектирате последната точка от пътя върху виртуалния "лист милиметрова хартия", т.е. 3D->2D проекция. Докараната по този път светлина добавете (натрупайте) в получения пиксел във vfb масива.
Алгоритъмът няма "завършек" в смисъла на path tracing; лампите могат да изстрелват нови и нови фотони, а екранния буфер постепенно се допълва до все по-гладко изображение. В известен смисъл имате progressive render. Направете да се осъвременеява екрана на всеки построени 10000 (или друго подходящо число) пътя.