Frustum Culling Algorithm Using Normal Vector Separation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional frustum culling algorithms for axis-aligned bounded boxes (AABB) are inefficient due to the need for access to an external look-up table to determine vertex coordinates, leading to processor-to-memory bottlenecks and reduced performance.

Innovation Solution

The method involves separating the coordinates of each frustum plane's normal vector into positive and negative components, enabling implicit selection of the vertex coordinates without a look-up table, allowing for parallel computation and culling of AABBs against a frustum view.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional frustum culling algorithms use external look-up tables to determine vertex coordinates, then the algorithm can identify objects outside the frustum, but the performance is reduced due to processor-to-memory access bottlenecks

Engineering Contradiction:
Improveculling accuracyVSAvoidrendering performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts the vertex coordinate determination logic from external look-up tables and integrates it directly into the processor's execution units. By embedding the coordinate selection logic within the processing pipeline, the system eliminates the need for external memory access while maintaining culling accuracy.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent performs preliminary separation of normal vector coordinates into positive and negative components before the actual culling operation. This pre-processing step enables the execution units to directly select vertex coordinates through simple bitwise operations rather than requiring external look-up table access during the critical rendering path.

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If the algorithm accesses external look-up tables for vertex coordinates, then it can determine AABB position relative to frustum planes, but the processor-to-memory access reduces efficiency

Engineering Contradiction:
ImproveAABB-frustum intersection detectionVSAvoidmemory access time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent introduces an intermediary data structure that stores pre-separated normal vector components (positive and negative coordinates) within the processor memory hierarchy. This intermediary representation allows the system to derive vertex coordinates through immediate bitwise operations rather than requiring time-consuming external look-up table accesses, thus maintaining measurement precision while reducing time loss.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of operation

If conventional methods use look-up tables to determine N-vertex or P-vertex coordinates, then the frustum culling can be performed, but the device complexity increases due to external memory requirements

Engineering Contradiction:
Improveculling algorithm implementationVSAvoidmemory subsystem complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent merges the normal vector storage with the vertex coordinate determination logic by separating and storing only the essential normal vector components (positive and negative coordinates) within the processor. This consolidation eliminates the need for separate external look-up tables, reducing memory subsystem complexity while maintaining ease of operation through the unified data structure.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS7414624B2Apparatus and method for a frustum culling algorithm suitable for hardware implementation
Publication Date: 2008.08.19 INTEL CORP
  • US7414624B2 patent drawing
  • US7414624B2 patent drawing
  • US7414624B2 patent drawing

AI summary

A method and apparatus for a frustum culling algorithm suitable for hardware implementation. In one embodiment, the method includes the separation of coordinates of a normal vector of each frustum plane of a frustum view into positive normal coordinates and negative normal coordinates. In one embodiment, the separation of the coordinates of each normal vector of the frustum planes enables implicit selection of the coordinates of a negative vertex (N-vertex) of an axis-aligned bounded box (AABB). Once implicitly selected, it is determined whether the N-vertex of the AABB is outside at least one frustum plane. In one embodiment, a determination that the N-vertex of the AABB is outside at least one of the frustum planes provides a trivial reject of objects enclosed by the AABB that are therefore is excluded from the rendering process. Other embodiments are described and claimed.