2 个版本
0.1.1 | 2021年11月20日 |
---|---|
0.1.0 | 2021年4月5日 |
#973 在 图形 API
7KB
79 行
Crate ray_tracing_show_image
GitHub 页面 rabbid76.github.io/ray-tracing-with-rust
GitHub 仓库 Rabbid76/ray-tracing-with-rust
一个非常简单的光线追踪进度查看器
在窗口中显示光线追踪进度。窗口每秒更新一次。当按下 "F1" 键时,将调用一个回调函数,传入中间渲染结果。这可以用来保存渲染。返回的图像为 RGB 格式,并存储在一个紧密打包的 Vec<u8>
对象中。
示例
use ray_tracing_core::test::TestSceneSimple;
use ray_tracing_utility::view;
use ray_tracing_utility::view::{Viewer, ViewModel};
use std::error::Error;
use std::sync::Arc;
#[show_image::main]
fn main() -> Result<(), Box<dyn Error>> {
let view_model = ViewModel {
cx: 400,
cy: 200,
repetitions_threads: 2,
repetitions: 5,
samples: 2,
};
let window = ray_tracing_show_image::ShowImageWindow::new(view_model.cx, view_model.cy);
let mut viewer = Viewer::new(
view_model,
Arc::new(TestSceneSimple::new().scene),
window.clone(),
Box::new(|image_number, cx, cy, pixel_data| {
// Save the intermediate rendering here ...
}),
)?;
match viewer.run() {
Ok((cx, cy, pixel_data)) => {
// Save the final rendering here ...
}
_ => (),
}
Ok(())
}
依赖项
~26–40MB
~532K SLoC