BVH Geometry Compression with Span Allocation for Ray Tracing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional ray tracing techniques face performance overhead due to the need for multiple passes in compressing and rebuilding Bounding Volume Hierarchies (BVHs) for dynamic scenes, especially when using parallelized compression algorithms.
Innovation Solution
The approach involves dividing elements into spans, allocating memory ranges based on an assumed compression ratio, and adjusting span boundaries to ensure compliance with placement constraints, allowing for single-pass compression and storage of compressed data while minimizing memory gaps and padding blocks.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If conventional parallelized compression algorithms are used with multiple passes, then compression can be performed in parallel by worker threads, but compression time and processing overhead increase significantly
Solution Approach 1:
The patent applies preliminary action by pre-allocating memory ranges to each worker thread before compression begins. This allows worker threads to immediately write compressed data to their assigned memory ranges without waiting for other threads to complete, eliminating the need for multiple passes and reducing compression time while maintaining parallel processing capability
Solution Approach 2:
The patent segments the compression task by dividing the input data into spans and assigning each span to a specific worker thread with a dedicated memory range. This segmentation enables independent parallel compression of each span without requiring coordination between threads, thus improving productivity while avoiding the time overhead of conventional multi-pass approaches
2Reliability
If memory is allocated based on worst-case compression ratio, then all compressed data can be stored without overflow, but memory usage increases due to padding blocks and gaps
Solution Approach 1:
The patent applies local quality by allocating memory ranges to each worker thread based on local characteristics of the data span being compressed. Instead of uniformly allocating worst-case memory to all threads, each thread receives memory proportional to its actual compression needs, reducing overall memory usage while maintaining reliability through localized adaptive allocation
Solution Approach 2:
The patent changes the memory allocation parameter from a static worst-case ratio applied uniformly to all data to a dynamic allocation based on actual span characteristics and observed compression ratios. This allows memory usage to adapt to actual data properties, reducing padding and gaps while ensuring sufficient space is allocated for each compressed span
3Stability of the object's composition
If span boundaries are adjusted to ensure placement constraints compliance, then related elements remain together in compressed output, but compression complexity increases
Solution Approach 1:
The patent applies preliminary action by pre-adjusting span boundaries before compression begins to ensure they align with placement constraints. By establishing correct spans upfront, the compression algorithm can directly process each span independently without requiring complex post-compression reorganization or coordination, thus maintaining data structure integrity while avoiding increased complexity
Data Source
AI summary
In examples, a list of elements may be divided into spans and each span may be allocated a respective memory range for output based on a worst-case compression ratio of a compression algorithm that will be used to compress the span. Worker threads may output compressed versions of the spans to the memory ranges. To ensure placement constraints of a data structure will be satisfied, boundaries of the spans may be adjusted prior to compression. The size allocated to a span (e.g., each span) may be increased (or decreasing) to avoid padding blocks while allowing for the span's compressed data to use a block allocated to an adjacent span. Further aspects of the disclosure provide for compaction of the portions of compressed data in memory in order to free up space which may have been allocated to account for the memory gaps which may result from variable compression ratios.


