Skip to main content

Crate gpu_volume_render

Crate gpu_volume_render 

Source
Expand description

GPU-accelerated volume rendering with WGPU

This crate provides GPU-accelerated and CPU-fallback implementations for:

  • DVR (Direct Volume Rendering) with ray casting
  • MIP (Maximum Intensity Projection) rendering
  • MPR (Multi-Planar Reconstruction) slice extraction
  • Marching Cubes isosurface extraction

§Feature Flags

  • gpu (default): Enable GPU compute via wgpu

§Architecture

The crate uses an adaptive backend selection system that automatically chooses between GPU and CPU execution based on hardware capabilities, volume size, and runtime performance sampling.

Re-exports§

pub use backend::BackendSelectionReason;
pub use backend::BackendSelector;
pub use backend::BackendStatistics;
pub use backend::ComputeBackend;
pub use backend::GpuCapabilityInfo;
pub use colormap::Colormap;
pub use cpu_executor::CpuMprExecutor;
pub use marching_cubes::MarchingCubes;
pub use marching_cubes::Mesh;
pub use marching_cubes::Triangle;
pub use marching_cubes::Vertex;
pub use mesh::export_to_ply;
pub use mesh::fill_holes;
pub use mesh::remove_islands;
pub use mesh::smooth_mesh;
pub use mesh::HoleFillingConfig;
pub use mesh::HoleFillingMethod;
pub use mesh::HoleFillingResult;
pub use mesh::IslandRemovalConfig;
pub use mesh::IslandRemovalResult;
pub use mesh::ManifoldValidation;
pub use mesh::MeshProcessingSettings;
pub use mesh::PlyExportOptions;
pub use mesh::PlyFormat;
pub use mesh::SmoothingAlgorithm;
pub use mesh::SmoothingConfig;
pub use mesh::SmoothingResult;
pub use mpr_ops::ExtractParams;
pub use mpr_ops::MprError;
pub use mpr_ops::MprExecutor;
pub use mpr_ops::MprOperation;
pub use mpr_ops::MprResult;
pub use mpr_ops::MprTiming;
pub use mpr_ops::WindowLevelParams;
pub use window_level::ct_preset;
pub use window_level::WindowLevelProcessor;
pub use gpu_executor::GpuMemoryStrategy;
pub use gpu_executor::GpuMprExecutor;
pub use gpu_executor::GpuVolume;
pub use gpu_executor::MAX_GPU_BUFFER_SIZE;
pub use gpu_executor::SAFE_GPU_BUFFER_SIZE;
pub use gpu_marching_cubes::GpuMarchingCubes;
pub use volume_render::Camera;
pub use volume_render::ClipBoxConfig;
pub use volume_render::ClipPlaneConfig;
pub use volume_render::DvrOptions;
pub use volume_render::MaskConfig;
pub use volume_render::RenderMode;
pub use volume_render::RenderResult;
pub use volume_render::SlicePlaneConfig;
pub use volume_render::SculptUniforms;
pub use volume_render::TransferFunction;
pub use volume_render::TransferFunctionEntry;
pub use volume_render::TransferFunctionPreset;
pub use volume_render::VolumeRenderer;

Modules§

backend
Compute Backend Selection
colormap
Colormap / Pseudo-color mapping
config
Configuration module for GPU volume rendering
cpu_executor
CPU MPR Executor
gpu_executor
GPU MPR Executor
gpu_marching_cubes
GPU-Accelerated Marching Cubes
marching_cubes
Marching Cubes Algorithm for Isosurface Extraction
mesh
Mesh Processing Module
mpr_ops
MPR Operations Trait
volume_render
3D Volume Rendering Module
window_level
Window/Level Processing with LUT optimization