Struct rs_pbrt::lights::distant::DistantLight
source · pub struct DistantLight {
pub l: Spectrum,
pub w_light: Vector3f,
pub world_center: RwLock<Point3f>,
pub world_radius: RwLock<Float>,
pub flags: u8,
pub n_samples: i32,
pub medium_interface: MediumInterface,
pub light_to_world: Transform,
pub world_to_light: Transform,
}
Fields§
§l: Spectrum
§w_light: Vector3f
§world_center: RwLock<Point3f>
§world_radius: RwLock<Float>
§flags: u8
§n_samples: i32
§medium_interface: MediumInterface
§light_to_world: Transform
§world_to_light: Transform
Implementations§
source§impl DistantLight
impl DistantLight
pub fn new(light_to_world: &Transform, l: &Spectrum, w_light: &Vector3f) -> Self
pub fn sample_li<'a, 'b>( &'b self, iref: &'a InteractionCommon, light_intr: &'b mut InteractionCommon, _u: Point2f, wi: &mut Vector3f, pdf: &mut Float, vis: &mut VisibilityTester<'a, 'b> ) -> Spectrum
pub fn power(&self) -> Spectrum
sourcepub fn preprocess(&self, scene: &Scene)
pub fn preprocess(&self, scene: &Scene)
Some of the DistanceLight methods need to know the bounds of the scene. Because lights are created before the scene geometry, these bounds aren’t available when the DistanceLight constructor runs. Therefore, DistanceLight implements the optional preprocess() method to get the bound. This method is called at the end of the Scene constructor.
sourcepub fn le(&self, _ray: &Ray) -> Spectrum
pub fn le(&self, _ray: &Ray) -> Spectrum
Default implementation returns no emitted radiance for a ray that escapes the scene bounds.
pub fn pdf_li(&self, _iref: &dyn Interaction, _wi: &Vector3f) -> Float
pub fn sample_le( &self, u1: Point2f, _u2: Point2f, time: Float, ray: &mut Ray, n_light: &mut Normal3f, pdf_pos: &mut Float, pdf_dir: &mut Float ) -> Spectrum
pub fn pdf_le( &self, _ray: &Ray, _n_light: &Normal3f, pdf_pos: &mut Float, pdf_dir: &mut Float )
pub fn get_flags(&self) -> u8
pub fn get_n_samples(&self) -> i32
Auto Trait Implementations§
impl RefUnwindSafe for DistantLight
impl Send for DistantLight
impl Sync for DistantLight
impl Unpin for DistantLight
impl UnwindSafe for DistantLight
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more