47 lines
1.5 KiB
Rust
47 lines
1.5 KiB
Rust
use image_rs::Pixel;
|
|
|
|
use crate::camera::Camera;
|
|
use crate::core::film::Film;
|
|
use crate::core::filter::Filter;
|
|
use crate::core::sampler::Sampler;
|
|
use crate::core::scene::BasicScene;
|
|
use crate::lights::Light;
|
|
use crate::lights::LightSampler;
|
|
use crate::{
|
|
EscapedRayQueue, GetBSSRDFAndProbeRayQueue, HitAreaLightQueue, MaterialEvalQueue,
|
|
MediumSampleQueue, MediumScatterQueue, PixelSampleStateStorage, RayQueue, ShadowRayQueue,
|
|
SubsurfaceScatterQueue,
|
|
};
|
|
use std::sync::Arc;
|
|
|
|
pub struct WavefrontPathIntegrator {
|
|
pub film: Film,
|
|
pub filter: Filter,
|
|
pub sampler: Sampler,
|
|
pub camera: Arc<Camera>,
|
|
pub light_sampler: LightSampler,
|
|
pub infinite_lights: Option<Vec<Arc<Light>>>,
|
|
pub max_depth: i32,
|
|
pub samples_per_pixel: i32,
|
|
pub regularize: bool,
|
|
pub scanlines_per_pixel: i32,
|
|
pub max_queue_size: i32,
|
|
pub pixel_sample_state: PixelSampleStateStorage,
|
|
pub ray_queue: [RayQueue; 2],
|
|
pub hit_area_light_queue: HitAreaLightQueue,
|
|
pub shadow_ray_queue: ShadowRayQueue,
|
|
pub escaped_ray_queue: Option<EscapedRayQueue>,
|
|
pub basic_material_queue: Option<MaterialEvalQueue>,
|
|
pub universal_material_queue: Option<MaterialEvalQueue>,
|
|
pub medium_sample_queue: Option<MediumSampleQueue>,
|
|
pub medium_scatter_queue: Option<MediumScatterQueue>,
|
|
pub bssrf_queue: Option<GetBSSRDFAndProbeRayQueue>,
|
|
pub subsurface_queue: Option<SubsurfaceScatterQueue>,
|
|
}
|
|
|
|
#[cfg(feature = "use_gpu")]
|
|
impl WavefrontPathIntegrator {
|
|
pub fn new(scene: BasicScene) -> Self {
|
|
todo!()
|
|
}
|
|
}
|