Struct scene_sensor_t::emitter_sampling_data_t

Nested Relationships

This struct is a nested type of Class scene_sensor_t.

Struct Documentation

struct emitter_sampling_data_t

Public Types

using integrated_spectrum_distribution_t = distribution1d_t

Public Functions

const emitter::emitter_t *sample(const scene_t &parent, sampler::sampler_t &sampler) const noexcept

Samples an emitter w.r.t. to the integrated spectrum of the emitters’ emissions spectra over this sensor’s sensitivity spectrum.

inline f_t pdf(const emitter::emitter_t *emitter) const noexcept

Sampling density of an emitter w.r.t. this sensor.

inline integrated_spectrum_distribution_t::sample_ret_t sample_wavenumber(sampler::sampler_t &sampler, const emitter::emitter_t *emitter) const noexcept

Samples a wavenumber from the spectrum product of emission times the sensor’s sensitivity.

inline wavenumber_density_t pdf_wavenumber(const emitter::emitter_t *emitter, wavenumber_t k) const noexcept

Sampling density of wavenumber for given emitter.

Public Members

std::vector<std::unique_ptr<integrated_spectrum_distribution_t>> emitter_sensor_spectra

Spectrum products of emitters’ spectra times the sensor’s sensitivity spectrum. Useful for classifying and sampling emitters for a sensor.

discrete_distribution_t<radiant_flux_t> emitters_power_distribution

Distribution of powers contained in the above integrated spectra, useful for importance sampling emitters.

Public Static Functions

static emitter_sampling_data_t build_sampling_data(const wt_context_t &ctx, const sensor::sensor_t *sensor, const scene_t *scene)