VR Point Cloud Rendering via CPU-GPU Occlusion Culling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current virtual reality systems face a tradeoff between frame rate and point cloud resolution when rendering large point cloud volumes, often requiring a reduction in point density to maintain a desired frame rate, which compromises the viewing experience.

Innovation Solution

A virtual reality system that uses a CPU-based rendering engine to select a subset of points within the current field-of-view using occlusion culling, transferring these points to a GPU for rendering, allowing the GPU to operate at a higher frame rate without reducing image resolution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Manufacturing precision

If the number of points displayed by the VR viewer is increased to maintain high point cloud resolution, then the manufacturing precision of the point cloud representation is improved, but the frame per second rate decreases

Engineering Contradiction:
Improvepoint cloud resolutionVSAvoidframe per second rate
Core Design Contradiction:
Manufacturing precisionVSProductivity

Solution Approach 1:

The system divides the point cloud rendering task into two segments: the CPU performs occlusion culling to select visible points from the full point cloud, and the GPU renders only those selected points. This segmentation allows each processor to operate optimally - the CPU filters out hidden points, and the GPU renders visible points at high frame rates without processing unnecessary data.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Instead of rendering all points in the point cloud, the system performs partial action by rendering only the subset of points that are visible from the current viewpoint. The CPU determines which points are occluded and excludes them from rendering, allowing the GPU to process fewer points and achieve higher frame rates while maintaining visual quality.

Inventive Principle:
Principle #16Partial or excessive action

2Manufacturing precision

If all points in the point cloud are rendered to maintain high resolution, then the manufacturing precision is improved, but the device complexity and processing load increase

Engineering Contradiction:
Improvepoint cloud resolutionVSAvoidprocessing complexity
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The CPU performs preliminary action by conducting occlusion culling before the GPU rendering process. It determines in advance which points are visible and which are occluded, preparing a filtered subset of points for GPU processing. This preliminary filtering reduces the complexity of the subsequent rendering operation.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The CPU acts as an intermediary between the full point cloud data and the GPU rendering process. It processes the complete point cloud to determine visibility, then passes only the necessary visible points to the GPU. This intermediary step simplifies the GPU's workload and optimizes the overall rendering pipeline.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11995762B2Virtual reality system for viewing point cloud volumes while maintaining a high point cloud graphical resolution
Publication Date: 2024.05.28 FARO TECHNOLOGIES INC
  • US11995762B2 patent drawing
  • US11995762B2 patent drawing
  • US11995762B2 patent drawing

AI summary

A virtual reality (VR) system that includes a three-dimensional (3D) point cloud having a plurality of points, a VR viewer having a current position, a graphics processing unit (GPU), and a central processing unit (CPU). The CPU determines a field-of-view (FOV) based at least in part on the current position of the VR viewer, selects, using occlusion culling, a subset of the points based at least in part on the FOV, and provides them to the GPU. The GPU receives the subset of the plurality of points from the CPU and renders an image for display on the VR viewer based at least in part on the received subset of the plurality of points. The selecting a subset of the plurality of points is at a first frame per second (FPS) rate and the rendering is at a second FPS rate that is faster than the first FPS rate.