A high-performance point cloud visualization application using CUDA acceleration and real-time rasterization.
This project implements a point cloud rasterization pipeline that transforms 3D point clouds into 2D images using GPU acceleration. The application supports interactive navigation and real-time visualization of large point cloud datasets.
- Multi-format Point Cloud Loading: Support for PLY, PCD, and LAS file formats
- GPU-Accelerated Rasterization: CUDA-based point cloud rendering pipeline
- Real-time Visualization: Interactive 2D image display with configurable resolution
- Camera Control: Two navigation modes (Model and Orbit) with mouse interaction
- Transform pipeline: World → Camera → Image coordinates
- Frustum culling for efficient rendering
- Depth testing with atomic operations
- Point rejection using cone aperture
- Color assignment
- Real-time Rendering of Massive Unstructured Raw Point Clouds using Screen-space Operators
- Rendering Point Clouds with Compute Shaders and Vertex Order Optimization
- C++17 or higher
- CUDA Toolkit
- CMake 3.18+
- Eigen 3.4
- PDAL
- ImGui
- OpenGL
- GLFW
- Linux
- Windows (not yet tested)
# Clone the repository
git clone <repository-url>
cd pcd_rasterizer
# Create build directory
mkdir build && cd build
# Configure with CMake
cmake ..
# Build the project
make -j$(nproc)# Run the application
./build/pcd_rasterizer [point_cloud_file]Mouse Controls:
- Left Click + Drag: Orbit around target (yaw and pitch control)
- Right Click + Drag: Pan target point (move orbit center)
- Scroll Wheel: Zoom in/out (distance from target)
Mouse Controls:
- Left Click + Drag: Look around (pitch/yaw rotation)
- Right Click + Drag: Strafe left/right, up/down
- Scroll Wheel: move forward/backward
- improve point cloud loading time