Code Monkey home page Code Monkey logo

vdb-rs's Issues

compressed_count = 0 causes panic

Hi,

I tried to run the bevy example in the library. I'm using macOS 13.3 and ran the following command:

cargo run --example bevy ~/Downloads/TornadoLoopingVDB/TornadoLooping/TornadoVDB/tornado_0000.vdb

This produces the following error:

thread 'Compute Task Pool (5)' panicked at /Users/yorickdejong/vdb-rs/src/reader.rs:240:17:
assertion `left == right` failed
 left: 0
right: 30
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Encountered a panic in system `bevy::setup`!
Encountered a panic in system `bevy_app::main_schedule::Main::run_main`!

It seems that the compressed count is 0, instead of 30:

    fn read_compressed_data<T: Pod>(
       reader: &mut R,
       _archive: &ArchiveHeader,
       gd: &GridDescriptor,
       count: usize,
   ) -> Result<Vec<T>, ParseError> {
       Ok(if gd.compression.contains(Compression::BLOSC) {
           let num_compressed_bytes = reader.read_i64::<LittleEndian>()?;
           let compressed_count = num_compressed_bytes / std::mem::size_of::<T>() as i64;

           trace!("Reading blosc data, {} bytes", num_compressed_bytes);
           if num_compressed_bytes <= 0 {
               let mut data = vec![T::zeroed(); (-compressed_count) as usize];
               reader.read_exact(cast_slice_mut(&mut data))?;
               assert_eq!(-compressed_count as usize, count);
               data

The vdb file can be downloaded from this link (it's the tornado): https://jangafx.com/software/embergen/download/free-vdb-animations/

Allocation failure on parsing of BLOSC compressed VDB data

The uncompressed and zip code paths are correctly loading, the BLOSC code path results in what looks like wrong data loading / interpretation.

let num_compressed_bytes = reader.read_i64::<LittleEndian>()?;
[src\reader.rs:141] num_compressed_bytes = -1143914305352105984

Example assets:
Uncompressed: fire from https://www.openvdb.org/download/ โœ…
Zip: bunny_cloud from https://www.openvdb.org/download/ โœ…
BLOSC: Tornado Looping from https://jangafx.com/software/embergen/download/free-vdb-animations/ โŒ

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.