Scene View

class huira.swir8.SceneView
__init__(self: huira._huira.swir8.SceneView, scene: huira._huira.swir8.Scene, exposure_interval: huira._huira.Interval, camera_instance: huira._huira.swir8.InstanceHandle, observation_mode: huira._huira.ObservationMode = <ObservationMode.ABERRATED_STATE: 2>, num_temporal_samples: Optional[int] = None, motion_tolerance: float = 0.1) → None

A view of the scene over an exposure, from a camera. The observation mode says where each thing is seen: ABERRATED_STATE (the default), with light time and the aberration from the camera’s velocity, as a camera really sees it; GEOMETRIC_STATE, with light time alone; or TRUE_STATE, where it is at the instant. With num_temporal_samples None (the default), each thing in view is given as many temporal samples as its motion needs, to be drawn within motion_tolerance pixels of its path: one, a still frame, if it does not move in view. A number gives everything that many; 1 renders a still frame, as does turning the camera’s motion blur off (enable_motion_blur(False)), whatever the number.

duration(self: huira._huira.swir8.SceneView) → huira._huira.Second
evaluate_transmittance(self: huira._huira.swir8.SceneView, shadow_ray: huira._huira.swir8.Ray, t_far: float, initial_stack: huira::MediumStack<huira::SpectralBins<8ul, 900, 2500> >, sampler: huira::RandomSampler<float>, time: float = 0.5, alpha_mode: huira._huira.AlphaMode = <AlphaMode.STOCHASTIC: 0>) → huira._huira.swir8.SpectralBins

Evaluate transmittance along a shadow ray through participating media

get_end_time(self: huira._huira.swir8.SceneView) → huira._huira.Time
get_exposure_interval(self: huira._huira.swir8.SceneView) → huira._huira.Interval
get_start_time(self: huira._huira.swir8.SceneView) → huira._huira.Time
get_time(self: huira._huira.swir8.SceneView) → huira._huira.Time
has_motion_blur(self: huira._huira.swir8.SceneView) → bool

Whether anything rays can hit moves in view during the exposure, as sampled

intersect(self: huira._huira.swir8.SceneView, ray: huira._huira.swir8.Ray, time: float = 0.5, mask: int = 4294967295) → huira._huira.HitRecord

Trace a ray against the scene and return a HitRecord

intersect_batch(self: huira._huira.swir8.SceneView, rays: list[huira._huira.swir8.Ray], time: float = 0.5) → list[huira._huira.HitRecord]

Trace a batch of rays against the scene and return HitRecords

max_temporal_samples(self: huira._huira.swir8.SceneView) → int

The most temporal samples anything in the view was given

object_ids(self: huira._huira.swir8.SceneView, hit: huira._huira.HitRecord) → huira._huira.ObjectIds

The IDs of the geometry, model, instance and part a HitRecord landed on, as an ObjectIds: each NO_OBJECT_ID for a miss or a light

occupancy_bounds_complete(self: huira._huira.swir8.SceneView) → bool

False when the occupancy bounds are not usable for region culling

resolve_hit(self: huira._huira.swir8.SceneView, ray: huira._huira.swir8.Ray, hit: huira._huira.HitRecord) → huira._huira.swir8.Interaction

Resolve a HitRecord into a full Interaction

resolve_hits_batch(self: huira._huira.swir8.SceneView, rays: list[huira._huira.swir8.Ray], hits: list[huira._huira.HitRecord]) → list[huira._huira.swir8.Interaction]

Resolve batches of HitRecords into Interactions

tlas_is_empty(self: huira._huira.swir8.SceneView) → bool

True when the TLAS contains nothing that a ray could ever hit

unresolved_irradiance(self: huira._huira.swir8.SceneView, instance: huira._huira.swir8.InstanceHandle, time: huira._huira.Time) → huira._huira.swir8.SpectralBins

The irradiance an instance of an unresolved object gives the camera at a time, as this view resolved it