Viewability Testing in Computer-Generated Environments
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for determining the visibility of in-game advertisements in video games, such as ray tracing, are unreliable and computationally expensive, making it difficult to predict and measure the number of impressions accurately, which is crucial for advertising revenue models.
Innovation Solution
A system using a rendering engine and a viewability testing module that stores depth map data in a depth buffer to determine the visibility of objects from a virtual camera's perspective, leveraging graphics processing hardware for efficient and reliable occlusion detection compatible with rasterization-based rendering.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If ray tracing is used to determine occlusion of in-game advertisements, then occlusion detection can be performed, but the method is computationally expensive and unreliable for real-time rendering
Solution Approach 1:
The patent creates a depth buffer copy of the rendered scene and uses this copied depth information to test advertisement visibility. Instead of performing ray tracing against original scene geometry, the system copies depth values from the rendered frame buffer and uses these copies for occlusion testing, significantly reducing computational cost while maintaining reliability
Solution Approach 2:
The patent replaces the ray tracing mechanism with a depth buffer comparison mechanism. Rather than casting rays and calculating intersections with scene objects, the system substitutes this with a simpler depth value comparison against pre-rendered depth buffer data, achieving the same occlusion detection goal with much lower computational requirements
2Measurement precision
If ray tracing functionality is added to video game code for occlusion detection, then advert visibility can be measured, but significant modifications to game code are required
Solution Approach 1:
The patent makes the rendered scene itself serve the dual purpose of both visual output and occlusion testing data source. The rendering engine generates the scene normally, and the same rendered frame and its depth buffer are then used for advertisement visibility measurement, eliminating the need for separate ray tracing functionality or additional scene processing
Solution Approach 2:
The patent makes the depth buffer serve multiple functions: it is used both for the normal rendering pipeline to determine what is visible on screen, and simultaneously for advertisement occlusion testing. This multi-functionality eliminates the need for separate ray tracing code while achieving precise visibility measurement
3Productivity
If in-game advertising is implemented without reliable visibility measurement, then advertising revenue can be generated, but accurate impression tracking is not possible
Solution Approach 1:
The patent performs preliminary rendering of the game scene to generate depth buffer data before conducting advertisement visibility tests. By preparing the depth buffer in advance during the normal rendering process, the system enables accurate impression tracking without adding computational overhead during the advertising measurement phase
Solution Approach 2:
The patent implements a feedback mechanism where depth buffer information from the rendered scene is fed back into the visibility testing process. This feedback loop allows the system to accurately determine which portions of advertisements are visible by comparing ad positions against the feedback provided by the depth buffer, enabling precise impression tracking
Data Source
AI summary
A system configured to determine an extent to which an object in a computer-generated scene is visible from a virtual camera, including a rendering engine comprising a depth buffer and arranged to render the computer-generated scene, and a viewability testing module. The viewability testing module is configured to: generate a plurality of points distributed across a surface of the object; determine a depth map value for each point within a field of view of the virtual camera; determine whether each such point is visible from the perspective of the virtual camera based on a comparison between the determined depth map value for the point and a corresponding one or more of the depth map values stored in the depth buffer; and determine the extent to which the object is visible in dependence on which of the plurality of points are determined to be visible.


