Source code for blenderproc.python.modules.lighting.LightInterface

from blenderproc.python.modules.main.Module import Module
from blenderproc.python.modules.utility.ItemCollection import ItemCollection
from blenderproc.python.types.LightUtility import Light


[docs]class LightInterface(Module): """ **Configuration**: .. list-table:: :widths: 25 100 10 :header-rows: 1 * - Parameter - Description - Type * - cross_source_settings - See the next table for which properties can be set. Default: {}. - dict **Properties per lights entry**: .. list-table:: :widths: 25 100 10 :header-rows: 1 * - Parameter - Description - Type * - location - The position of the light source, specified as a list of three values. Default: [0, 0, 0] - list * - rotation - The rotation of the light source, specified as a list of three euler angles. Default: [0, 0, 0] - list * - color - Light color, specified as a list of three values [R, G, B]. Default: [1, 1, 1]. Range: [0, inf] - list * - distance - Falloff distance of the light = point where light is half the original intensity. Default: 0. Range: [0, inf] - float * - energy - Intensity of the emission of a light source. Default: 10. - float * - type - The type of a light source. Default: POINT. Available: [POINT, SUN, SPOT, AREA] - string """ def __init__(self, config): Module.__init__(self, config) self.cross_source_settings = self.config.get_raw_dict("cross_source_settings", {}) self.light_source_collection = ItemCollection(self._add_light_source, self.cross_source_settings)
[docs] def _add_light_source(self, config): """ Adds a new light source according to the given configuration. :param config: A configuration object which contains all parameters relevant for the new light source. """ light = Light() light.set_type(config.get_string("type", 'POINT')) light.set_location(config.get_list("location", [0, 0, 0])) light.set_rotation_euler(config.get_list("rotation", [0, 0, 0])) light.set_energy(config.get_float("energy", 10.)) light.set_color(config.get_list("color", [1, 1, 1])[:3]) light.set_distance(config.get_float("distance", 0)) if config.get_bool("use_projector", False): light.setup_as_projector(config.get_string("path", "examples/advanced/stereo_matching_with_projector" "/patterns/random_pattern_00256.png"))