info
This commit is contained in:
parent
ccf290f070
commit
cc792cfb1b
|
@ -10,7 +10,8 @@ use openexr::core::frame_buffer::{FrameBuffer, Slice};
|
||||||
use openexr::core::header::Header;
|
use openexr::core::header::Header;
|
||||||
use openexr::core::output_file::OutputFile;
|
use openexr::core::output_file::OutputFile;
|
||||||
use openexr::core::{Compression, PixelType};
|
use openexr::core::{Compression, PixelType};
|
||||||
use pointcache::{MDDFrame, MDDSeekableFile, Point, PointCache};
|
use pointcache::{AnimationInfo, MDDFrame, MDDSeekableFile, Point, PointCache};
|
||||||
|
use std::io::Write;
|
||||||
use std::{error::Error, fs::File};
|
use std::{error::Error, fs::File};
|
||||||
|
|
||||||
pub const MAX_IMAGE_DIM: usize = 16384;
|
pub const MAX_IMAGE_DIM: usize = 16384;
|
||||||
|
@ -106,6 +107,17 @@ fn write_point_image(
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Not used because blender always starts frame frame zero so this info is useless
|
||||||
|
fn write_animation_info(filename: &str, info: AnimationInfo) -> Result<(), Box<dyn Error>> {
|
||||||
|
let data = format!(
|
||||||
|
"{{ \"total_frames\": {}, \"total_points\": {}, \"start_frame\": {}, \"end_frame\": {}, \"fps\": {} }}\n",
|
||||||
|
info.total_frames, info.total_points, info.start_frame, info.end_frame, info.fps
|
||||||
|
);
|
||||||
|
let mut file = File::create(filename)?;
|
||||||
|
file.write_all(data.as_bytes())?;
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone, Copy)]
|
#[derive(Debug, Clone, Copy)]
|
||||||
enum PointState {
|
enum PointState {
|
||||||
Unseen,
|
Unseen,
|
||||||
|
@ -164,12 +176,7 @@ fn main() {
|
||||||
|
|
||||||
let mask: Vec<f32> = mask_last.iter().map(PointState::mask_value).collect();
|
let mask: Vec<f32> = mask_last.iter().map(PointState::mask_value).collect();
|
||||||
|
|
||||||
write_mask_image(
|
write_mask_image(&(basename.clone() + "_mask.exr"), &mask, info.total_points).unwrap();
|
||||||
&(basename.clone() + "_mask.exr"),
|
|
||||||
&mask,
|
|
||||||
info.total_points,
|
|
||||||
)
|
|
||||||
.unwrap();
|
|
||||||
|
|
||||||
let mut pixels: Vec<Point> = Vec::with_capacity(total_varying * (info.total_frames));
|
let mut pixels: Vec<Point> = Vec::with_capacity(total_varying * (info.total_frames));
|
||||||
|
|
||||||
|
@ -205,7 +212,7 @@ fn main() {
|
||||||
}
|
}
|
||||||
|
|
||||||
write_point_image(
|
write_point_image(
|
||||||
&(basename + ".exr"),
|
&(basename.clone() + ".exr"),
|
||||||
&pixels,
|
&pixels,
|
||||||
total_varying,
|
total_varying,
|
||||||
info.total_frames,
|
info.total_frames,
|
||||||
|
|
Loading…
Reference in New Issue