mosure / bevy_gaussian_splatting

bevy gaussian splatting render pipeline plugin
https://mosure.github.io/bevy_gaussian_splatting?gaussian_count=1000
MIT License
140 stars 9 forks source link

consider switching to fast (or support multiple options), default is a bit slow #6

Closed github-actions[bot] closed 11 months ago

github-actions[bot] commented 1 year ago

https://api.github.com/mosure/bevy_gaussian_splatting/blob/50685245da00f48ce0d49fe9b05fab65cd2fb149/tools/ply_to_gcloud.rs#L35


use bincode2::serialize_into;
use flate2::{
    Compression,
    write::GzEncoder,
};

use bevy_gaussian_splatting::{
    GaussianCloud,
    ply::parse_ply,
};

fn main() {
    let filename = std::env::args().nth(1).expect("no filename given");

    println!("converting {}", filename);

    // filepath to BufRead
    let file = std::fs::File::open(&filename).expect("failed to open file");
    let mut reader = std::io::BufReader::new(file);

    let cloud = GaussianCloud(parse_ply(&mut reader).expect("failed to parse ply file"));

    // write cloud to .gcloud file (remove .ply)
    let base_filename = filename.split('.').next().expect("no extension").to_string();
    let gcloud_filename = base_filename + ".gcloud";
    // let gcloud_file = std::fs::File::create(&gcloud_filename).expect("failed to create file");
    // let mut writer = std::io::BufWriter::new(gcloud_file);

    // serialize_into(&mut writer, &cloud).expect("failed to encode cloud");

    // write gloud.gz
    let gz_file = std::fs::File::create(&gcloud_filename).expect("failed to create file");
    let mut gz_writer = std::io::BufWriter::new(gz_file);
    let mut gz_encoder = GzEncoder::new(&mut gz_writer, Compression::default());  // TODO: consider switching to fast (or support multiple options), default is a bit slow
    serialize_into(&mut gz_encoder, &cloud).expect("failed to encode cloud");
}
github-actions[bot] commented 11 months ago

Closed in eedd27e0f32bdf33f324238284c915dc6e1574d2