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
sourceimpl 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
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more