Hit Testing Visual Objects Using Clip Space Bounding Boxes
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Hit testing calculations for large numbers of visual objects consume significant CPU resources, leading to performance issues such as reduced response time in user interfaces.
Innovation Solution
The method involves performing bounding box calculations in the clip space to reduce the number of matrix transformations required for hit testing, where only visual objects with a hit on their bounding box undergo further CPU processing, offloading unnecessary calculations and improving CPU efficiency by parallelizing rendering with the GPU.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If hit testing calculations are performed for all visual objects using CPU, then accurate hit testing is achieved, but CPU resources are excessively consumed
Solution Approach 1:
The hit testing process is segmented into two stages: a fast culling stage using GPU-accelerated bounding box calculations in clip space, and a detailed hit testing stage using CPU for objects that pass the cull. This segmentation allows the system to quickly eliminate most objects without full hit testing, reducing CPU workload while maintaining accuracy for relevant objects.
Solution Approach 2:
Bounding box calculations in clip space serve as an intermediary filtering mechanism between the rendering pipeline and detailed hit testing. This intermediary layer quickly identifies potentially intersecting objects without requiring full matrix transformations, reducing the number of objects that need detailed CPU processing.
2Measurement precision
If full matrix transformations are performed for all visual objects, then accurate hit testing is achieved, but processing time increases
Solution Approach 1:
Bounding box calculations are performed preliminarily in clip space before detailed hit testing. This preliminary action uses simplified geometry and coordinate space to quickly identify candidate objects, avoiding the time-consuming full matrix transformations for all objects while ensuring accurate hit testing only for relevant candidates.
Solution Approach 2:
The approach changes the dimensionality and coordinate space by performing initial calculations in clip space (a normalized coordinate system) rather than in world space or screen space. This dimensional transformation allows for faster bounding box calculations that can be performed in parallel on the GPU, reducing overall processing time.
3Measurement precision
If CPU performs all hit testing calculations, then accurate results are obtained, but parallelization with GPU is reduced
Solution Approach 1:
The processing workload is segmented between GPU and CPU based on computational requirements. The GPU performs parallel bounding box calculations in clip space for all objects, while the CPU performs detailed hit testing only for objects that pass the GPU cull. This segmentation enables effective parallelization while maintaining accuracy.
Solution Approach 2:
The GPU-based bounding box culling in clip space acts as an intermediary that prepares data for CPU processing. This intermediary step enables the CPU to focus only on relevant objects, improving overall processing efficiency through effective parallelization while maintaining accurate hit testing results.
Data Source
AI summary
Various embodiments for hit testing of visual objects are described herein. Data of visual objects is generated in a two-dimensional clip space. The data of visual objects includes two-dimensional projections of the visual objects. Cursor coordinates are transformed into the clip space and bounding box calculations are performed using the transformed cursor coordinates and the generated data. Hit testing is performed when there is a hit on a bounding box of at least one of the visual objects in the clip space. The hit testing is performed in a three-dimensional space. A result is then presented on a user interface based on the hit testing.


