-
Notifications
You must be signed in to change notification settings - Fork 1
/
cluster_builder.h
48 lines (38 loc) · 1.2 KB
/
cluster_builder.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#ifndef _CLUSTER_BUILDER_H_
#define _CLUSTER_BUILDER_H_
#include "cluster.h"
#include "light_transport_matrix.h"
namespace Renzoku {
/**
* Build clusters based on the reduced light transport matrix.
*/
class ClusterBuilder {
public:
ClusterBuilder();
/**
* Hasan's approach in SG07.
*/
void cluster_by_sampling(Scene *scene,
IVirtualPointLightEvaluator *evaluator,
LightTransportMatrix &R,
int num_clusters, Clusters &clusters,
const BrdfPointLights &all_vpls,
const Pixels &pixels);
void cluster_by_splitting(Clusters &clusters);
/**
* Visibility clustering
*
* Davidovic's approach in SA10.
*/
void cluster_visibility(Scene *scene, BrdfPointLights &vpls);
/**
* Form factor & brdf clustering
*
* Our experimental approach.
*/
void cluster_form_factor(Scene *scene, BrdfPointLights &vpls);
void cluster_brdf_light(Scene *scene, BrdfPointLights &vpls);
void cluster_brdf_surface(Scene *scene, BrdfPointLights &vpls);
};
} // end namespace
#endif