Dual-Buffer Image Rendering to Reduce GPU I/O Overhead
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The existing image rendering process using rasterization combined with ray tracing generates significant input/output (I/O) overheads due to the transmission of G-buffers, leading to high power consumption.
Innovation Solution
The method involves dividing rendering information into reflecting and reflected objects, performing ray tracing on reflecting objects first and storing reflections in a separate frame buffer, followed by rasterization and fusion of images in an onscreen buffer to reduce I/O overheads.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the GPU performs rasterization and stores the complete G-buffer in a first frame buffer, then the geometric information and object images are preserved for subsequent ray tracing, but significant I/O overheads are generated during transmission causing high power consumption
Solution Approach 1:
The patent extracts only the necessary geometric information (bounding volumes, intersection points) from the complete G-buffer for ray tracing operations, rather than transmitting the entire G-buffer. This extraction principle reduces the data volume significantly while maintaining the reliability needed for accurate reflection rendering.
Solution Approach 2:
The patent segments the rendering process into distinct phases: rasterization phase where only essential geometric data is extracted and stored, and ray tracing phase where reflections are computed. This segmentation allows the system to transmit only the minimal necessary information between phases, reducing I/O overhead and power consumption while preserving geometric accuracy.
2Productivity
If the GPU transmits the complete G-buffer between rendering passes, then all object information is available for ray tracing, but the I/O overhead becomes excessive and slows down rendering
Solution Approach 1:
The patent extracts only the critical geometric elements (bounding volumes, ray intersection points) needed for ray tracing from the full G-buffer, eliminating the transmission of redundant pixel and texture data. This extraction dramatically reduces transmission time while maintaining rendering productivity by preserving all necessary geometric information.
Solution Approach 2:
The patent performs preliminary extraction of geometric information during the rasterization phase, preparing only the essential data structures (bounding volumes, intersection points) before ray tracing begins. This preliminary action ensures that when ray tracing starts, all necessary geometric information is already available in an optimized format, eliminating the need for time-consuming data transmission during the rendering pipeline.
3Measurement precision
If the GPU performs ray tracing on the complete G-buffer, then accurate reflections are obtained, but the computational complexity and power consumption increase significantly
Solution Approach 1:
The patent extracts only the essential geometric information (bounding volumes, intersection points, normal vectors) from the complete G-buffer that is necessary for accurate ray tracing. By taking out only these critical elements rather than processing the entire G-buffer, the system maintains reflection accuracy while dramatically reducing GPU computational load and power consumption.
Solution Approach 2:
The patent applies partial action by performing ray tracing only on the extracted geometric elements that are actually visible and relevant to the current view, rather than processing the complete G-buffer. This partial processing approach maintains measurement precision for reflections while reducing the excessive computational action that would otherwise be required.
Data Source
AI summary
An image rendering method and a related device thereof are disclosed. The method includes: performing ray tracing based on rendering information of a reflecting object, and storing an obtained image of a reflection in the reflecting object in a first frame buffer, where the first frame buffer is used for storing an image that does not need to be displayed temporarily; performing rasterization separately based on the rendering information of the reflecting object and rendering information of a reflected object, and storing an obtained image of the reflecting object and an obtained image of the reflected object in a second frame buffer, where the second frame buffer is used for storing an image to be displayed; and obtaining, from the first frame buffer, the image of the reflection in the reflecting object, and storing the image of the reflection in the reflecting object in the second frame buffer.


