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