integratorsΒΆ
-
class integrator_t : public wt::scene::scene_element_t
Generic interface for light transport integrators.
Subclassed by wt::integrator::plt_bdpt_t, wt::integrator::plt_path_t
Public Functions
-
inline integrator_t(std::string id)
-
integrator_t(integrator_t&&) = default
-
virtual ~integrator_t() noexcept = default
-
virtual sensor::sensor_write_flags_e sensor_write_flags() const noexcept = 0
Indicates how the integrator writes to the sensor, and which capabilities are expected from the sensor (or its underlying film).
-
virtual void integrate(const integrator_context_t &ctx, const sensor::block_handle_t &block, const vec3u32_t &sensor_element, std::uint32_t samples_per_element) const noexcept = 0
Integrates light transport in the scene, given a sensor element and samples count. The arguments
block
andsensor_element
are only used whensensor_write_flags()
setswt::sensor::sensor_write_flags_e::writes_block_splats
, otherwise are ignored.- Parameters:
block β block to write samples to
sensor_element β sensor element that
block
belongs tosamples_per_element β sample count to use for this element
Public Static Functions
-
static inline constexpr std::string scene_element_class() noexcept
-
static std::shared_ptr<integrator_t> load(const std::string &id, scene::loader::loader_t *loader, const scene::loader::node_t &node, const wt::wt_context_t &context)
-
inline integrator_t(std::string id)