Dual GPU VR Rendering via Primitive Atlas Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current 3D graphics rendering technologies require significant memory and processing power, making it inefficient to render stereoscopic images for virtual reality (VR) and augmented reality applications, especially when dealing with high resolutions and six degrees of freedom movements.
Innovation Solution
A system where a server device determines visible graphics primitives, generates a primitive atlas, shades them, and sends it to a client device like a VR headset, which then renders the stereoscopic image pair, optimizing processing by only rendering what is necessary and allowing the client to upsample images without aliasing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Manufacturing precision
If a single powerful GPU renders all graphics processing for VR, then rendering quality is improved, but processing efficiency and scalability deteriorate
Solution Approach 1:
The rendering process is segmented into two distinct stages performed by different GPUs: (1) The first GPU performs preprocessing tasks including determining visible graphics primitives, generating the primitive atlas, and shading visible primitives. (2) The second GPU performs final rendering tasks including receiving the shaded primitive atlas, warping image data to form stereoscopic image pairs, and generating the final 3D display output. This segmentation allows each GPU to specialize in specific tasks, improving overall processing efficiency while maintaining high rendering quality.
2Manufacturing precision
If the server device processes all rendering tasks, then image quality is improved, but bandwidth consumption increases
Solution Approach 1:
The invention extracts and transmits only the essential intermediate rendering data (the shaded primitive atlas containing visible graphics primitives) from the server device to the client device, rather than transmitting complete rendered images. This allows the client device's second GPU to perform the final rendering and warping operations locally, significantly reducing bandwidth consumption while preserving the ability to generate high-quality stereoscopic image pairs with proper depth perception.
3Adaptability or versatility
If the client device performs all rendering, then scalability is improved, but processing power requirements increase
Solution Approach 1:
The server device performs preliminary rendering actions by determining visible graphics primitives, generating the primitive atlas, and shading visible primitives before transmitting the data to the client device. This preliminary processing reduces the computational burden on the client device's second GPU, which only needs to perform the final warping and stereoscopic image pair generation. This distribution of computational tasks enables VR headsets with limited processing power to achieve high-quality rendering.
4Manufacturing precision
If high resolution rendering is performed, then image quality is improved, but processing power and memory requirements increase
Solution Approach 1:
The system performs partial rendering by generating a primitive atlas that contains only the visible graphics primitives from the complete scene, rather than rendering all objects. This partial action approach reduces the processing power and memory requirements compared to full scene rendering, while still providing sufficient detail for high-quality VR display when combined with the warping and stereoscopic image pair generation at the client device.
Data Source
AI summary
An example system includes a first computing device comprising a first graphics processing unit (GPU) implemented in circuitry, and a second computing device comprising a second GPU implemented in circuitry. The first GPU is configured to determine graphics primitives of a computer graphics scene that are visible from a camera viewpoint, generate a primitive atlas that includes data representing the graphics primitives that are visible from the camera viewpoint, and shade the visible graphics primitives in the primitive atlas to produce a shaded primitive atlas. The second GPU is configured to render an image using the shaded primitive atlas.


