Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'intern/cycles/render/light.h')
-rw-r--r--intern/cycles/render/light.h26
1 files changed, 22 insertions, 4 deletions
diff --git a/intern/cycles/render/light.h b/intern/cycles/render/light.h
index afec3628dda..15038d0a920 100644
--- a/intern/cycles/render/light.h
+++ b/intern/cycles/render/light.h
@@ -57,6 +57,7 @@ public:
bool use_scatter;
bool is_portal;
+ bool is_enabled;
int shader;
int samples;
@@ -76,15 +77,32 @@ public:
LightManager();
~LightManager();
- void device_update(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress);
+ void device_update(Device *device,
+ DeviceScene *dscene,
+ Scene *scene,
+ Progress& progress);
void device_free(Device *device, DeviceScene *dscene);
void tag_update(Scene *scene);
protected:
- void device_update_points(Device *device, DeviceScene *dscene, Scene *scene);
- void device_update_distribution(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress);
- void device_update_background(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress);
+ /* Optimization: disable light which is either unsupported or
+ * which doesn't contribute to the scene or which is only used for MIS
+ * and scene doesn't need MIS.
+ */
+ void disable_ineffective_light(Device *device, Scene *scene);
+
+ void device_update_points(Device *device,
+ DeviceScene *dscene,
+ Scene *scene);
+ void device_update_distribution(Device *device,
+ DeviceScene *dscene,
+ Scene *scene,
+ Progress& progress);
+ void device_update_background(Device *device,
+ DeviceScene *dscene,
+ Scene *scene,
+ Progress& progress);
};
CCL_NAMESPACE_END