A blur rendering system and method suitable for XR services
By introducing a blur rendering system suitable for XR services into virtual reality technology, rendering priority and resource allocation are dynamically adjusted, solving the problems of rendering latency and resource waste in virtual reality technology, and improving user experience and system stability.
Patent Information
- Application Number
- CN202410874619.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-07-02
- Publication Date
- 2025-10-28
- Estimated Expiration
- 2044-07-02
AI Technical Summary
Existing virtual reality technologies suffer from latency and stuttering during rendering, resulting in wasted resources. Furthermore, traditional blur rendering methods cannot dynamically adjust the degree of blur, impacting the user experience.
A blur rendering system suitable for XR business is adopted, including scene object storage, allocation, event management, rendering and recycling modules. By monitoring system events in real time, the rendering priority and resource allocation are dynamically adjusted. Combined with an eye-tracking system, resource utilization is optimized to achieve dynamic adjustment of blur intensity.
It improves rendering efficiency and user experience, ensures that critical objects are rendered first within the field of view, reduces stuttering, guarantees the continuity and stability of the user experience, and optimizes resource utilization.
Smart Images

Figure CN118840469B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of virtual reality technology, and in particular to a blur rendering system and method suitable for XR services. Background Technology
[0002] Currently, the rapid development of the internet has led to increasing interest in the virtual world. However, some current virtual reality systems suffer from latency and stuttering during rendering, fail to effectively reclaim resources after rendering, and cause scenes to overlap in space, resulting in wasted resources and a poor visual presentation for users. Traditional blur rendering methods are usually static and have limited ability to adjust the blur intensity of the rendered scene, making it impossible to dynamically adjust the blur level according to the user's gaze point. This can lead to unnecessary loss of sharpness or excessive blurring around objects in XR environments, affecting the user experience of virtual scenes. Summary of the Invention
[0003] To solve the above technical problems, the technical solution adopted by the present invention is as follows: The present invention is a blur rendering system suitable for XR business, including a scene object storage module, a scene object allocation module, a system event management module, a scene rendering module, and a scene object recycling module. The input end of the scene object storage module is connected to the output end of the recycling module, the input end of the scene object allocation module is connected to the output end of the scene object storage module, the input end of the system event management module is connected to the output end of the scene object allocation module, the input end of the scene rendering module is connected to the output end of the system event management module, and the input end of the recycling module is connected to the output ends of the scene object allocation module, the system event management module, and the scene rendering module.
[0004] The scene object storage module is used to store pre-configured scene objects. By pre-configuring and storing the scene objects, the real-time calculation and resource loading time during the rendering process can be reduced, thereby improving rendering efficiency.
[0005] The scene object allocation module is used to obtain the scene object stored in the scene object storage module and allocate the scene object to the user;
[0006] The system event management module is used to monitor system events generated by the event source in real time, and to calculate the rendering rate Rrender and recycling rate Rrecycle of the scene object.
[0007] The scene rendering module is used to control the rendering rate of the scene object according to the rendering rate Rrender;
[0008] The recycling module is used to reclaim the resources used in the rendering process and to reclaim the scene objects.
[0009] Furthermore, the system event management module includes a system event listening submodule, a priority allocation submodule, a rendering queue construction submodule, a system characteristic acquisition submodule, a system event characteristic acquisition submodule, a rate calculation submodule, and a system event response submodule;
[0010] The system event listening submodule is used to listen to system events generated by the event source in real time, so as to ensure that the system can respond to user operations and scene logic in a timely manner. The system events include events that require rendering or recycling of corresponding scene objects based on user interaction behavior and events that require rendering or recycling of corresponding scene objects based on scene logic.
[0011] The priority allocation submodule is used to allocate rendering priority to each scene object according to the system event, and dynamically adjust the rendering order of the scene objects according to the occurrence of the system event, thereby optimizing rendering performance and improving user experience. The rendering priority allocation information is stored in the data structure of the scene object for use by the rendering queue construction module.
[0012] The rendering queue construction submodule is used to construct a rendering queue based on rendering priority allocation information. The scene objects are sorted in descending order of priority using a heap sort algorithm. The scene objects with higher priority are placed at the front of the rendering queue, thus constructing a reasonable rendering queue. This ensures that objects with higher priority are processed first during rendering, thereby improving rendering efficiency and user experience.
[0013] The system characteristic acquisition submodule is used to acquire system characteristics from the configuration management database. The system characteristics include the current system CPU utilization rate Sperformance, the current system performance threshold Tthreshold, and the current system available memory resources Mmemory. The configuration database is used to store system characteristics.
[0014] The system event characteristic acquisition submodule is used to analyze the system event to obtain the characteristics of the system event. The characteristics of the system event include the rendering priority (Epriority) of the scene object, the complexity (Ocomplexity) of the scene object, and the weight (Oweight) of the scene object.
[0015] The rate calculation submodule is used to calculate the rendering rate and recycling rate of the scene object based on the system characteristics and the characteristics of the corresponding system events. The rendering rate Rrender and the recycling rate Rrecycle are calculated using the following formulas:
[0016]
[0017] By adjusting the rendering rate appropriately, it can be ensured that key objects or areas are rendered first within the user's field of view, thereby improving the user's perception of the scene and the speed of interaction response. At the same time, effective resource reclamation can ensure that the system will not lag or crash due to resource exhaustion, thus ensuring the continuity and stability of the user experience.
[0018] The system event response submodule is used to trigger corresponding rendering or recycling operations based on specific system event content to ensure real-time updates and presentation of the scene.
[0019] Furthermore, the scene rendering module includes a preloading and caching submodule, an identifier allocation submodule, a detail rendering submodule, a preloading and caching submodule, a scene object coordinate acquisition submodule, a distance calculation submodule, a blur intensity value calculation submodule, a blur processing rate control submodule, and a blur processing submodule;
[0020] The preloading and caching submodule is used to assign scene objects with different rendering priorities to different threads for processing, ensuring that the workload of each thread is reasonable and independent of each other; according to the rendering priority of the scene object, each thread is controlled to preload and cache the rendering resources needed to reduce the delay and stuttering during the rendering process. The rendering resources loaded and cached by the thread are also different for scene objects with different rendering priorities.
[0021] The identifier allocation submodule is used to assign a unique identifier to the rendering process of the scene object.
[0022] The detailed rendering submodule is used to control the rendering rate of the thread during detailed rendering according to the rendering rate Rrender. The lower the rendering priority of the scene object, the fewer details are rendered. The rendering quality and performance are balanced according to the rendering priority of the scene object, so as to optimize the rendering efficiency and resource utilization of the system to the greatest extent while ensuring user experience.
[0023] The user gaze point coordinate calculation submodule is used to acquire gaze point data in real time from the eye tracking system and convert the gaze point data into 3D spatial coordinates of the user gaze point in the virtual scene. The eye tracking system is an external system used to monitor user gaze point data.
[0024] The scene object coordinate acquisition submodule is used to acquire the 3D spatial coordinates of each scene object in the virtual scene, which helps to achieve accurate presentation and real-time updates of the virtual scene, thereby improving the user experience.
[0025] The distance calculation submodule is used to calculate the distance value between each scene object and the user's gaze point based on the 3D spatial coordinates of the user's gaze point in the virtual scene and the 3D spatial coordinates of each scene object in the virtual scene;
[0026] The blur intensity calculation submodule is used to create a blur intensity mapping function based on the distance value. The blur intensity mapping function converts the distance value between each scene object and the user's gaze point into a blur intensity value. The farther the distance, the higher the blur intensity value. Based on the blur intensity value, the system can optimize resource allocation, using more computing and rendering resources for scene objects near the user's gaze point, and using fewer rendering resources for scene objects that are farther away.
[0027] The blur processing rate control submodule is used to control the rate at which the GPU shader blurs the scene objects according to the rendering rate Rrender. This ensures that the blur effect does not affect the rendering performance too much, thereby maintaining a good rendering balance and enabling the scene objects to be blurred at an acceptable frame rate.
[0028] The blurring submodule is used to control the GPU shader to blur the scene object according to the blur intensity value. This can highlight the scene object near the user's gaze point, making it clearer and more eye-catching. This helps to improve the user's attention and makes it easier for the user to identify and interact with the target scene object.
[0029] Furthermore, the recycling module includes a resource recording submodule, a resource information lookup module, a rendering progress detection submodule, a resource recycling submodule, and a scene object recycling submodule;
[0030] The resource recording submodule is used to record the unique identifier of each rendering process and the information of the resources used, which is beneficial for effective resource management.
[0031] The rendering progress detection submodule is used to detect rendering tasks. When the rendering of each scene object ends, it sends an end signal to the resource search module and the resource recycling submodule. The end signal will trigger the resource information search module to start the search operation and the resource recycling submodule to start the resource recycling operation. It is triggered by detecting the end signal of the rendering task, which ensures that the timing of resource recycling is accurate and reasonable.
[0032] The resource information lookup module is used to look up information about the resources used in the rendering process based on the unique identifier of the rendering process, which can quickly and accurately locate the relevant resource information.
[0033] The resource recycling submodule is used to recycle the resources used in the rendering process based on the search results of the resource information search module. It recycles resources that are no longer needed, including video memory, textures and buffers. By recycling resources in a timely manner, the system can better allocate resources, thereby reducing unnecessary resource consumption. This can directly improve the performance of rendering tasks, reduce rendering stuttering and latency, and improve overall rendering efficiency.
[0034] The scene object recycling submodule is used to recycle the scene objects to the scene object storage module according to the recycling rate Rrecycle. Recycling the scene objects that are no longer needed can release memory and reduce the risk of memory fragmentation.
[0035] A blur rendering method suitable for XR applications includes the following steps:
[0036] S01: Assign rendering priority to each scene object according to the system event; dynamically adjust the rendering order of the scene objects according to the occurrence of the system event, thereby optimizing rendering performance and improving user experience;
[0037] S02: Store the rendering priority allocation information in the data structure of the scene object;
[0038] S03: Construct a rendering queue based on the rendering priority allocation information, and use a heap sort algorithm to sort the scene objects in descending order of priority. The scene objects with higher priority are placed at the front of the rendering queue, thus constructing a reasonable rendering queue to ensure that objects with higher priority are processed first during rendering, thereby improving rendering efficiency and user experience.
[0039] S04: Retrieve system characteristics from the configuration management database;
[0040] S05: Analyze the system events to obtain their characteristics;
[0041] S06: Calculate the rendering rate of the scene object based on the system characteristics and the characteristics of the corresponding system events. By reasonably adjusting the rendering rate, it can be ensured that key objects or areas are rendered first in the user's field of vision, thereby improving the user's perception of the scene and the speed of interaction response. At the same time, effective resource recycling can ensure that the system will not lag or crash due to resource exhaustion, thus ensuring the continuity and stability of the user experience.
[0042] S07: Trigger corresponding rendering operations based on specific system event content to ensure real-time scene updates and presentation;
[0043] S08: Assign the scene objects with different rendering priorities to different threads for processing, ensuring that the workload of each thread is reasonable and independent of each other;
[0044] S09: Based on the rendering priority of the scene object, control each thread to preload and cache the rendering resources needed to reduce latency and stuttering during the rendering process;
[0045] S10: Assign a unique identifier to the rendering process of the scene object;
[0046] S11: The rendering rate of the Rrender control thread during detail rendering is based on the rendering rate. The lower the rendering priority of the scene object, the fewer details are rendered. The rendering quality and performance are balanced based on the rendering priority of the scene object, so as to maximize the system's rendering efficiency and resource utilization while ensuring user experience.
[0047] S12: Acquire gaze point data in real time from the eye-tracking system, and convert the gaze point data into 3D spatial coordinates of the user's gaze point in the virtual scene. The 3D spatial coordinates of the user's gaze point define the position of the user's gaze point in the virtual scene.
[0048] S13: Obtain the 3D spatial coordinates of each scene object in the virtual scene, which helps to achieve accurate rendering and real-time updating of the virtual scene, thereby improving the user experience;
[0049] S14: Calculate the distance value between each scene object and the user's gaze point based on the 3D spatial coordinates of the user's gaze point in the virtual scene and the 3D spatial coordinates of each scene object in the virtual scene;
[0050] S15: Based on the distance value, create a blur intensity mapping function. Through the blur intensity mapping function, convert the distance value between each scene object and the user's gaze point into a blur intensity value. The farther the distance, the higher the blur intensity value. Based on the blur intensity value, the system can optimize resource allocation, using more computing and rendering resources for scene objects near the user's gaze point, and using fewer rendering resources for scene objects that are farther away.
[0051] S16: By controlling the rate of blurring the scene object by the GPU shader according to the rendering rate Rrender, it can be ensured that the blurring effect will not affect the rendering performance too much, thereby maintaining a good rendering balance and enabling the scene object to be blurred at an acceptable frame rate.
[0052] S17: Control the GPU shader to blur the scene object according to the blur intensity value, which can highlight the scene object near the user's gaze point, making it clearer and more eye-catching. This helps to improve the user's attention and makes it easier for the user to identify and interact with the target scene object.
[0053] The present invention provides a blur rendering system and method suitable for XR services, with the following beneficial effects: By acquiring gaze point data in real time from an eye-tracking system and converting the gaze point data into 3D spatial coordinates of the user's gaze point in a virtual scene, and by acquiring the 3D spatial coordinates of each scene object in the virtual scene, it helps to achieve accurate rendering and real-time updates of the virtual scene, thereby improving the user experience; by creating a blur intensity mapping function based on the distance value, the system converts the distance value between each scene object and the user's gaze point into a blur intensity value. Based on the blur intensity value, the system can optimize resource allocation, using more computing and rendering resources for scene objects near the user's gaze point, and using fewer rendering resources for scene objects that are farther away; by detecting rendering tasks and sending an end signal when the rendering of each scene object ends, the end signal triggers a search operation and a resource reclamation operation, ensuring that the timing of resource reclamation is accurate and reasonable. Attached Figure Description
[0054] To more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are merely exemplary. For those skilled in the art, other embodiments can be derived from the provided drawings without creative effort.
[0055] Figure 1 This is a system architecture diagram of a fuzzy rendering system suitable for XR services according to the present invention;
[0056] Figure 2 This is a system architecture diagram of the system event management module of a fuzzy rendering system suitable for XR services according to the present invention;
[0057] Figure 3 This is a system architecture diagram of a scene rendering module for a blur rendering system suitable for XR services according to the present invention.
[0058] Figure 4 This is a system architecture diagram of a recycling module for a blur rendering system suitable for XR services according to the present invention.
[0059] 1-Scene object storage module, 2-Scene object allocation module, 3-System event management module, 31-System event listening submodule, 32-Priority allocation submodule, 33-Rendering queue construction submodule, 34-System characteristic acquisition submodule, 341-Configuration management database, 35-System event characteristic acquisition submodule, 36-Rate calculation submodule, 37-System event response submodule, 4-Scene rendering module, 41-Preloading and caching submodule, 42-Identifier allocation submodule, 43-Detail rendering submodule, 44-User gaze point coordinate calculation submodule, 441-Eye tracking system, 45-Scene object coordinate acquisition submodule, 46-Distance calculation submodule, 47-Blur intensity value calculation submodule, 48-Blur processing rate control submodule, 49-Blur processing submodule, 5-Recycling module, 51-Resource recording submodule, 52-Resource information lookup module, 53-Rendering progress detection submodule, 54-Resource recycling submodule, 55-Scene object recycling submodule. Detailed Implementation
[0060] The technical solution of the present invention will now be clearly and completely described with reference to the accompanying drawings. Obviously, the described embodiments are only some, not all, of the embodiments of the present invention. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.
[0061] like Figure 1-4 As shown, the present invention is a blur rendering system suitable for XR services, including a scene object storage module 1, a scene object allocation module 2, a system event management module 3, a scene rendering module 4, and a scene object recycling module 5. The input end of the scene object storage module 1 is connected to the output end of the recycling module 5, the input end of the scene object allocation module 2 is connected to the output end of the scene object storage module 1, the input end of the system event management module 3 is connected to the output end of the scene object allocation module 2, the input end of the scene rendering module 4 is connected to the output end of the system event management module 3, and the input end of the recycling module 5 is connected to the output ends of the scene object allocation module 2, the system event management module 3, and the scene rendering module 4.
[0062] The scene object storage module 1 is used to store pre-configured scene objects. By pre-configuring and storing these scene objects, the real-time calculation and resource loading time during the rendering process can be reduced, thereby improving rendering efficiency. The scene objects include user-focused scene objects, user-interactive area scene objects, surrounding visual object scene objects, and background / distant scene objects. The scene object allocation module 2 is used to obtain the scene objects stored in the scene object storage module 1 and allocate them to the user. The system event management module 3 is used to monitor system events generated by the event source in real time and calculate the rendering rate Rrender and recycling rate Rrecycle of the scene objects. The scene rendering module 4 is used to control the rendering rate of the scene objects according to the rendering rate Rrender. The recycling module 5 is used to recycle the resources used in the rendering process and recycle the scene objects.
[0063] The system event management module 3 includes a system event listening submodule 31, a priority allocation submodule 32, a rendering queue construction submodule 33, a system characteristic acquisition submodule 34, a system event characteristic acquisition submodule 35, a rate calculation submodule 36, and a system event response submodule 37. The system event listening submodule 31 is used to monitor system events generated by the event source in real time, ensuring that the system can respond promptly to user operations and scene logic. The system events include events requiring rendering or recycling of corresponding scene objects based on user interaction behavior and events requiring rendering or recycling of corresponding scene objects based on scene logic. The priority allocation submodule 32 is used to assign rendering priorities to each scene object according to the system events, and dynamically adjust the rendering order of the scene objects based on the occurrence of the system events, thereby optimizing rendering performance and improving user experience. The rendering priority allocation information is stored in the data structure of the scene objects for use by the rendering queue construction submodule 33. The rendering queue construction submodule 33 is used to construct a rendering queue based on the rendering priority allocation information, and uses a heap sort algorithm to sort the scene objects according to their priority from high to low. The scene objects are ordered sequentially, with higher-priority objects placed at the front of the rendering queue, constructing a reasonable rendering queue to ensure that objects with higher priority are processed first during rendering, thereby improving rendering efficiency and user experience. The system characteristic acquisition submodule 34 is used to obtain system characteristics from the configuration management database 341. The system characteristics include the current system CPU utilization Sperformance, the current system performance threshold Tthreshold, and the current system available memory resources Mmemory. The configuration management database 341 is used to store system characteristics. The system event characteristic acquisition submodule 35 is used to analyze the system events to obtain the characteristics of the system events. The characteristics of the system events include the rendering priority Epriority of the scene objects, the complexity Ocomplexity of the scene objects, and the weight Oweight of the scene objects. The rate calculation submodule 36 is used to calculate the rendering rate and recycling rate of the scene objects based on the system characteristics and the characteristics of the corresponding system events. The rendering rate Rrender and the recycling rate Rrecycle are calculated using the following formula:
[0064]
[0065] By reasonably adjusting the rendering rate, it can be ensured that key objects or areas are rendered first within the user's field of vision, thereby improving the user's perception of the scene and the speed of interaction response. At the same time, effective resource recycling can ensure that the system will not lag or crash due to resource exhaustion, ensuring the continuity and stability of the user experience. The system event response submodule 37 is used to trigger corresponding rendering or recycling operations according to the specific system event content to ensure the real-time update and presentation of the scene.
[0066] The scene rendering module 4 includes a preloading and caching submodule 41, an identifier allocation submodule 42, a detail rendering submodule 43, a preloading and caching submodule 44, a scene object coordinate acquisition submodule 45, a distance calculation submodule 46, a blur intensity value calculation submodule 47, a blur processing rate control submodule 48, and a blur processing submodule 49. The preloading and caching submodule 41 is used to allocate scene objects with different rendering priorities to different threads for processing, ensuring that the workload of each thread is reasonable and independent. It controls each thread to preload and cache the necessary rendering resources according to the rendering priority of the scene object, reducing latency and stuttering during the rendering process. The rendering resources loaded and cached by the thread for scene objects with different rendering priorities are also different. The identifier allocation submodule 42 is used to assign a unique identifier to the rendering process of the scene object. The detail rendering submodule 43 is used to calculate the rendering rate R... ren d erThe system controls the rendering rate of the thread during detail rendering, which includes rendering texture resolution, rendering depth of field effects, and rendering lighting conditions and shadow effects in the scene area. The lower the rendering priority of a scene object, the fewer details are rendered. The rendering quality and performance are balanced based on the rendering priority of the scene objects, thereby maximizing the system's rendering efficiency and resource utilization while ensuring a good user experience. The user gaze point coordinate calculation submodule 44 is used to acquire gaze point data in real time from the eye-tracking system 441 and convert the gaze point data into 3D spatial coordinates of the user's gaze point in the virtual scene. The eye-tracking system 441 is an external system used to monitor user gaze point data. The 3D spatial coordinates of the user's gaze point define the position of the user's gaze point in the virtual scene, and the gaze point data includes pupil position and gaze direction. The scene object coordinate acquisition submodule 45 is used to acquire the 3D spatial coordinates of each scene object in the virtual scene. These coordinates define the positions of the scene objects in the virtual scene; this helps to achieve accurate rendering and real-time updates of the virtual scene, thereby improving the user experience; the distance calculation submodule 46 is used to calculate the distance value between each scene object and the user's gaze point based on the 3D spatial coordinates of the user's gaze point in the virtual scene and the 3D spatial coordinates of each scene object in the virtual scene; the blur intensity value calculation submodule 47 is used to create a blur intensity mapping function based on the distance value, and convert the distance value between each scene object and the user's gaze point into a blur intensity value through the blur intensity mapping function. The farther the distance, the higher the blur intensity value; based on the blur intensity value, the system can optimize resource allocation, using more computing and rendering resources for scene objects near the user's gaze point, and using fewer rendering resources for scene objects that are farther away; the blur processing rate control submodule 48 is used to calculate the distance between each scene object and the user's gaze point based on the rendering rate R. ren d er Controlling the rate at which the GPU shader blurs the scene objects ensures that the blurring effect does not excessively impact rendering performance, thus maintaining a good rendering balance and enabling the scene objects to be blurred at an acceptable frame rate. The blurring submodule 49 is used to control the GPU shader to blur the scene objects according to the blur intensity value, which can highlight the scene objects near the user's gaze point, making them clearer and more eye-catching. This helps to improve the user's attention and makes it easier for the user to identify and interact with the target scene objects.
[0067] The recycling module 5 includes a resource recording submodule 51, a resource information lookup module 52, a rendering progress detection submodule 53, a resource recycling submodule 54, and a scene object recycling submodule 55. The resource recording submodule 51 records the unique identifier of each rendering process and information about the resources used, facilitating effective resource management. The rendering progress detection submodule 52 detects rendering tasks and sends an end signal to the resource lookup module 53 and the resource recycling submodule 54 when each scene object rendering ends. This end signal triggers the resource information lookup module 53 to initiate a lookup operation and the resource recycling submodule 54 to initiate a resource recycling operation. By detecting the end signal of the rendering task... This is triggered by the resource information lookup module 53, which ensures that the timing of resource reclamation is accurate and reasonable. The resource information lookup module 53 is used to find information about the resources used in the rendering process based on the unique identifier of the rendering process, enabling quick and accurate location of relevant resource information. The resource reclamation submodule 54 is used to reclaim the resources used in the rendering process based on the lookup results of the resource information lookup module 53. Reclaiming no longer needed resources includes video memory, textures, and buffers. By reclaiming resources in a timely manner, the system can better allocate resources, thereby reducing unnecessary resource consumption. This can directly improve the performance of rendering tasks, reduce rendering stuttering and latency, and improve overall rendering efficiency. The scene object reclamation submodule 55 is used to reclaim objects according to the reclamation rate R. recyc l e Reclaiming the scene objects to the scene object storage module 1 and reclaiming the scene objects that are no longer needed can free up memory and reduce the risk of memory fragmentation.
[0068] A blur rendering method suitable for XR applications includes the following steps:
[0069] S01: Assign rendering priority to each scene object according to the system event, and dynamically adjust the rendering order of the scene objects according to the occurrence of the system event, thereby optimizing rendering performance and improving user experience;
[0070] S02: Store the rendering priority allocation information in the data structure of the scene object;
[0071] S03: Construct a rendering queue based on the rendering priority allocation information, and use a heap sort algorithm to sort the scene objects in descending order of priority. The scene objects with higher priority are placed at the front of the rendering queue, thus constructing a reasonable rendering queue to ensure that objects with higher priority are processed first during rendering, thereby improving rendering efficiency and user experience.
[0072] S04: Obtain system characteristics from configuration management database 341;
[0073] S05: Analyze the system events to obtain their characteristics;
[0074] S06: Calculate the rendering rate of the scene object based on the system characteristics and the characteristics of the corresponding system events. By reasonably adjusting the rendering rate, it can be ensured that key objects or areas are rendered first in the user's field of vision, thereby improving the user's perception of the scene and the speed of interaction response. At the same time, effective resource recycling can ensure that the system will not lag or crash due to resource exhaustion, thus ensuring the continuity and stability of the user experience.
[0075] S07: Trigger corresponding rendering operations based on specific system event content to ensure real-time scene updates and presentation;
[0076] S08: Assign the scene objects with different rendering priorities to different threads for processing, ensuring that the workload of each thread is reasonable and independent of each other;
[0077] S09: Based on the rendering priority of the scene object, control each thread to preload and cache the rendering resources needed to reduce latency and stuttering during the rendering process;
[0078] S10: Assign a unique identifier to the rendering process of the scene object;
[0079] S11: The rendering rate of the Rrender control thread during detail rendering is based on the rendering rate. The lower the rendering priority of the scene object, the fewer details are rendered. The rendering quality and performance are balanced based on the rendering priority of the scene object, so as to maximize the system's rendering efficiency and resource utilization while ensuring user experience.
[0080] S12: Acquire gaze point data in real time from eye tracking system 441, and convert the gaze point data into 3D spatial coordinates of the user's gaze point in the virtual scene. The 3D spatial coordinates of the user's gaze point define the position of the user's gaze point in the virtual scene.
[0081] S13: Obtain the 3D spatial coordinates of each scene object in the virtual scene, which helps to achieve accurate rendering and real-time updating of the virtual scene, thereby improving the user experience;
[0082] S14: Calculate the distance value between each scene object and the user's gaze point based on the 3D spatial coordinates of the user's gaze point in the virtual scene and the 3D spatial coordinates of each scene object in the virtual scene;
[0083] S15: Based on the distance value, create a blur intensity mapping function. Through the blur intensity mapping function, convert the distance value between each scene object and the user's gaze point into a blur intensity value. The farther the distance, the higher the blur intensity value. Based on the blur intensity value, the system can optimize resource allocation, using more computing and rendering resources for scene objects near the user's gaze point, and using fewer rendering resources for scene objects that are farther away.
[0084] S16: By controlling the rate of blurring the scene object by the GPU shader according to the rendering rate Rrender, it can be ensured that the blurring effect will not affect the rendering performance too much, thereby maintaining a good rendering balance and enabling the scene object to be blurred at an acceptable frame rate.
[0085] S17: Control the GPU shader to blur the scene object according to the blur intensity value, which can highlight the scene object near the user's gaze point, making it clearer and more eye-catching. This helps to improve the user's attention and makes it easier for the user to identify and interact with the target scene object.
Claims
1. A blur rendering system suitable for XR services, characterized in that: It includes a scene object storage module (1), a scene object allocation module (2), a system event management module (3), a scene rendering module (4), and a recycling module (5); The scene object storage module (1) is used to store pre-configured scene objects; The scene object allocation module (2) is used to obtain the scene object stored in the scene object storage module (1) and allocate the scene object to the user; The system event management module (3) is used to monitor system events generated by event sources in real time and calculate the rendering rate Rrender and recycling rate Rrecycle of the scene object; The scene rendering module (4) is used to control the rendering rate of the scene object according to the rendering rate Rrender; The scene rendering module (4) includes a preloading and caching submodule (41), an identifier allocation submodule (42), a detail rendering submodule (43), a user gaze point coordinate calculation submodule (44), a scene object coordinate acquisition submodule (45), a distance calculation submodule (46), a blur intensity value calculation submodule (47), a blur processing rate control submodule (48), and a blur processing submodule (49). The preloading and caching submodule (41) is used to assign scene objects with different rendering priorities to different threads for processing. According to the rendering priority of the scene object, each thread is controlled to preload and cache the rendering resources needed to reduce the delay and stuttering during the rendering process. The rendering resources loaded and cached by the thread are also different for scene objects with different rendering priorities. The identifier allocation submodule (42) is used to assign a unique identifier to the rendering process of the scene object during the rendering process; The detail rendering submodule (43) is used to control the rendering rate of the thread during detail rendering according to the rendering rate Rrender. The lower the rendering priority of the scene object, the fewer details are rendered. The user gaze point coordinate calculation submodule (44) is used to obtain gaze point data in real time from the eye tracking system (441) and convert the gaze point data into 3D spatial coordinates of the user gaze point in the virtual scene. The eye tracking system (441) is an external system used to monitor user gaze point data. The scene object coordinate acquisition submodule (45) is used to acquire the 3D spatial coordinates of each scene object in the virtual scene; The distance calculation submodule (46) is used to calculate the distance value between each scene object and the user's gaze point based on the 3D spatial coordinates of the user's gaze point in the virtual scene and the 3D spatial coordinates of each scene object in the virtual scene; The blur intensity value calculation submodule (47) is used to create a blur intensity mapping function based on the distance value, and convert the distance value between each scene object and the user's gaze point into a blur intensity value through the blur intensity mapping function. The farther the distance, the higher the blur intensity value. The blur processing rate control submodule (48) is used to control the rate at which the GPU shader performs blur processing on the scene objects according to the rendering rate Rrender; The blur processing submodule (49) is used to control the GPU shader to perform blur processing on the scene object according to the blur intensity value; The recycling module (5) is used to recycle the resources used in the rendering process and to recycle the scene objects.
2. A fuzzy rendering system suitable for XR services according to claim 1, characterized in that, The system event management module (3) includes a system event listening submodule (31), a priority allocation submodule (32), a rendering queue construction submodule (33), a system characteristic acquisition submodule (34), a system event characteristic acquisition submodule (35), a rate calculation submodule (36), and a system event response submodule (37). The system event listening submodule (31) is used to listen to system events generated by the event source in real time. The system events include events that need to be rendered or recycled based on user interaction behavior and events that need to be rendered or recycled based on scene logic. The priority allocation submodule (32) is used to allocate rendering priority to each scene object according to the system event, and store the rendering priority allocation information in the data structure of the scene object for use by the rendering queue construction submodule (33); The rendering queue construction submodule (33) is used to construct a rendering queue according to the rendering priority allocation information, and use a heap sort algorithm to sort the scene objects in order of priority from high to low, with the scene objects with higher priority placed at the front of the rendering queue; The system characteristic acquisition submodule (34) is used to acquire system characteristics from the configuration management database (341). The system characteristics include the current system CPU utilization rate Sperformance, the current system performance threshold Tthreshold, and the current system available memory resources Mmemory. The configuration management database (341) is used to store system characteristics. The characteristic acquisition submodule (35) of the system event is used to analyze the system event to obtain the characteristics of the system event. The characteristics of the system event include the rendering priority of the scene object Epriority, the complexity of the scene object Ocomplexity, and the weight of the scene object Oweight. The rate calculation submodule (36) is used to calculate the rendering rate and recycling rate of the scene object based on the system characteristics and the characteristics of the corresponding system events. The rendering rate Rrender and the recycling rate Rrecycle are calculated using the following formulas: The system event response submodule (37) is used to trigger corresponding rendering or recycling operations based on the specific system event content.
3. A fuzzy rendering system suitable for XR services according to claim 2, characterized in that: The recycling module (5) includes a resource recording submodule (51), a resource information lookup submodule (52), a rendering progress detection submodule (53), a resource recycling submodule (54), and a scene object recycling submodule (55). The resource recording submodule (51) is used to record the unique identifier of each rendering process and the information of the resources it uses; The resource information lookup submodule (52) is used to look up information about the resources used by the rendering process based on the unique identifier of the rendering process. The rendering progress detection submodule (53) is used to detect rendering tasks. When each scene object finishes rendering, it sends an end signal to the resource information lookup submodule (52) and the resource recycling submodule (54). The end signal will trigger the resource information lookup submodule (52) to start the lookup operation and trigger the resource recycling submodule (54) to start the resource recycling operation. The resource recycling submodule (54) is used to recycle the resources used in the rendering process according to the search result of the resource information search submodule (52), and to recycle resources that are no longer needed, including video memory, textures and buffers. The scene object recycling submodule (55) is used to recycle the scene object to the scene object storage module (1) according to the recycling rate Rrecycle.
4. A blur rendering method suitable for XR services, applied to the blur rendering system suitable for XR services as described in any one of claims 1-3, characterized in that, Includes the following steps: S01: Assign rendering priority to each scene object based on the system events; S02: Store the rendering priority allocation information in the data structure of the scene object; S03: Construct a rendering queue based on the rendering priority allocation information, and use a heap sort algorithm to sort the scene objects in descending order of priority, with the scene objects with higher priority placed at the front of the rendering queue; S04: Obtain system characteristics from configuration management database 341; S05: Analyze the system events to obtain their characteristics; S06: Calculate the rendering rate of the scene object based on the system characteristics and the characteristics of the corresponding system events; S07: Trigger the corresponding rendering operation based on the specific system event content; S08: Assign the scene objects with different rendering priorities to different threads for processing; S09: Based on the rendering priority of the scene object, control each thread to preload and cache the rendering resources needed to reduce latency and stuttering during the rendering process; S10: Assign a unique identifier to the rendering process of the scene object; S11: The rendering rate of the Rrender control thread during detail rendering is based on the rendering rate. The lower the rendering priority of the scene object, the fewer details are rendered. S12: Obtain gaze point data in real time from the eye tracking system 441, and convert the gaze point data into 3D spatial coordinates of the user's gaze point in the virtual scene; S13: Obtain the 3D spatial coordinates of each scene object in the virtual scene; S14: Calculate the distance value between each scene object and the user's gaze point based on the 3D spatial coordinates of the user's gaze point in the virtual scene and the 3D spatial coordinates of each scene object in the virtual scene; S15: Based on the distance value, create a blur intensity mapping function, and convert the distance value between each scene object and the user's gaze point into a blur intensity value through the blur intensity mapping function. The greater the distance, the higher the blur intensity value. S16: Control the rate at which the GPU shader performs blurring processing on the scene objects according to the rendering rate Rrender; S17: Control the GPU shader to blur the scene object according to the blur intensity value.
Citation Information
Patent Citations
VR-based space scene display method and system, and storage medium
CN115984519A