Graphics controller and method for effect-based change detection for cloud on-surface cache systems
The graphics controller addresses inefficiencies in on-surface cache systems by retracing and comparing ray data across frames to detect scene changes, improving rendering efficiency and reducing artefacts in real-time graphics applications.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-09-13
- Publication Date
- 2026-03-19
AI Technical Summary
Conventional on-surface cache systems face inefficiencies in detecting changes in rendered scenes, leading to visual artefacts like ghosting and lag, and are computationally intensive, often failing to detect subtle changes accurately.
A graphics controller that retraces previous ray sets across frames, compares previously computed ray data with retraced data, and generates update signals for the on-surface cache when differences are detected, focusing updates on areas with changes to minimize unnecessary processing.
Enhances real-time graphics rendering by accurately identifying scene changes, reducing computational overhead, and maintaining visual accuracy and performance in applications like video games and virtual reality.
Smart Images

Figure EP2024075605_19032026_PF_FP_ABST
Abstract
Description
[0001] GRAPHICS CONTROLLER AND METHOD FOR EFFECT-BASED CHANGE DETECTION FOR CLOUD ON-
[0002] SURFACE CACHE SYSTEMS
[0003] TECHNICAL FIELD
[0004] The present disclosure relates generally to the field of data management and more specifically, to a graphics controller and a method for the graphics controller for effect-based change detection for cloud on-surface cache systems.
[0005] BACKGROUND
[0006] Typically, graphics rendering is a crucial process in modem computing systems that is used in various applications, such as video games, simulations, virtual reality, and the like. Texturing is a process that is used for mapping two-dimensional images onto three-dimensional objects that are typically represented by triangles and used to store various types of data, including normals, material parameters, ambient occlusion, and the like, which contribute to shading. Furthermore, the mapping is based on UV coordinates, representing texture-space coordinates for each vertex of the triangles in order to map pixels on the texture as normalized values between 'O' and T, independent of the resolution of the texture. Moreover, during texture sampling, various filtering approaches are used, such as nearest-neighbour, bilinear, trilinear, anisotropic filtering, mipmapping, and the like, to avoid artefacts. Moreover, on-surface cache (OSC) systems are used to store parameters for multiple effects that are stored in a texture space cache and allow retrieval of previously computed ray data, which can be reused to save computational resources.
[0007] Existing OSC systems use various methods for caching and retrieving data to improve performance. Furthermore, the conventional OSC systems store previously computed data to expedite rendering processes, which enables the use of computationally intensive effects in real-time rendering systems, since this allows a form of temporal accumulation. However, conventional OSC systems face similar limitations to other rendering methods that utilize temporal accumulation, such as inefficient handling of changes in rendered scenes and introduction of visual artefacts when the rendered scene changes. Moreover, one of the significant challenges with the conventional OSC systems is the detection of changes in the visual scene or environment, which necessitates updating of the cached data. Additionally, the conventional methods for change detection are often computationally intensive and may not be sensitive enough to detect subtle changes, leading to either unnecessary updates or missed changes. As a result, there exists a technical problem of how to reduce visual artefacts, such as ghosting, lag, and the like, that are introduced by temporal accumulation with reduced computational overhead.
[0008] Therefore, in light of the foregoing discussion, there exists a need to overcome the aforementioned drawbacks associated with the conventional real-time graphics rendering techniques using a graphics controller and the conventional methods for a graphics controller.
[0009] SUMMARY
[0010] The present disclosure provides a graphics controller and a method for the graphics controller for effect-based change detection for cloud on-surface cache systems. The present disclosure provides a solution to the existing problem of how to reduce visual artefacts, such as ghosting, lag, and the like that are introduced by temporal accumulation with reduced computational overhead.
[0011] An objective of the present disclosure is to provide a solution that overcomes at least partially the problems encountered in the prior art and provides an improved graphics controller and methods for the graphics controller for effect-based change detection for cloud on-surface cache systems. One or more objectives of the present disclosure are achieved by the solutions provided in the enclosed independent claims. Advantageous implementations of the present disclosure are further defined in the dependent claims.
[0012] In one aspect, the present disclosure provides a graphics controller configured to receive a current frame and retrieve a previous ray set. Furthermore, the ray set corresponds to one or more rays to be traced for a frame and the previous ray set is for a frame k frames previous to the current frame. Moreover, the graphics controller is configured to retrace the previous ray set in the current frame, compute retraced ray data for the previous ray set when retraced in the current frame, retrieve previously computed ray data for the previous ray set as originally traced for the previous frame from an on-surface-cache (OSC), and compare the previously computed ray data to the retraced ray data. Furthermore, if there is a difference, then the graphics controller is configured to determine that there has been a change and in response thereto, generate an update signal based on the detected change whereby the OSC is updated.
[0013] Advantageously, the graphics controller is configured to enhance real-time graphics rendering by implementing a change detection mechanism based on retracing previous ray sets across frames. Furthermore, by retrieving and comparing the ray data stored in the on-surface-cache (OSC), the graphics controller is configured to identify significant changes in a visual scene or environment over time. Moreover, the graphics controller is configured to increase the computational efficiency of real-time graphics rendering by focusing on the updates that depicts the changes in the visual scene, thereby minimizing the unnecessary processing and computational overhead. Additionally, the graphics controller is configured to ensure that the updates to visual elements, such as lighting effects or object positions, are precisely targeted in order to maintain visual accuracy and rendering performance in the visual scenes. Furthermore, the use of OSC for storing and retrieving the ray data enhances the ability of the graphics controller to handle complex rendering tasks efficiently, ultimately leading to an enhanced and improved real-time graphics rendering across various applications, such as video games and virtual reality simulations that enhances the overall user experience.
[0014] In another aspect, the present disclosure provides a method for a graphics controller that includes receiving a current frame and retrieving a previous ray set. Furthermore, the ray set corresponds to one or more rays to be traced for a frame and the previous ray set is for a frame k frames previous to the current frame. Moreover, the method for a graphics controller further includes, retracing the previous ray set in the current frame, computing retraced ray data for the previous ray set when retraced in the current frame, retrieving previously computed ray data for the previous ray set as originally traced for the previous frame from an OSC, comparing the previously computed ray data to the retraced ray data. Moreover, if there is a difference, then the method for a graphics controller further includes determining that there has been a change and in response and generating an update signal based on the detected change whereby the OSC is updated.
[0015] The disclosed method achieves all the advantages and technical effects of the graphics controller.
[0016] It is to be appreciated that all the aforementioned implementation forms can be combined.
[0017] It has to be noted that all devices, elements, circuitry, units, and means described in the present application could be implemented in the software or hardware elements or any kind of combination thereof. All steps which are performed by the various entities described in the present application as well as the functionalities described to be performed by the various entities, are intended to mean that the respective entity is adapted to or configured to perform the respective steps and functionalities. Even if, in the following description of specific embodiments, a specific functionality or step to be performed by external entities is not reflected in the description of a specific detailed element of that entity which performs that specific step or functionality, it should be clear for a skilled person that these methods and functionalities can be implemented in respective software or hardware elements, or any kind of combination thereof. It will be appreciated that features of the present disclosure are susceptible to being combined in various combinations without departing from the scope of the present disclosure as defined by the appended claims.
[0018] Additional aspects, advantages, features, and objects of the present disclosure would be made apparent from the drawings and the detailed description of the illustrative implementations construed in conjunction with the appended claims that follow.
[0019] BRIEF DESCRIPTION OF THE DRAWINGS
[0020] The summary above, as well as the following detailed description of illustrative embodiments, is better understood when read in conjunction with the appended drawings. For the purpose of illustrating the present disclosure, exemplary constructions of the disclosure are shown in the drawings. However, the present disclosure is not limited to specific methods and instrumentalities disclosed herein. Moreover, those in the art will understand that the drawings are not to scale. Wherever possible, like elements have been indicated by identical numbers.
[0021] Embodiments of the present disclosure will now be described, by way of example only, with reference to the following diagrams wherein:
[0022] FIG. 1 is a block diagram that depicts a graphics controller for an effect-based change detection for cloud on-surface cache systems, in accordance with an embodiment of the present disclosure;
[0023] FIG. 2 is a flow chart that depicts a method for the graphics controller for effect-based change detection for the cloud on-surface cache systems, in accordance with an embodiment of the present disclosure;
[0024] FIG. 3 is a sequence diagram that depicts the change detection, in accordance with an embodiment of the present disclosure;
[0025] FIGs. 4A and 4B are the diagrams that depicts the re-tracing of a ray set from multiple previous frames, in accordance with an embodiment of the present disclosure;
[0026] FIG. 5A, 5B, and 5C collectively are diagrams that depicts an exemplary scenario of the detection of changes for Ambient Occlusion (AO), in accordance with an embodiment of the present disclosure;
[0027] FIG. 6A and 6B collectively are diagrams that depicts detection of shadows effects, in accordance with an embodiment of the present disclosure; and
[0028] FIG. 7A and 7B collectively are diagrams that depicts detection of global illumination (GI), in accordance with an embodiment of the present disclosure.
[0029] In the accompanying drawings, an underlined number is employed to represent an item over which the underlined number is positioned or an item to which the underlined number is adjacent. A non-underlined number relates to an item identified by a line linking the non-underlined number to the item. When a number is non-underlined and accompanied by an associated arrow, the non-underlined number is used to identify a general item at which the arrow is pointing. DETAILED DESCRIPTION OF EMBODIMENTS
[0030] The following detailed description illustrates embodiments of the present disclosure and ways in which they can be implemented. Although some modes of carrying out the present disclosure have been disclosed, those skilled in the art would recognize that other embodiments for carrying out or practicing the present disclosure are also possible.
[0031] FIG. 1 is a block diagram that depicts a graphics controller for an effect-based change detection for cloud on-surface cache systems, in accordance with an embodiment of the present disclosure. With reference to FIG. 1 , there is shown a block diagram 100 that includes an on-surface cache (OSC) system 102. The OSC system 102 further includes a graphics controller 104 and memory 106.
[0032] The graphics controller 104 is configured to retrieve a current frame, detect changes, and further generate the update signal based on the retrieved current frame and detected changes. Examples of the graphics controller 104 may include, but are not limited to an integrated circuit, a co-processor, a microprocessor, a microcontroller, a complex instruction set computing (CISC) processor, an application-specific integrated circuit (ASIC) processor, a reduced instruction set (RISC) processor, a very long instruction word (VLIW) processor, a central processing unit (CPU), a state machine, a data processing unit, and other processors or circuits.
[0033] The memory 106 is configured to store frame data and instructions received by the graphics controller 104. Examples of implementation of the memory 106 may include, but are not limited to, an Electrically Erasable Programmable Read-Only Memory (EEPROM), Dynamic Random-Access Memory (DRAM), Random Access Memory (RAM), Read-Only Memory (ROM), Hard Disk Drive (HDD), Flash memory, a Secure Digital (SD) card, Solid-State Drive (SSD), and / or CPU cache memory.
[0034] There is provided the graphics controller 104 configured to receive a current frame. In other words, the graphics controller 104 is configured to receive the current frame (i. e. , Fn) of the visual scene in order to perform operations, such as rendering, retracing rays, and updating the on-surface cache (OSC) based on the latest visual scene data. Moreover, the graphics controller 104 receives the current frame through a data input mechanism, which may be a part of a graphics processing unit (GPU) or a dedicated graphics rendering engine. In an implementation, the current frame contains all the necessary information about the current scene, including object positions, lighting, textures, and other visual elements. By virtue of receiving the current frame, the graphics controller 104 is configured to ensure that the latest visual scene data is utilized to perform the required operation to allow real-time updates and changes in the visual scene, thereby enhancing the visual experience of a user.
[0035] Furthermore, the graphics controller 104 is configured to retrieve a previous ray set. The ray set corresponds to one or more rays to be traced for a frame and the previous ray set is for a frame k frames previous to the current frame. In other words, the previous ray set (i.e., rn-k) includes one or more rays that were traced for a frame that is (i.e., Fn-k) k frames earlier than the current frame (i.e., Fn). The graphics controller 104 is configured to retrieve a ray set from a frame k frames prior and further traces the retrieved rays in the current frame and compares the newly computed ray data to the previously stored data from the on-surface cache (OSC). In an implementation, the ray set is used to collect the data representing the change in the frames, that is required for rendering effects, such as ambient occlusion (AO), global illumination (GI), shadows, and the like. Further, the ray set corresponding to one or more rays for the frame allows an accurate capturing of the visual details and interactions within the visual scene. In an implementation, the graphics controller 104 is configured to select a ray set for each frame during the rendering process. Moreover, the ray set originates from random positions on the OSC blocks and are directed based on the specific rendering effect. As a result, the previous ray set can be further used as a historical data to enhance the accuracy and efficiency of rendering the current frame in order to identify changes and maintain consistency across frames in order to provide a smooth and realistic visual experience in dynamic visual scenes. Furthermore, the graphics controller 104 is configured to retrace the previous ray set in the current frame. The retracing of the previous ray set in the current frame is essential for detecting changes that have occurred in between the frames. Further, by retracing the previous ray set (i.e., rn-k) in the current frame (i.e., Fn), the OSC system 102 compares the evolution of the scene from the previous frame to the current frame. Thus, after retrieving the ray set from the previous frame, the graphics controller 104, traces the retrieved ray set in the current frame by computing the intersection points or other relevant data for each ray of the retrieved ray set. Therefore, by retracing the previous ray set in the current frame, the graphics controller 104 is configured to perform a direct comparison between the state of the scene in the earlier and current frames, thereby enabling the graphics controller 104 to identify and respond to changes in the visual scene with a greater precision.
[0036] Furthermore, the graphics controller 104 is configured to compute retraced ray data for the previous ray set when retraced in the current frame. Firstly, the graphics controller 104 is configured to trace the previous ray set (i.e., rn-k) in the current frame (i.e., Fn). Thereafter, by following the same directions and origins as in the earlier frame, the graphics controller 104 is configured to compute the new data for each retraced ray, which includes intersection points, color values, or other relevant information. Moreover, the newly computed retraced ray data (i.e., hn-k) represents the current state of the visual scene as observed from the previously used ray directions. Therefore, by computing the retraced ray data in the current frame, the graphics controller 104 is configured to provides a precise comparison between the past and present states of the visual scene, enabling the OSC system 102 to detect changes with high accuracy with an improved detection of changes enhances the visual fidelity and performance of the rendering by focusing on computational resources.
[0037] Furthermore, the graphics controller 104 is configured to retrieve previously computed ray data for the previous ray set as originally traced for the previous frame from an on-surface-cache (OSC). The graphics controller 104 is configured to interact with the OSC that stores the previously computed ray data (i.e., dn-k) from previous frame (i.e., Fn-k). Further, the graphics controller 104 is configured to retrieve the ray data that corresponds to the ray set (i.e., rn-k). The retrieval of previously computed ray data is used to compare the past and current states of the visual scene. Thus, by retrieving the previously computed ray data for the previous ray set, the graphics controller 104 is configured to perform a detailed comparison between the original ray data and the data computed after retracing the rays in the current frame. Moreover, the graphics controller 104 is configured to retrieve the previously computed ray data for the earlier ray set from an on-surface cache (OSC) to detect changes and update the visual scene accordingly.
[0038] Furthermore, the graphics controller 104 is configured to compare the previously computed ray data to the retraced ray data and if there is a difference, determine that there has been a change and in response thereto generate an update signal based on the detected change whereby the OSC is updated. The comparison of the previously computed ray data (i.e., dn-k) to the retraced ray data (i.e., hn-k) includes evaluating the ray data collected in the previous frame with the data collected from retracing the same rays in the current frame. In an implementation, the detected changes may be due to movements, alterations in lighting, or any other dynamic factors affecting the visual elements of the visual scene. Furthermore, in order to perform such a comparison, the graphics controller 104 is configured to retrieve the previously computed ray data from the OSC and retrace the previously computed rays in the current frame to compute the retraced ray data. Moreover, the graphics controller 104 is configured to generate the update signal when there is a difference in the previously computed ray data and the retracted ray data based on the detected change. The update signal includes an information about the detected changes, such as the information about any specific area or block of the OSC that needs to be updated. In an example, the detected changes may include any movement, lighting alteration, or any other visual modifications within the previously computed ray data and the retraced ray data. As a result, by generating the update signal and comparing the previously computed ray data to the retraced ray data and determining that there has been a change, the graphics controller 104 is configured to enhance the rendering efficiency and accuracy in real-time applications, thereby contributing to a reduced power consumption and improved overall performance of the OSC system 102 and handling complex rendering tasks in various interactive and visually demanding applications. In accordance with an embodiment, the graphics controller 104 is further configured to update any neighbouring OSC blocks by propagating the update signal to neighbouring OSC blocks. The graphics controller 104 detects changes by comparing previously computed ray data with retraced ray data. Thereafter, upon detecting the change, the graphics controller 104 is configured to generate the update signal containing information about the detected changes. Moreover, the update signal is propagated to neighbouring OSC blocks, instructing the neighbouring OSC blocks to update their data to reflect the changes in the adjacent areas and update the stored data, accordingly, thereby ensuring that the entire visual scene is consistent and up to date. For example, the movement of an object or any change in the lighting can influence the appearance of surrounding surfaces. Beneficially, the neighbouring OSC blocks are updated to ensure that changes detected in one part of the visual scene are consistently reflected in adjacent areas in order to maintain visual coherence and prevent discrepancies that could arise from isolated updates, thereby enhancing the overall visual experience.
[0039] In accordance with an embodiment, the graphics controller 104 is further configured to select a current ray set, trace the current ray set in the current frame, compute traced ray data for the current ray set when traced in the current frame, and store the traced ray data in the OSC. Firstly, the graphics controller 104 is configured to select the current ray set (i.e., rn) necessary for rendering the current frame (i.e., Fn). Thereafter, the graphics controller 104 is configured to perform ray tracing on the current ray set, which involves calculating the interactions of rays with the objects of the visual scene to determine the changes, such as lighting, shading, and visibility. Moreover, once the traced ray data (i.e., dn) is computed, the graphics controller 104 is configured to store the traced ray data in the OSC, thereby creating a cache of information that can be referenced in future frames to detect changes and optimizing the rendering processes. By virtue of storing the traced ray data in the OSC, the graphics controller 104 is configured to detect changes between frames efficiently and accurately thereby ensuring a consistency in the visual scene.
[0040] In accordance with an embodiment, when the change to be detected is ambient occlusion (AO) or global illumination (GI), the graphics controller 104 is further configured to select a random position on a surface of the OSC block as the origin for that ray for each ray in the ray set, and select a random direction from a hemisphere aligned to the OSC block at the origin for each ray of the current ray set. In other words, the graphics controller 104 is configured to detect changes related to AO or GI by initially identifying the current ray set (i.e., m) for the frame. Furthermore, for each ray in the current ray set, the graphics controller 104 is configured to randomly select a position on the OSC block surface to serve as the origin of the ray in order to achieve a diverse sampling of the visual scene. Moreover, the graphics controller 104 is configured to select a random direction for each ray from a hemisphere aligned with the OSC block at the origin, ensuring that the rays cover various directions, mimicking the scattering of light and capturing a wide range of interactions between light and surface. As a result, the graphics controller 104 is configured to provide an enhanced, realistic, and detailed visuals of the scene with reduced visual artefacts.
[0041] In accordance with an embodiment, the traced ray data indicates a distance to a closest intersection with scene geometry within a ray length and the graphics controller 104 is further configured to detect the change if the difference between the distance of the retraced ray data and the originally traced ray data exceeds an allowance threshold for floating point inaccuracies. The graphics controller 104 is configured to use the traced ray data to determine the distance to the closest intersection with visual scene geometry within the length of the ray. Further, the graphics controller 104 is configured to detect changes by comparing the retraced ray data (i.e., hn-k) with the originally traced ray data (i.e., dn-k). In an implementation, when the difference in the distances to the closest intersection between the retraced ray and the originally traced ray exceeds an allowance threshold for floating point inaccuracies, the graphics controller 104 identifies this difference as a change. Furthermore, by comparing the length of the difference between the distances to the closest intersection points, the graphics controller 104 is configured to identify the magnitude of even subtle changes. Advantageously, by using an allowance threshold for floating point inaccuracies, the graphics controller 104 ensures an accurate detection of changes by eliminating false negatives that may occur due to minor computational variances in the visual scene. In accordance with an embodiment, the traced ray data indicates an indirect radiance received at the origin from a direction of the trace of a ray. The graphics controller 104 is further configured to detect the change if the difference between a colour and / or an intensity of the indirect radiance of the retraced ray data and a colour and / or an intensity of the indirect radiance of the originally traced ray data exceeds an allowance threshold for floating point inaccuracies. The graphics controller 104 is configured to trace rays for calculating the indirect radiance at the origin from the direction of each ray. Further, the initially calculated indirect radiance data, referred to as the originally traced ray data (i.e., dn-k), represents the indirect light reflected back to the origin of the first ray after tracing the ray to the intersection point in the scene. At the intersection point, additional rays are traced to the light sources to determine the direct illumination, and the resulting indirect radiance is stored as dn-k. In subsequent frames, the rays are retraced to recalculate the indirect radiance, producing the retraced ray data (i.e., hn-k). Thereafter, the graphics controller 104 compares the recalculated indirect radiance (hn-k) with the previously stored indirect radiance (dn-k). Moreover, when the difference in color or intensity exceeds a predefined threshold for floating point inaccuracies, the graphics controller 104 identifies the difference as a change Therefore, by monitoring the changes in the color and intensity of the indirect radiance, the graphics controller 104 is configured to identify the variations in lighting conditions, which might be caused by moving objects or changing light sources, thereby enhancing the visual quality of the rendered images.
[0042] In accordance with an embodiment, the graphics controller 104 is further configured to select a direction from one of the light sources for each ray of the current ray set when the change to be detected is shadowing. Firstly, the graphics controller 104 is configured to select a direction from the light source for each ray in the current ray set (i.e., rn). After that, the rays are traced in the current frame (i.e., Fn) to check for intersections with the visual scene. Furthermore, by analysing the intersections with the visual scene, the graphics controller 104 is configured to determine whether an object blocks the light and creates a shadow or not. Furthermore, if the shadowing pattern in the current frame differs from the shadowing pattern in a previous frame, then, in that case, the graphics controller 104 is configured to detect the change. As a result, by focusing on light source directions, the graphics controller 104 is configured to accurately capture shadow dynamics thereby ensuring that the update within the visual scene reflects the changes in object positions or lighting conditions.
[0043] In accordance with an embodiment, the traced ray data includes a visibility flag. The graphics controller is further configured to set the visibility flag if there is an object blocking the path from the light source to the surface, The controller is further configured to detect the change if the flag of the retraced ray data and the visibility flag of the originally traced ray data are set differently. In another words, the graphics controller 104 is configured to trace rays from the light source to the surface in order to check for any obstructions in the visual scene. In an implementation, if an object blocks the light, then, in that case, the visibility flag is set in the traced ray data. Further, the graphics controller 104 is configured to retrace the rays for the current frame and compare the visibility flags of the retraced ray data (i.e., hn-k) with the originally traced ray data (i.e., dn-k). Furthermore, if the visibility flags changes, the graphics controller 104 indicates a change in the visual scene. Therefore, by using the visibility flag, the graphics controller 104 is configured to quickly determine whether the position or presence of an object has altered the light paths, ensuring that shadows and lighting effects are updated accurately in the visual scene.
[0044] In accordance with an embodiment, the current ray set includes one or more rays for each change to be detected. The graphics controller 104 is configured to generate a ray set for the current frame, with each ray in the set dedicated to detecting a particular type of change. The rays within the set are specifically configured to identify variations in the scene, ensuring an accurate and efficient detection of changes. Further, each ray from the ray set is traced to capture relevant data, enabling the system to promptly recognize and respond to changes. Advantageously, the inclusion of specific rays for each change allows the graphics controller 104 to efficiently identify and respond to various changes, such as the movement of an object, obstruction in lightning, and the like in the visual scene. In accordance with an embodiment, the current ray set includes one ray for each change to be detected. In an example, the ray may indicate changes, such as change in lighting, shadow alterations or object movements. The graphics controller 104 is configured to collect data specific to each type of change. Additionally, by including a specific ray for each change, the graphics controller 104 can handle different changes, such as lighting, shadows, or object positions, without missing any updates in order to reduce false negatives and false positives that may adversely affects the graphic rendering process.
[0045] In accordance with an embodiment, the current ray set is related to detect one change and a preceding ray set is related to detect another change. In other words, the graphics controller 104 is configured to use the current ray set (i.e., rn) to detect specific changes in the visual scene, such as lighting variations. The graphics controller 104 also uses the preceding ray set (i.e., rn-i) to detect other types of changes, such as object movement or shadow alterations. Each type of change detection is independent, with the set of current and previous ray sets, ensuring that different effects, like ambient occlusion and shadows, are handled separately. The use of sequential ray sets from multiple frames allows for more reliable detection of changes, as the sequential ray set captures potential changes even if they are delayed by a few frames. Therefore, by using separate ray sets for detecting different changes, the efficiency of the graphics controller 104 is enhanced by focusing on specific types of changes separately, ensuring that detecting a change in ambient occlusion does not mistakenly imply a change in shadows.
[0046] In accordance with an embodiment, the graphics controller 104 is further configured to render three-dimensional (3D) graphics. The rendering of the 3D graphics is essential for creating realistic and immersive visual experiences in modem applications, such as video games, simulations, and virtual reality environments. In an implementation, the graphics controller 104 is configured to process and visualize input data by translating the input data into three-dimensional representations, the translation involves computations for lighting, shading, perspective, and depth to produce images that appear 3D on a screen. Furthermore, the graphics controller 104 is configured to use various algorithms and data, including ray tracing and geometric transformations, to achieve the rendering of the 3D graphics.
[0047] Therefore, the graphics controller 104 is configured to enhance real-time graphics rendering by using the change detection mechanism that retraces previous ray sets across frames. Further, by retrieving and comparing ray data stored in the OSC, the graphics controller 104 is configured to detect the significant changes in the visual scene or environment over time. The inclusion of object detection increases the computational efficiency by focusing updates on areas with changes, minimizing unnecessary processing and computational overhead. Furthermore, the graphics controller 104 ensures that updates to visual elements, such as lighting effects or object positions, are precisely targeted, maintaining visual accuracy and rendering performance. Moreover, the use of OSC for storing and retrieving ray data enables the graphics controller to handle complex rendering tasks efficiently.
[0048] FIG. 2 is a flow chart that depicts a method for the graphics controller for effect-based change detection for the cloud on- surface cache systems, in accordance with an embodiment of the present disclosure. With reference to FIG. 2, there is shown a flowchart of a method 200 for the graphics controller 104. The method 200 includes steps 202 to 212 and the sub-steps 212A and 212B.
[0049] At step 202, the method 200 includes receiving the current frame. By virtue of receiving the current frame, the graphics controller 104 is configured to ensure that the latest visual scene data is utilized to perform the required operation to allow realtime updates and changes in the visual scene, thereby enhancing the visual experience of a user. At step 204, the method 200 includes retrieving a previous ray set. Moreover, the ray set corresponds to one or more rays to be traced for a frame and the previous ray set is for a frame k frames previous to the current frame. The previous ray set can be further used as a historical data to enhance the accuracy and efficiency of rendering the current frame in order to identify changes and maintain consistency across frames in order to provide a smooth and realistic visual experience in dynamic visual scenes. At step 206, the method 200 includes retracing the previous ray set in the current frame. By retracing the previous ray set in the current frame, the graphics controller 104 is configured to perform a direct comparison between the state of the scene in the earlier and current frames, thereby enabling the graphics controller 104 to identify and respond to changes in the visual scene with a greater precision. At step 208, the method 200 includes computing the retraced ray data for the previous ray set when retraced in the current frame. The computing of retraced ray data in the current frame further involves the graphics controller 104, which is configured to provides a precise comparison between the past and present states of the visual scene, enabling the OSC system 102 to detect changes with high accuracy with an improved detection of changes enhances the visual fidelity and performance of the rendering by focusing computational resources on changed areas. At step 210, the method 200 includes, retrieving previously computed ray data for the previous ray set as originally traced for the previous frame from the OSC. By retrieving the previously computed ray data for the previous ray set, the method 200 is used to perform a detailed comparison between the original ray data and the data computed after retracing the rays in the current frame. Moreover, the method 200 is used to retrieve the previously computed ray data for the earlier ray set from an on-surface cache (OSC) to detect changes and update the visual scene accordingly.
[0050] At step 212, the method 200 includes comparing the previously computed ray data to the retraced ray data. At sub-step 212A, the method 200 includes, determining that there has been a change, if there is a difference while comparing the previously computed ray data to the retraced ray data. Furthermore, at sub-step 212B, the method 200 includes generating an update signal based on the detected change whereby the OSC is updated in response to the determination of the change, by generating the update signal and comparing the previously computed ray data to the retraced ray data and determining that there has been a change, the method 200 is used to enhance the rendering efficiency and accuracy in real-time applications, thereby contributing to a reduced power consumption and improved overall performance of the OSC system 102 and handling complex rendering tasks in various interactive and visually demanding applications.
[0051] Advantageously, the method 200 utilizes a change detection mechanism that retraces previous ray sets across frames, allowing for the identification of significant changes in the visual scene or environment over time. Furthermore, the method 200 is configured to enhance the computational efficiency of the graphics controller 104 by focusing on updates in areas with detected changes, thereby minimizing unnecessary processing and computational overhead. Moreover, the method 200 ensures precise targeting of updates to visual elements such as lighting effects or object positions, which maintains both visual accuracy and rendering performance. Additionally, the method 200 utilizes the OSC for storing and retrieving ray data, enabling efficient handling of complex rendering tasks, that ultimately leads to an improved real-time graphics rendering in various applications, such as video games and virtual reality simulations, thereby enhancing the overall user experience.
[0052] The steps 202 to 212 and the sub-steps 212A to 211B are only illustrative, and other alternatives can also be provided where one or more steps are added, one or more steps are removed, or one or more steps are provided in a different sequence without departing from the scope of the claims herein.
[0053] There is further provided a computer program product comprising program instructions for performing the method 200 when executed by one or more processors in the OSC system 102. The computer program product is implemented as an algorithm, embedded in software stored in a non-transitory computer-readable storage medium. The non-transitory computer-readable storage means may include but are not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. Examples of implementation of computer-readable storage medium, but are not limited to, Electrically Erasable Programmable Read-Only Memory (EEPROM), Random Access Memory (RAM), Read Only Memory (ROM), Elard Disk Drive (EIDD), Flash memory, a Secure Digital (SD) card, Solid-State Drive (SSD), a computer-readable storage medium, and / or CPU cache memory. FIG. 3 is a sequence diagram that depicts the change detection, in accordance with an embodiment of the present disclosure. With the reference to FIG. 3, there is shown a diagram 300 illustrating the flow of the change detection algorithm, the diagram 300 further includes the on-surface cache (OSC) 302.
[0054] In an implementation, the change detection algorithm operates on the OSC block basis and runs two parallel processes that is tracing a new ray set and re-tracing a ray set from a previous frame. At operation 304, the graphics controller 104 is configured to retrace the ray set (i.e., rn-k), that involves loading the change detection ray set and the corresponding ray data that were created k frames ago. Further, at operation 306, the graphics controller 104 is configured to compute the ray data (i.e., hn-k). Furthermore, the rays are traced through the current visual scene of the frame, and the resulting data, which includes distance to intersection for AO, visibility flag for shadows, and the like is computed. At operation 308, the graphics controller 104 is configured to trace the new ray set (i.e., rn). Furthermore, at operation 310, the graphics controller 104 is configured to compute the ray data (i.e., dn). At operation 312, the graphics controller 104 is configured to compare the computed ray data from the re-traced rays with the previously stored ray data (i.e., dn-k). Furthermore, if the computed ray data differs from the previously stored ray data (i.e., difference in the distances, or difference in visibility flags), then the graphics controller 104 is configured to indicate the difference as a change has occurred in the visual scene. At operation 314, the graphics controller 104 is configured to end the operation, as no change was detected. At operation 316, the graphics controller 104 is configured to detect the change. Furthermore, at operation 318, the graphics controller 104 is configured to propagate the changes, the propagation of changes involves marking the current OSC block and all neighboring OSC blocks as changed. Moreover, at operation 320, all texels in the block react to the change and, depending on the effect, either trigger effect re-computation or modify the parameters of the temporal accumulation and favouring the contribution of the current frame, and re-distributing the rays of the current ray budget to direct more computational effort to changed areas. Therefore, the change detection algorithm allows the graphics controller 104 to trace multiple detection rays per frame to handle highly dynamic scenes and stops tracing rays once convergence is achieved in static areas, thus optimizing performance by reducing unnecessary updates. Moreover, by employing the OSC, the change detection algorithm ensures a good partition of visible object surfaces within the visual scene, thereby facilitating an efficient memory management. Additionally, the change detection algorithm ensures accurate detection and reaction to dynamic visual scene elements while optimizing performance by minimizing unnecessary computations.
[0055] FIGs. 4A and 4B are the diagrams that depicts the re-tracing of a ray set from multiple previous frames, in accordance with an embodiment of the present disclosure. With reference to FIG. 4A, there is shown a diagram 400A, that includes an object 402 and a floor 404 depicting the retracing the ray from the last frame.
[0056] In an implementation, if the ray from the last frame is re-traced, the graphics controller 104 is configured to detect the disappearance only if the object is hit in the previous frame. Moreover, due to the random direction of the rays, such detection is not very likely. In an exemplary scenario, rays are traced from the left side of the floor 404 that are detected from the last frame. Moreover, the probability of the intersection of the rays with the object 402 in its previous position is minimized due minimal coverage area that increasing the chances of missing the object 402 entirely. Furthermore, with reference to FIG. 4B, there is shown a diagram 400B, that includes the object 402 and the floor 404 depicting the retracing the ray from 5 previous frames. In such an exemplary scenario, retracing the ray set from the previous five frames provides five opportunities to detect the same change, significantly increasing the probability of successful detection while maintaining the same ray budget. Therefore, by using OSC, a good partition of the visible object surfaces in a visual scene, and the memory management can be achieved by allowing the graphics controller 104 us to store several detection rays, thereby increasing the chances of detecting changes. As a result, the combination of immediate and temporally extended re-tracing provides the overall reliability of change detection in dynamic scenes by balancing immediate response and historical context, optimizing performance without increasing the number of rays traced per frame, and reducing the likelihood of overlooking fast-moving objects. FIG. 5A, 5B, and 5C collectively are diagrams that depicts an exemplary scenario of the detection of changes for Ambient Occlusion (AO), in accordance with an embodiment of the present disclosure. With reference to FIG. 5, there is shown an initial scene 502A, a changed scene 502B, and a scene representing the detected AO changes 502C.
[0057] In an exemplary scenario, the initial scene 502A represent the state of the visual scene before any change is depicted. The initial scene 502A is analyzed by the graphics controller 104 in order to establish the baseline AO data, capturing the AO information based on the geometry present at the initial scene 502A. Furthermore, the changed scene 502B represents the visual scene after certain changes have taken place in the initial scene 502A. In an implementation, the changes may include movements of objects, changes in the position of the objects, or any other alterations affecting the geometry of the visual scene. Moreover, the updated scene is then evaluated to determine how the changes impact the AO values. Additionally, the detected AO changes 502C are highlighted as a result of comparing the initial scene 502A and the changed scene 502B. In another words, the detected AO changes 502C illustrate the differences in AO values that are detected due to the visual scene modifications, which are indicative of where and how the AO has been affected by the modifications in the geometry of the visual scene. Furthermore, the AO is influenced only by geometry in a localized neighbourhood. However, movement or animation of objects requires change detection. Thus, the change detection algorithm adapts the selection of ray direction and computation of ray data and change detection specifically for the AO effect. Furthermore, the ray direction is selected by choosing a random direction from a hemisphere aligned to the surface at the origin, limiting the ray length appropriately for the desired AO effect radius. Moreover, the ray data is the distance to the closest intersection with the visual scene geometry within the ray length, storing information about hits or misses. In an implementation, if the difference between old and new distances exceeds floating point inaccuracies or if new hits are detected where there were none before (or vice versa), the block is marked as changed. The magnitude of the difference between hit distances is also considered, as the larger changes increase the hysteresis value more significantly. Moreover, the bounding boxes of moving objects serve as an approximation, allowing the change detection algorithm to avoid tracing detection rays in regions where no changes could have occurred. Therefore, the AO detection enables an efficient and accurate detection of changes in dynamic scenes by focusing on relevant areas, reducing unnecessary updates, and enhancing the reliability of change detection for AO effects.
[0058] FIG. 6A and 6B collectively are diagrams that depicts detection of shadows effects, in accordance with an embodiment of the present disclosure. With reference to FIG. 6A and 6B, there is shown a diagram 600A and 600B, that includes an initial scene 602A, a changed scene 602B.
[0059] In an exemplary scenario, the initial scene 602A refers to the original configuration of the visual scene with shadows cast based on the positions of light sources and visual scene geometry. Furthermore, the changed scene 602B refers to the updated configuration where modifications have occurred. Moreover, the changes might involve the movement of objects or alterations in the geometry of the scene, which affects shadow casting. The diagram 600 is configured to capture the differences in shadows due to the changes in the initial scene 602A, that are visible in the changed scene 602B, emphasizing the areas where shadows have shifted or newly appeared. Furthermore, the shadows are influenced by both the scene geometry and the position of light sources. The ray direction for shadow detection involves selecting one random light source for each ray. Further, each ray is traced directly towards the position of the selected light source, with the ray length limited to the distance from the surface to the light source. Further, for the ray data, a single visibility flag is used to determine whether the path from the surface to the light source is unobstructed by any visual scene geometry. Furthermore, the flag indicates whether the surface is in shadow from the chosen light source. Moreover, if the visibility flag differs from previous data, the block is marked as changed. In an implementation, for hard shadows, the rays are traced from each surface position within the block to the center of each light source, with visibility stored for each light. In another implementation, for soft shadows, the change detection algorithm is configured to modify the temporal accumulation process to trace more rays towards the relevant light source and skew the accumulation to give more weight to new samples, thereby enhancing the accuracy of shadow detection and improving the responsiveness to changes in shadow casting within the visual scene. Therefore, by adapting the change detection algorithm for detecting the changes in shadows, the approach is configured to enhance both the accuracy and efficiency of shadow detection within a visual scene. Furthermore, by tracing rays directly towards the selected light sources and utilizing a single visibility flag, the change detection algorithm ensures precise and relevant shadow detection. Additionally, the handling of hard and soft shadows through precise ray tracing for hard shadows and adjusted temporal accumulation for soft shadows, improves the responsiveness to dynamic changes in shadow casting.
[0060] FIG. 7A and 7B collectively are diagrams that depicts detection of global illumination (GI), in accordance with an embodiment of the present disclosure. With reference to FIG. 7A and 7B, there is shown a diagram 700A and 700B, that includes an initial scene 702A, a changed scene 702B with different spotlight colour.
[0061] In an exemplary scenario, the initial scene 702A refers to the state of the visual scene or environment before any modifications or changes have occurred in the visual scene. The initial scene 702A features a specific configuration of light sources, having defined positions, intensities, and colors that illuminate the scene uniformly. Furthermore, the GI of the initial scene 702A is calculated based on the lighting setup and scene geometry. The changed scene 702B with different spotlight colors refers to the scene after the modifications, focusing on the altered spotlight colors and their impact on the visual environment. The new spotlight colors affect the overall lighting, changing the way objects and surfaces are illuminated. In an implementation, for each detection ray, a random surface position within the cache block and a random direction within a hemisphere aligned to the surface are selected. Further, the ray data is determined by computing the final shading of the intersected surface, which involves tracing additional shadow rays to light sources and assessing the indirect radiance received by the ray origin. Furthermore, the changes in the intensity and color of this indirect radiance are used as detection parameters. Moreover, if the computed radiance differs significantly from previous values, the block is marked as changed. Furthermore, while reacting to detected changes, the graphics controller 104 is configured to adjust the hysteresis of the temporal accumulation based on the magnitude of the detected changes. The number of traced rays is also modified, but given the high computational demand of GI, the global ray budget is allocated according to the magnitude of changes detected in the visual scene. Advantageously, the detection of changes in GI ensures efficient and accurate handling of GI updates, balancing performance with the need to reflect changes in the scene's global illumination accurately.
[0062] Modifications to embodiments of the present disclosure described in the foregoing are possible without departing from the scope of the present disclosure as defined by the accompanying claims. Expressions such as “including,” “comprising,” “incorporating,” “have,” “is” used to describe, and claim the present disclosure are intended to be construed in a non-exclusive manner, namely allowing for items, components or elements not explicitly described also to be present. Reference to the singular is also to be construed to relate to the plural. The word “exemplary” is used herein to mean “serving as an example, instance, or illustration.” Any embodiment described as “exemplary” is not necessarily to be construed as preferred or advantageous over other embodiments or to exclude the incorporation of features from other embodiments. The word “optionally” is used herein to mean “is provided in some embodiments and not provided in other embodiments.” It is appreciated that certain features of the present disclosure, which are, for clarity, described in the context of separate embodiments, may also be provided in combination in a single embodiment. Conversely, various features of the present disclosure, which are, for brevity, described in the context of a single embodiment, may also be provided separately or in any suitable combination or as suitable in any other described embodiment of the disclosure.
Claims
CLAIMS1. A graphics controller (104) configured to receive a current frame, retrieve a previous ray set, wherein the ray set corresponds to one or more rays to be traced for a frame and wherein the previous ray set is for a frame k frames previous to the current frame, retrace the previous ray set in the current frame, compute retraced ray data for the previous ray set when retraced in the current frame, retrieve previously computed ray data for the previous ray set as originally traced for the previous frame from an on- surface-cache, OSC, compare the previously computed ray data to the retraced ray data, and if there is a difference, determine that there has been a change and in response thereto generate an update signal based on the detected change whereby the OSC (302) is updated.
2. The graphics controller (104) according to claim 1, wherein the graphics controller (104) is further configured to also update any neighbouring OSC blocks by propagating the update signal to neighbouring OSC blocks.
3. The graphics controller (104) according to any preceding claim, wherein the graphics controller (104) is further configured to select a current ray set, trace the current ray set in the current frame, compute traced ray data for the current ray set when traced in the current frame, and store the traced ray data in the OSC (302).
4. The graphics controller (104) according to any preceding claim, wherein when the change to be detected is ambient occlusion or global illumination, the graphics controller (104) is further configured to for each ray in the ray set select a random position on a surface of the OSC block as the origin for that ray, and for each ray in the ray set select a random direction from a hemisphere aligned to the OSC block at the origin is selected for each ray of the current ray set.
5. The graphics controller (104) according to claim 4, wherein the traced ray data indicates a distance to a closest intersection with scene geometry within a ray length, and wherein the graphics controller (104) is further configured to detect the change if the difference between the distance of the retraced ray data and the originally traced ray data exceeds an allowance threshold for floating point inaccuracies.
6. The graphics controller (104) according to claim 4 or 5, wherein the traced ray data indicates an indirect radiance received at the origin from a direction of the trace of a ray, and wherein the graphics controller (104) is further configured to detect the change if the difference between a colour and / or an intensity of the indirect radiance of the retraced ray data and a colour and / or an intensity of the indirect radiance of the originally traced ray data exceeds an allowance threshold for floating point inaccuracies.
7. The graphics controller (104) according to any preceding claim, wherein the graphics controller (104) is further configured to select a direction from one of the light sources for each ray of the current ray set when the change to be detected is shadowing.
8. The graphics controller (104) according to claim 7, wherein the traced ray data includes a visibility flag, and wherein the graphics controller (104) is further configured to set the visibility flag if there is an object blocking the path from the light source to the surface, and wherein the graphics controller (104) is further configured todetect the change if the flag of the retraced ray data and the flag of the originally traced ray data are set differently.
9. The graphics controller (104) according to any preceding claim, wherein the graphics controller (104) is further configured to wherein the current ray set includes one or more rays for each change to be detected.
10. The graphics controller (104) according to claim 9, wherein the graphics controller (104) is further configured to wherein the current ray set includes one ray for each change to be detected.
11. The graphics controller (104) according to any preceding claim, wherein the current ray set is related to detect one change, and a preceding ray set is related to detect another change.
12. The graphics controller (104) according to any preceding claim, wherein the graphics controller (104) is further configured to render three-dimensional graphics.
13. A method (200) for a graphics controller (104), the method (200) comprising: receiving a current frame, retrieving a previous ray set, wherein the ray set corresponds to one or more rays to be traced for a frame and wherein the previous ray set is for a frame k frames previous to the current frame, retracing the previous ray set in the current frame, computing retraced ray data for the previous ray set when retraced in the current frame, retrieving previously computed ray data for the previous ray set as originally traced for the previous frame from an OSC (302), comparing the previously computed ray data to the retraced ray data, and if there is a difference, determining that there has been a change and in response thereto generating an update signal based on the detected change whereby the OSC (302) is updated.
14. A computer program product comprising program instructions for performing the method (200) according to claim 13, when executed by one or more processors in a computer system.